Descrição
Essa API tem a funcionalidade de integração de sangria do sistema SmartEcf Bematech para o sistema Microsiga Protheus, possibilitando a troca de informações de sangria entre um sistema e outro.
Os dados são enviados/recebidos por meio da mensagem padronizada TOTVS com a funcionalidade EAI (Enterprise Application Integration), disponível no módulo Configurador.
Nos procedimentos de utilização abaixo, está detalhado o processo de cada mensagem/entidade trocada, explicando o seu conceito e as configurações técnicas para habilita-la e no final do documento também temos uma FAQ, caso não possua a pergunta desejada pode acionar a comunidade P@Varejo no link http://fluig.totvs.com/portal/p/10097/subject/pvarejo


Visão Geral

Pré-requisitos
1) Deve ser criado um de-para para o campo Numerário do Protheus, amarrando com as formas de pagamento no Gemco
2) Deve ser criado uma Natureza do tipo Sangria do lado do Protheus manualmente
3) Deve ser cadastrado manualmente o de-para de operador de caixa do lado do Protheus
4) Deve ser cadastrado manualmente o de-para de banco/conta (tesouraria) no Protheus. Verificar no módulo financeiro do Gemco qual banco/conta (tesouraria) é gerado o lançamento de Sangria.
5) Passar para Protheus o número do caixa Gemco (no campo banco do Protheus).
6) Cadastrar o adapter de sangria no Protheus. (clique aqui)

Funcionamento

Efetue uma operação de sangria no SmartEcf utilizando a tecla F2, conforme imagem abaixo.



Após esse procedimento verifique no Dashboardo do Mozart se a Sangria foi enviada para o Protheus, conforme imagem abaixo.



Importante notar que a Sangria deve ser realizada em duas movimentações bancárias. A primeira é um débito no caixa do operador (processo descrito acima), e a segunda operação é um crédito no caixa central da loja. Essa segunda parte é feita em momento diferente no Mozart, conforme ilustrado na imagem abaixo.



Depois desses dois processos estarem finalizados o resultado será visualizado no Protheus conforme imagem abaixo.



Importante!: Para uma sangria ser efetivada no Protheus é necessário realizar duas transações bancárias, uma de débito e uma de crédito.


Informações técnicas


