Não faça consultas! Utilize nossas notificações!
Criamos também uma funcionalidade que realiza posts de notificação proativamente. Dessa maneira não é necessário que você consulte as transações o tempo todo.
O post de notificação é enviado a cada vez que há uma mudança no status de uma transação. Você deve habilitá-lo com a nossa área de relacionamento fornecendo uma URL que possamos postar a mensagem.
Ao recebê-lo você deve interpretar as informações da transação. Caso não consigamos notificá-lo de primeira, nosso post é reenviado mais duas vezes.
Resposta
A resposta da loja ao POST de notificação deve conter a mensagem “OK” no body para indicar que a requisição foi processada com sucesso.
Abaixo colocamos um exemplo de post para que você interprete! Para usar essa funcionalidade você deve solicitar a nossa equipe de atendimento que habilite o post Json na sua loja.
Post de cartão de crédito
{
"CreditCardTransaction": {
"StatusChangedDate": "2016-10-17T12:23:37.320",
"TransactionKey": "a00a5445-f9d9-45bc-86d6-4bfeb0d9419b",
"TransactionReference": "teste",
"TransactionIdentifier": "315773",
"UniqueSequentialNumber": "851194",
"AmountInCents": 100,
"Acquirer": "Simulator",
"CreditCardBrand": "Visa",
"AuthorizedAmountInCents": 100,
"CapturedAmountInCents": 100,
"AuthorizationCode": "937696",
"PreviousCreditCardTransactionStatus": "AuthorizedPendingCapture",
"CreditCardTransactionStatus": "Captured"
},
"MerchantKey": "00000000-0000-0000-0000-000000000000",
"OrderReference": "0c00c681",
"OrderKey": "f4ad35ca-819f-445a-b73d-f0f5dde0b115",
"AmountInCents": 100,
"AmountPaidInCents": 0,
"OrderStatus": "Paid"
}
Post de boleto
{
"BoletoTransaction": {
"StatusChangedDate": "2016-10-13T15:53:17.413",
"TransactionKey": "178a44eb-b015-4f29-83b7-11f50d023d6e",
"TransactionReference": "Boleto test",
"BoletoExpirationDate": "2016-10-18T15:47:49.690",
"NossoNumero": "00002879",
"AmountInCents": 100,
"AmountPaidInCents": 0,
"Bank": "341",
"PreviousBoletoTransactionStatus": "Generated",
"BoletoTransactionStatus": "Paid"
},
"MerchantKey": "00000000-0000-0000-0000-000000000000",
"OrderReference": "15db3a2f",
"OrderKey": "ad3b7f85-298f-41bd-bdfe-96ed8c0a8f22",
"AmountInCents": 200,
"AmountPaidInCents": 0,
"OrderStatus": "Paid"
}
Post de transferência bancária
{
"StatusNotification": {
"AmountInCents": "4000",
"AmountPaidInCents": "0",
"MerchantKey": "00000000-0000-0000-0000-000000000000",
"OnlineDebitTransaction": {
"AmountInCents": "4000",
"AmountPaidInCents": "4000",
"BankName": "Bradesco",
"BankPaymentDate": "05/01/2017 01:11:07",
"StatusChangedDate": "2017-01-05T01:30:28.907",
"TransactionKey": "3fecb735-78e1-4395-874c-84c017dfdfab",
"TransactionKeyToBank": "27244",
"TransactionReference": "367ac202-1197-463c-913d-58ba6540049b",
"PreviousOnlineDebitTransactionStatus": "OpenedPendingPayment",
"OnlineDebitTransactionStatus": "Paid"
},
"OrderKey": "8db57298-9ba8-4947-9489-15e0456e5c6e",
"OrderReference": "500256845",
"OrderStatus": "Paid"
}
}
Enviando a URL na requisição
Se você preferir é possível na criação do pedido, dentro do nó BoletoTransaction e CreditCardTransaction, enviar no campo Options, a URL para onde o post deve ser enviado.
Além disso, é possível enviar também mais de uma URL, separando-as por "|".
Exemplo:http://requestb.in/1bxdvfu1**|**http://requestb.in/1593be81
"Options":{
"NotificationUrl":"http://requestb.in/1bxdvfu1"
}
Autenticação de post
Para uma maior segurança é possível criar um usuário e senha para recebimento do post. Caso você opte por utilizar essa funcionalidade nós enviaremos o usuário e a senha no header, sendo uma autenticação básica (Base64).
Exemplo: Para o usuário: MundiTest e senha: MundiSenha o header será:
Content-Type: application/json
Host: requestb.in
Accept-Encoding: gzip
Cf-Visitor: {"scheme":"http"}
X-Request-Id: 9be267ed-ba0f-4986-aaed-096d9713b6e7
Total-Route-Time: 0
Content-Length: 566
Cf-Ipcountry: US
Cf-Connecting-Ip: 40.84.188.147
Connection: close
Connect-Time: 0
Cf-Ray: 2f15eb3280b7261d-DFW
Authorization: Basic TXVuZGlUZXN0Ok11bmRpU2VuaGE=
Via: 1.1 vegur