Métodos da API
GET /api/Sangria
Método de consulta dos movimentos de caixa de Sangria e enfileira no Mozart para realizar a próxima chamada enviando para Totvs EAI através da mensagem padronizada BankTransaction (https://api.totvs.com.br/msgunica/bo/Events/BANKTRANSACTION_2_000.html?nome=INTEGRA%C3%87%C3%83O%20DOS%20MOVIMENTOS%20FINANCEIROS&transacaohabilitada=)

GET /api/Sangria/GetMovimentoCaixaCentralSangria
Método de consulta dos movimentos de caixa de Sangria que precisam ser enviados para o caixa central e enfileira no Mozart para realizar a próxima chamada enviando para Totvs EAI através da mensagem padronizada BankTransaction (https://api.totvs.com.br/msgunica/bo/Events/BANKTRANSACTION_2_000.html?nome=INTEGRA%C3%87%C3%83O%20DOS%20MOVIMENTOS%20FINANCEIROS&transacaohabilitada=)

Modelo de Json de retorno
{
"data": false,
"httpStatusCode": 200,
"notifications": [],
"success": true
}

POST /api/Sangria/ToUpsertBusinessMessageResponse
Resposta do Protheus, contendo os IDs de integração

Modelo de XML de envio
https://api.totvs.com.br/msgunica/bo/Events/BANKTRANSACTION_2_000.xsd

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<receiveMessage xmlns="http://www.totvs.com/">
<inMsg>&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;TOTVSMessage&gt;&lt;MessageInformation version="2.001"&gt;&lt;UUID&gt;96d14fe5-b7e9-5d57-4337-f46cb5626ccc&lt;/UUID&gt;&lt;Type&gt;Response&lt;/Type&gt;&lt;Transaction&gt;BANKTRANSACTION&lt;/Transaction&gt;&lt;StandardVersion&gt;1.000&lt;/StandardVersion&gt;&lt;SourceApplication&gt;NBT1XC_TST40&lt;/SourceApplication&gt;&lt;CompanyId&gt;40&lt;/CompanyId&gt;&lt;BranchId&gt;0101&lt;/BranchId&gt;&lt;Enterprise&gt;01&lt;/Enterprise&gt;&lt;BusinessUnit&gt;&lt;/BusinessUnit&gt;&lt;Product name="PROTHEUS" version="12"&gt;&lt;/Product&gt;&lt;GeneratedOn&gt;2018-08-06T17:55:08Z&lt;/GeneratedOn&gt;&lt;DeliveryType&gt;Async&lt;/DeliveryType&gt;&lt;/MessageInformation&gt;&lt;ResponseMessage&gt;&lt;ReceivedMessage&gt;&lt;SentBy&gt;GEMCO&lt;/SentBy&gt;&lt;UUID&gt;e1d6c9e3-5251-4643-a2a8-845c5cfc9518&lt;/UUID&gt;&lt;Event&gt;Upsert&lt;/Event&gt;&lt;MessageContent&gt;&lt;![CDATA[&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;TOTVSMessage&gt;&lt;MessageInformation version="2.001"&gt; &lt;UUID&gt;e1d6c9e3-5251-4643-a2a8-845c5cfc9518&lt;/UUID&gt; &lt;Type&gt;BusinessMessage&lt;/Type&gt; &lt;Transaction&gt;BankTransaction&lt;/Transaction&gt; &lt;StandardVersion&gt;2.001&lt;/StandardVersion&gt; &lt;SourceApplication&gt;GEMCO&lt;/SourceApplication&gt; &lt;CompanyId&gt;40&lt;/CompanyId&gt; &lt;BranchId&gt;1&lt;/BranchId&gt; &lt;Product name="GEMCO" version="2.001" /&gt; &lt;GeneratedOn&gt;06/08/2018 14:54:15&lt;/GeneratedOn&gt; &lt;DeliveryType&gt;Async&lt;/DeliveryType&gt; &lt;/MessageInformation&gt;&lt;BusinessMessage&gt;&lt;BusinessEvent&gt;&lt;Entity&gt;BankTransaction&lt;/Entity&gt;&lt;Event&gt;Upsert&lt;/Event&gt;&lt;Identification&gt;&lt;Key Name="InternalId"&gt;40|1|2|1|1|06/08/2018 00:00:00|1|1&lt;/Key&gt;&lt;/Identification&gt;&lt;/BusinessEvent&gt;&lt;BusinessContent&gt;&lt;CompanyId&gt;40&lt;/CompanyId&gt;&lt;BranchId&gt;1&lt;/BranchId&gt;&lt;InternalId&gt;40|1|2|1|1|06/08/2018 00:00:00|1|1&lt;/InternalId&gt;&lt;MovementDate&gt;2018-08-06T00:00:00&lt;/MovementDate&gt;&lt;EntryValue&gt;53.00&lt;/EntryValue&gt;&lt;MovementType&gt;1&lt;/MovementType&gt;&lt;DocumentNumber&gt;&lt;/DocumentNumber&gt;&lt;FinancialCode&gt;SANGRIA&lt;/FinancialCode&gt;&lt;BatchNumber&gt;&lt;/BatchNumber&gt;&lt;ApportionmentDistribution&gt;&lt;DebitAccount&gt;&lt;/DebitAccount&gt;&lt;CostCenterCode&gt;&lt;/CostCenterCode&gt;&lt;/ApportionmentDistribution&gt;&lt;BankInternalId&gt;40|1|1&lt;/BankInternalId&gt;&lt;Agency&gt;.&lt;/Agency&gt;&lt;NumberAccount&gt;.&lt;/NumberAccount&gt;&lt;CurrencyType&gt;4&lt;/CurrencyType&gt;&lt;OriginalBranchId&gt;1&lt;/OriginalBranchId&gt;&lt;OperationType&gt;4&lt;/OperationType&gt;&lt;/BusinessContent&gt;&lt;/BusinessMessage&gt;&lt;/TOTVSMessage&gt;]]&gt;&lt;/MessageContent&gt;&lt;/ReceivedMessage&gt;&lt;ProcessingInformation&gt;&lt;ProcessedOn&gt;2018-08-06T17:55:08Z&lt;/ProcessedOn&gt;&lt;Status&gt;ok&lt;/Status&gt;&lt;/ProcessingInformation&gt;&lt;ReturnContent&gt;&lt;ListOfInternalId&gt;&lt;InternalId&gt;&lt;Name&gt;BankTransaction&lt;/Name&gt;&lt;Origin&gt;40|1|2|1|1|06/08/2018 00:00:00|1|1&lt;/Origin&gt;&lt;Destination&gt;40|0101|0000000035&lt;/Destination&gt;&lt;/InternalId&gt;&lt;/ListOfInternalId&gt;&lt;/ReturnContent&gt;&lt;/ResponseMessage&gt;&lt;/TOTVSMessage&gt;</inMsg>
</receiveMessage>
</soap:Body>
</soap:Envelope>

Modelo de Json de retorno
{
"data": false,
"httpStatusCode": 200,
"notifications": [],
"success": true
}

POST /api/Sangria/ToUpsertCentralCashierResponse
Resposta do Protheus, contendo os ID de integração

Modelo de XML de envio
https://api.totvs.com.br/msgunica/bo/Events/BANKTRANSACTION_2_000.xsd
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<receiveMessage xmlns="http://www.totvs.com/">
<inMsg>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;TOTVSMessage&gt;&lt;MessageInformation version=&quot;2.001&quot;&gt;&lt;UUID&gt;96d14fe5-b7e9-5d57-4337-f46cb5626ccc&lt;/UUID&gt;&lt;Type&gt;Response&lt;/Type&gt;&lt;Transaction&gt;BANKTRANSACTION&lt;/Transaction&gt;&lt;StandardVersion&gt;1.000&lt;/StandardVersion&gt;&lt;SourceApplication&gt;NBT1XC_TST40&lt;/SourceApplication&gt;&lt;CompanyId&gt;40&lt;/CompanyId&gt;&lt;BranchId&gt;0101&lt;/BranchId&gt;&lt;Enterprise&gt;01&lt;/Enterprise&gt;&lt;BusinessUnit&gt;&lt;/BusinessUnit&gt;&lt;Product name=&quot;PROTHEUS&quot; version=&quot;12&quot;&gt;&lt;/Product&gt;&lt;GeneratedOn&gt;2018-08-06T17:55:08Z&lt;/GeneratedOn&gt;&lt;DeliveryType&gt;Async&lt;/DeliveryType&gt;&lt;/MessageInformation&gt;&lt;ResponseMessage&gt;&lt;ReceivedMessage&gt;&lt;SentBy&gt;GEMCO&lt;/SentBy&gt;&lt;UUID&gt;e1d6c9e3-5251-4643-a2a8-845c5cfc9518&lt;/UUID&gt;&lt;Event&gt;Upsert&lt;/Event&gt;&lt;MessageContent&gt;&lt;![CDATA[&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;TOTVSMessage&gt;&lt;MessageInformation version=&quot;2.001&quot;&gt; &lt;UUID&gt;e1d6c9e3-5251-4643-a2a8-845c5cfc9518&lt;/UUID&gt; &lt;Type&gt;BusinessMessage&lt;/Type&gt; &lt;Transaction&gt;BankTransaction&lt;/Transaction&gt; &lt;StandardVersion&gt;2.001&lt;/StandardVersion&gt; &lt;SourceApplication&gt;GEMCO&lt;/SourceApplication&gt; &lt;CompanyId&gt;40&lt;/CompanyId&gt; &lt;BranchId&gt;1&lt;/BranchId&gt; &lt;Product name=&quot;GEMCO&quot; version=&quot;2.001&quot; /&gt; &lt;GeneratedOn&gt;06/08/2018 14:54:15&lt;/GeneratedOn&gt; &lt;DeliveryType&gt;Async&lt;/DeliveryType&gt; &lt;/MessageInformation&gt;&lt;BusinessMessage&gt;&lt;BusinessEvent&gt;&lt;Entity&gt;BankTransaction&lt;/Entity&gt;&lt;Event&gt;Upsert&lt;/Event&gt;&lt;Identification&gt;&lt;Key Name=&quot;InternalId&quot;&gt;40|1|2|1|1|06/08/2018 00:00:00|1|1&lt;/Key&gt;&lt;/Identification&gt;&lt;/BusinessEvent&gt;&lt;BusinessContent&gt;&lt;CompanyId&gt;40&lt;/CompanyId&gt;&lt;BranchId&gt;1&lt;/BranchId&gt;&lt;InternalId&gt;40|1|2|1|1|06/08/2018 00:00:00|1|1&lt;/InternalId&gt;&lt;MovementDate&gt;2018-08-06T00:00:00&lt;/MovementDate&gt;&lt;EntryValue&gt;53.00&lt;/EntryValue&gt;&lt;MovementType&gt;1&lt;/MovementType&gt;&lt;DocumentNumber&gt;&lt;/DocumentNumber&gt;&lt;FinancialCode&gt;SANGRIA&lt;/FinancialCode&gt;&lt;BatchNumber&gt;&lt;/BatchNumber&gt;&lt;ApportionmentDistribution&gt;&lt;DebitAccount&gt;&lt;/DebitAccount&gt;&lt;CostCenterCode&gt;&lt;/CostCenterCode&gt;&lt;/ApportionmentDistribution&gt;&lt;BankInternalId&gt;40|1|1&lt;/BankInternalId&gt;&lt;Agency&gt;.&lt;/Agency&gt;&lt;NumberAccount&gt;.&lt;/NumberAccount&gt;&lt;CurrencyType&gt;4&lt;/CurrencyType&gt;&lt;OriginalBranchId&gt;1&lt;/OriginalBranchId&gt;&lt;OperationType&gt;4&lt;/OperationType&gt;&lt;/BusinessContent&gt;&lt;/BusinessMessage&gt;&lt;/TOTVSMessage&gt;]]&gt;&lt;/MessageContent&gt;&lt;/ReceivedMessage&gt;&lt;ProcessingInformation&gt;&lt;ProcessedOn&gt;2018-08-06T17:55:08Z&lt;/ProcessedOn&gt;&lt;Status&gt;ok&lt;/Status&gt;&lt;/ProcessingInformation&gt;&lt;ReturnContent&gt;&lt;ListOfInternalId&gt;&lt;InternalId&gt;&lt;Name&gt;BankTransaction&lt;/Name&gt;&lt;Origin&gt;40|1|2|1|1|06/08/2018 00:00:00|1|1&lt;/Origin&gt;&lt;Destination&gt;40|0101|0000000035&lt;/Destination&gt;&lt;/InternalId&gt;&lt;/ListOfInternalId&gt;&lt;/ReturnContent&gt;&lt;/ResponseMessage&gt;&lt;/TOTVSMessage&gt;</inMsg>
</receiveMessage>
</soap:Body>
</soap:Envelope>

Modelo de Json de retorno
{
"data": false,
"httpStatusCode": 200,
"notifications": [],
"success": true
}