API de Transação - v1
Collection
Disponibilizamos as Collections, com todas as operações da API através dos arquivos:
Clique aqui para fazer o download.
Ambiente
Sandbox
As credenciais de homologação operam de forma idêntica ao ambiente produtivo. É importante que a aplicação deve apontar a URL para o ambiente de homologação ao invés de produção.
Collection
Você pode obter as Collections, com todas as operações e códigos de erros das APIs através dos arquivos:
Collection - API de TransaçãoURL de Sandbox
http://api-amedigital.sensedia.com/hml/transacoes/v1/Exemplo:
http://api-amedigital.sensedia.com/hml/transacoes/v1/ordens
Observação: É importante ressaltar que Tokens de Sandbox só podem chamar a URL de Sandbox. O mesmo é válido para os Tokens de Produção, onde só podem chamar a URL de Produção. Essa regra existe para evitar que seja realizada uma chamada para o ambiente de Produção com um Token válido de Sandbox.
Produção
As credenciais de acesso a esse ambiente e a URL são fornecidas apenas após a validação técnica ser concluída. Para maiores informações sobre o processo de validação técnica.
Overview sobre Ordens
Ordens são eventos que permitem a execução de diversas funcionalidades relacionadas às transações dentro da AME. A criação de um transação, por exemplo, é realizada através da criação de uma ordem compra.
As ações relacionadas às Ordens são:
- Criar Ordem de Compra
- Cancelar Autorização da Ordem
- Capturar Ordem
- Criar Ordem de Estorno
Criando uma ordem de compra
A criação de uma ordem de compra dentro da AME depende da interação entre a plataforma de venda, a AME Digital e o cliente que irá realizar a compra através do aplicativo AME.
Essa criação passa, obrigatoriamente, por duas etapas:
- Criação da ordem com base nas informações passadas pelo Sistema Parceiro
- Pagamento da ordem de compra através da leitura do QR Code pelo cliente com o app AME Digital
Caso o Sistema Parceiro realize a solicitação da criação da ordem e apresente o QR Code, mas o cliente não realize a leitura do QR Code e confirme o pagamento, a criação da ordem não se concretizará e não será possível consultá-la.
1 - Criação da Ordem de Compra
No fluxo de criação de ordem, a primeira etapa é de responsabilidade do Sistema Parceiro, ele precisa passar os parâmetros necessários para que a AME retorne a URL de renderização do QR Code.
Sugerimos que a plataforma renderize o QR Code na tela para o cliente seguindo os padrões e informações que disponibilizamos nessa página.
Para as compras realizadas via mobile, iremos retornar o deepLink para que o cliente seja direcionado automaticamente para o aplicativo AME Digital.
Parâmetros Necessários:
Header:
client_id:
access_token:
Request:
{ "title":"Minha Loja.com", "description":"Pedido X", "amount":3000, "type":"PAYMENT", "currency":"BRL", "attributes":{ "transactionChangedCallbackUrl":"https://webhook.site/8c285cf1-504e-4a69-8018-9dca72dd1958", "items":[ { "ean":"22475411", "sku":"None", "amount":1000, "quantity":1, "description":"CAFE 180ML" }, { "ean":"22475400", "sku":"None", "amount":1000, "quantity":1, "description":"REFRIGERANTE 350ML" }, { "ean":"22475450", "sku":"None", "amount":1000, "quantity":1, "description":"AGUA S/ GAS 500ML" } ], "customPayload":{ "isFrom":"MINHALOJA" }, "address":[ { "postalCode":"86047610", "street":"Rua Sete de Setembro", "number":"3", "complement":"APTO 2", "neighborhood":"Centro", "city":"Londrina", "state":"PR", "country":"BRA", "type":"BILLING" }, { "postalCode":"86047610", "street":"Rua Sete de Setembro", "number":"3", "complement":"APTO 2", "neighborhood":"Centro", "city":"Londrina", "state":"PR", "country":"BRA", "amountValue":0, "type":"DELIVERY" } ], "paymentOnce":true, "riskHubProvider":"SYNC", "origin":"ECOMMERCE", "externalTransactionIdentifier":"7627c6e8-3b1b-11ec-8d3d-0242ac130003" } }
Response:
{ "id":"a11927a7-9d6c-4b6e-bfb4-5c6c249ad8a8", "title":"Minha Loja.com", "description":"Pedido X", "amount":3000, "type":"PAYMENT", "attributes":{ "cashbackAmountValue":370, "transactionChangedCallbackUrl":"https://webhook.site/8c285cf1-504e-4a69-8018-9dca72dd1958", "items":[ { "description":"CAFE BR MANIA CAPPUCCINO 180ML", "amount":1000, "quantity":1, "sku":"None" }, { "description":"REFRI COCA COLA LT 350ML", "amount":1000, "quantity":1, "sku":"None" }, { "description":"Abastecimento - Gasolina Aditivada", "amount":1000, "quantity":1, "sku":"None" } ], "customPayload":{ "isFrom":"MINHALOJA" }, "address":[ { "country":"BRA", "number":"3", "city":"Londrina", "street":"Rua Sete de Setembro", "postalCode":"86047610", "neighborhood":"Centro", "state":"PR", "complement":"APTO 2", "type":"BILLING" }, { "country":"BRA", "number":"3", "city":"Londrina", "street":"Rua Sete de Setembro", "postalCode":"86047610", "neighborhood":"Centro", "state":"PR", "complement":"APTO 2", "type":"DELIVERY", "amountValue":0 } ], "paymentOnce":true, "riskHubProvider":"SYNC", "origin":"ECOMMERCE", "externalTransactionIdentifier":"7627c6e8-3b1b-11ec-8d3d-0242ac130003" }, "qrCodeLink":"https://api.hml.amedigital.com/api/qrcode?qrcode=eyJ0eXBlIjoiUEFZTUVOVCIsIm9yZGVyX2lkIjoiYTExOTI3YTctOWQ2Yy00YjZlLWJmYjQtNWM2YzI0OWFkOGE4In0=", "deepLink":"amedigital://payment?qrcode=eyJ0eXBlIjoiUEFZTUVOVCIsIm9yZGVyX2lkIjoiYTExOTI3YTctOWQ2Yy00YjZlLWJmYjQtNWM2YzI0OWFkOGE4In0=" }
Payload de Criação de Ordem por Segmento
Abaixo temos alguns exemplos de payload de criação de ordem por segmento e deve ser implementado de acordo com o que a sua aplicação e ramo de negócio do merchant.
PDV
{ "title":"Minha Loja.com", "description":"Pedido X", "amount":300000, "type":"PAYMENT", "currency":"BRL", "attributes":{ "transactionChangedCallbackUrl":"https://webhook.site/1b636146-7899-4e71-962c-3ef753f5ddfc", "items":[ { "ean": "22475411", "sku": "None", "amount": 670, "quantity": 1, "description": "CAFE 180ML" }, { "ean": "22475400", "sku": "None", "amount": 990, "quantity": 1, "description": "REFRI COCA COLA LT 350ML" }, { "ean": "22475450", "sku": "None", "amount": 13000, "quantity": 1, "description": "Abastecimento - Gasolina Aditivada" } ], "customPayload":{ "isFrom":"MeuPDV" }, "paymentOnce":true, "riskHubProvider":"SYNC", "origin":"PDV" } }
Propriedade | Descrição | Tipo | Obrigatório |
---|---|---|---|
title | Título da ordem | string | Sim |
description | Descrição da ordem | string | Sim |
amount | Valor da ordem em centavos | int32 | Sim |
type | Tipo de ordem criada. Enviar apenas PAYMENT | string | Sim |
currency | Moeda de cobrança da ordem. Aceito apenas BRL. | string | Sim |
transactionChangedCallbackUrl | URL de callback, no qual será enviado a confirmação de pagamento. | string | Sim |
ean | EAN do produto, se possuir deve ser enviado, caso não, enviar null | Sim | |
sku | SKU do produto ou código interno na base do merchant | string | Sim |
amount | Valor do item em centavos | int32 | Sim |
quantity | Quantidade de itens comprados, em unidade, caso seja combustivel ou qualquer produto em granel, enviar 1 | int32 | Sim |
description | Descrição do item | string | Sim |
isFrom | Nome da software house que está gerando a transação. | string | Sim |
paymentOnce | Quantas vezes o QRCode pode ser pago. Enviar TRUE - não permite pagar mais de uma vez neste modelo de integração. | string | Sim |
riskHubProvider | Enviar SYNC. | string | Sim |
origin | Identifica o tipo e integração. Exemplo: PDV, POS, E-COMMERCE | string | Sim |
POS
{ "title":"Minha Loja.com", "description":"Pedido X", "amount":300000, "type":"PAYMENT", "currency":"BRL", "attributes":{ "transactionChangedCallbackUrl":"https://webhook.site/1b636146-7899-4e71-962c-3ef753f5ddfc", "items":[ { "ean": "22475411", "sku": "None", "amount": 670, "quantity": 1, "description": "CAFE BR MANIA CAPPUCCINO 180ML" }, { "ean": "22475400", "sku": "None", "amount": 990, "quantity": 1, "description": "REFRI COCA COLA LT 350ML" }, { "ean": "22475450", "sku": "None", "amount": 13000, "quantity": 1, "description": "Abastecimento - Gasolina Aditivada" } ], "customPayload":{ "isFrom":"MeuPOS" }, "paymentOnce":true, "riskHubProvider":"SYNC", "origin":"POS" } }
Propriedade | Descrição | Tipo | Obrigatório |
---|---|---|---|
title | Título da ordem | string | Sim |
description | Descrição da ordem | string | Sim |
amount | Valor da ordem em centavos | int32 | Sim |
type | Tipo de ordem criada. Enviar apenas PAYMENT | string | Sim |
currency | Moeda de cobrança da ordem. Aceito apenas BRL. | string | Sim |
transactionChangedCallbackUrl | URL de callback, no qual será enviado a confirmação de pagamento. | string | Sim |
ean | EAN do produto, se possuir deve ser enviado, caso não, enviar null | Sim | |
sku | SKU do produto ou código interno na base do merchant | string | Sim |
amount | Valor do item em centavos | int32 | Sim |
quantity | Quantidade de itens comprados, em unidade, caso seja combustível ou qualquer produto em granel, enviar 1 | int32 | Sim |
description | Descrição do item | string | Sim |
isFrom | Nome da software house que está gerando a transação. | string | Sim |
paymentOnce | Quantas vezes o QRCode pode ser pago. Enviar TRUE - não permite pagar mais de uma vez neste modelo de integração. | string | Sim |
riskHubProvider | Enviar SYNC. | string | Sim |
origin | Identifica o tipo e integração. Exemplo: PDV, POS, E-COMMERCE | string | Sim |
BILLS
{ "title":"Minha Loja.com", "description":"Pedido X", "amount":300000, "type":"PAYMENT", "currency":"BRL", "attributes":{ "transactionChangedCallbackUrl":"https://webhook.site/1b636146-7899-4e71-962c-3ef753f5ddfc", "items":[ { "ean": "22475411", "sku": "None", "amount": 670, "quantity": 1, "description": "Pagamento de nota de fiscal - 51080701212344000127550010000000981364112281" }, { "ean": "22475400", "sku": "None", "amount": 990, "quantity": 1, "description": "Pagamento de boleto X" }, { "ean": "22475450", "sku": "None", "amount": 13000, "quantity": 1, "description": "Pagamento de conta X" } ], "customPayload":{ "isFrom":"MeuSite.com" }, "paymentOnce":true, "riskHubProvider":"SYNC", "origin":"BILLS" } }
Propriedade | Descrição | Tipo | Obrigatório |
---|---|---|---|
title | Título da ordem | string | Sim |
description | Descrição da ordem | string | Sim |
amount | Valor da ordem em centavos | int32 | Sim |
type | Tipo de ordem criada. Enviar apenas PAYMENT | string | Sim |
currency | Moeda de cobrança da ordem. Aceito apenas BRL. | string | Sim |
transactionChangedCallbackUrl | URL de callback, no qual será enviado a confirmação de pagamento. | string | Sim |
ean | EAN do produto, se possuir deve ser enviado, caso não, enviar null | Sim | |
sku | SKU do produto ou código interno na base do merchant | string | Sim |
amount | Valor do item em centavos | int32 | Sim |
quantity | Quantidade de itens comprados, em unidade, caso seja combustível ou qualquer produto em granel, enviar 1 | int32 | Sim |
description | Descrição do item | string | Sim |
isFrom | Nome da software house que está gerando a transação. | string | Sim |
paymentOnce | Quantas vezes o QRCode pode ser pago. Enviar TRUE - não permite pagar mais de uma vez neste modelo de integração. | string | Sim |
riskHubProvider | Enviar SYNC. | string | Sim |
origin | Identifica o tipo e integração. Exemplo: PDV, POS, E-COMMERCE, BILLS | string | Sim |
TICKET
{ "title":"Minha Loja.com", "description":"Evento: X", "amount":100000, "type":"PAYMENT", "attributes":{ "transactionChangedCallbackUrl":"https://webhook.site/1b636146-7899-4e71-962c-3ef753f5ddfc", "items":[ { "description":"Super Evento 01", "type":"TANGIBLE", "price":{ "amountLocalCurrency":"50000", "currency":"BRL" }, "quantity":1, "itemSpecificData":{ "ticketsAndEvents":{ "eventTime":1420070400, "eventName":"Super Festa", "eventVenueName":"Venue Name", "eventLocation":{ "address1":"Rua Oscar Trompowsky", "address2":"", "city":"Belo Horizonte", "region":"Norte", "zip":"00000000", "country":"BR", "savedData":{ "usedSavedData":false, "choseToSaveData":false } }, "eventType":"SPORTS", "ticketClass":"VIP", "ticketSeat":"10", "ticketCategory":"INTEIRA", "eventReviews":{ "inUse":false, "itemInListCount":2 } } } }, { "description":"Super Evento 02", "type":"TANGIBLE", "price":{ "amountLocalCurrency":"50000", "currency":"BRL" }, "quantity":2, "itemSpecificData":{ "ticketsAndEvents":{ "eventTime":1420070410, "eventName":"Super Festa Hiper", "eventVenueName":"Event Venue Name", "eventLocation":{ "address1":"Rua Geronimo", "address2":"", "city":"Campinas", "region":"Sul", "zip":"11111111", "country":"BR", "savedData":{ "usedSavedData":false, "choseToSaveData":false } }, "eventType":"CONCERT", "ticketClass":"STANDING", "ticketSeat":"234", "ticketCategory":"MEIA", "eventReviews":{ "inUse":false, "itemInListCount":4 } } } } ], "origin":"TICKET", "riskHubProvider":"SYNC", "paymentOnce":true, "externalTransactionIdentifier":1786158, "isVerified":true, "customPayload":{ "isFrom":"NOMESITE" } } }
Propriedade | Descrição | Tipo | Obrigatório |
---|---|---|---|
title | Título da ordem | string | Sim |
description | Descrição da ordem | string | Sim |
amount | Valor da ordem em centavos | int32 | Sim |
type | Tipo de ordem criada. Enviar apenas PAYMENT | string | Sim |
transactionChangedCallbackUrl | URL de callback, no qual será enviado a confirmação de pagamento. | string | Sim |
description | Descrição do evento | string | Sim |
type | Tipo de ingresso. Enviar apenas TANGIBLE | string | Sim |
amountLocalCurrency | Valor do ingresso em centavos. | int32 | Sim |
currency | Moeda de cobrança da ordem. Aceito apenas BRL. | string | Sim |
quantity | Quantidade de ingressos. | string | Sim |
eventTime | Data do evento. Unix time | date | Sim |
eventName | Nome do evento | string | Sim |
eventVenueName | Nome do local do evento. Exemplo: Allianz Parque | string | Sim |
address1 | Endereço do evento | string | Sim |
address2 | Endereço do evento. Enviar em branco, caso não tenha. | string | Sim |
city | Cidade do evento. | string | Sim |
region | Região do evento. Exemplo: sul, norte | string | Sim |
zip | CEP do evento. | string | Sim |
country | País do evento. Enviar BR. | string | Sim |
usedSavedData | Enviar false. | boolean | Sim |
choseToSaveData | Enviar false. | boolean | Sim |
eventType | Tipo do evento. Exemplo: SPORTS, PARTIES, CULTURAL | string | Sim |
ticketClass | Categoria do ingresso. Exemplo: VIP, PISTA | string | Sim |
ticketSeat | Número do acento. Caso não tenha, enviar em branco. | string | Sim |
ticketCategory | Tipo de ingresso. Exemplo: meia ou inteira. | string | Sim |
inUse | Enviar false. | boolean | Sim |
itemInListCount | int | Sim | |
origin | Identifica o tipo e integração. Exemplo: TICKET, PDV, POS, E-COMMERCE, BILLS | string | Sim |
riskHubProvider | Enviar SYNC. | string | Sim |
paymentOnce | Quantas vezes o QRCode pode ser pago. Enviar TRUE - não permite pagar mais de uma vez neste modelo de integração. | string | Sim |
paymentOnce | Quantas vezes o QRCode pode ser pago. Enviar TRUE - não permite pagar mais de uma vez neste modelo de integração. | string | Sim |
externalTransactionIdentifier | Código da transação gerado no sistema parceiro. | string | Sim |
isVerified | Enviar TRUE. | boolean | Sim |
isFrom | Nome do site/empresa que gerou a transação. | boolean | Sim |
E-COMMERCE
{ "title": "Minha Loja.com", "description": "Pedido X", "amount": 14990, "type": "PAYMENT", "currency": "BRL", "attributes": { "transactionChangedCallbackUrl": "https://webhook.site/1b636146-7899-4e71-962c-3ef753f5ddfc", "items": [ { "ean": "22475411", "sku": "None", "amount": 670, "quantity": 1, "description": "CAFE BR MANIA CAPPUCCINO 180ML" }, { "ean": "22475400", "sku": "None", "amount": 990, "quantity": 1, "description": "REFRI COCA COLA LT 350ML" }, { "ean": "22475450", "sku": "None", "amount": 13000, "quantity": 1, "description": "Abastecimento - Gasolina Aditivada" } ], "customPayload": { "isFrom": "MinhaPlataforma" }, "address": [ { "postalCode": "86047610", "street": "Rua Sete de Setembro", "number": "3", "complement": "APTO 2", "neighborhood": "Centro", "city": "Londrina", "state": "PR", "country": "BRA", "type": "BILLING" }, { "postalCode": "86047610", "street": "Rua Sete de Setembro", "number": "3", "complement": "APTO 2", "neighborhood": "Centro", "city": "Londrina", "state": "PR", "country": "BRA", "amountValue": 0, "type": "DELIVERY" } ], "paymentOnce": true, "riskHubProvider": "SYNC", "origin": "ECOMMERCE" } }
Propriedade | Descrição | Tipo | Obrigatório |
---|---|---|---|
title | Título da ordem | string | Sim |
description | Descrição da ordem | string | Sim |
amount | Valor da ordem em centavos | int32 | Sim |
type | Tipo de ordem criada. Enviar apenas PAYMENT | string | Sim |
currency | Moeda de cobrança da ordem. Aceito apenas BRL. | string | Sim |
transactionChangedCallbackUrl | URL de callback, no qual será enviado a confirmação de pagamento. | string | Sim |
ean | EAN do produto, se possuir deve ser enviado, caso não, enviar null | Sim | |
sku | SKU do produto ou código interno na base do merchant | string | Sim |
amount | Valor do item em centavos | int32 | Sim |
quantity | Quantidade de itens comprados, em unidade, caso seja combustivel ou qualquer produto em granel, enviar 1 | int32 | Sim |
description | Descrição do item | string | Sim |
isFrom | Nome do emissor de ticket online. | string | Sim |
postalCode | CEP do endereço | string | Sim |
street | Nome da rua | string | Sim |
number | Número da residencia | string | Sim |
complement | Complemento da residencia | string | Sim |
neighborhood | Bairro | string | Sim |
city | Cidade | string | Sim |
state | Estado - deve ser enviado as singlas. Exemplo: SP, PR, RS | string | Sim |
country | País - deve ser enviado 'BRA' | string | Sim |
type | Tipo de endereço - deve ser enviado o endereço de cobrança e entrega em dois objetos diferente dentro do array de endereço, conforme exemplo do JSON acima. (BILLING/DELIVERY) | string | Sim |
paymentOnce | Quantas vezes o QRCode pode ser pago. Enviar TRUE - não permite pagar mais de uma vez neste modelo de integração. | string | Sim |
riskHubProvider | Enviar SYNC. | string | Sim |
origin | Identifica o tipo e integração. Exemplo: TICKET, PDV, POS, E-COMMERCE, BILLS | string | Sim |
Cancelamento de uma Ordem de Compra
Através desta operação é possível efetuar o cancelamento de um QR Code que ainda não foi pago.
Observação: nesta API posuios dois tipos de cancelamento, este em especifico (DELETE/ordens) permite com que seja cancelado uma ordem que ainda não foi paga e temos também o DELETE/pagamentos que permite cancelamento o pagamento de uma ordem que foi paga mas ainda não foi capturada.
Request:
Parâmetros Necessários:
Header:
client_id:
access_token:
Response:
{ "id": "9df12f86-3c09-4c98-aca3-bfa99c75d8a9", "ownerId": "2eae9f27-0f2f-4192-b575-37b91f9270e6", "creditWalletId": "b0c458fd-51cb-4ae0-bd85-0c0d476721ae", "date": "2021-05-31T11:46:34.545", "title": "Pedido - Loja X", "description": "Pedido X", "amount": 1000, "currency": "BRL", "type": "PAYMENT", "attributes": { "cashbackAmountValue": 100, "transactionChangedCallbackUrl": "https://webhook.site/", "items": [ { "description": "Itens do Pedido", "amount": 1000, "quantity": 1, "sku": "1234322" } ], "customPayload": { "isFrom": "Plataforma" }, "address": [ { "country": "BRA", "number": "338", "city": "Campinas", "street": "Avenida Presidente Vargas", "postalCode": "14801000", "neighborhood": "Jardim Califórnia", "state": "SP", "type": "BILLING" }, { "country": "BRA", "number": "338", "city": "Campinas", "street": "Avenida Presidente Vargas", "postalCode": "14801000", "neighborhood": "Jardim Califórnia", "state": "SP", "type": "DELIVERY", "amountValue": 5 } ], "paymentOnce": true, "riskHubProvider": "SYNC", "origin": "ECOMMERCE" }, "planTypes": [ "BSC", "PLS" ] }
Request:
Parâmetros Necessários:
Header:
client_id:
access_token:
customerId:
O customerId é obtido no campo ownerId do GET/orderID (endpoint anterior).
Response:
{}
O response body é vazio.
Ponto de atenção: antes de disparar o cancelamento de um qrcode, orientamos que seja feito uma consulta no callback ou no status do pedido, para certificarem-se de que o pedido continua com o status de não pago.
Pagamento da Ordem de Compra
O pagamento da ordem de compra deve ser feito exclusivamente através do aplicativo de homologação que disponibilizamos durante a fase de integração. Clique aqui para maiores informações sobre como obter o aplicativo de homologação.
Após a criação da ordem, ela poderá assumir os seguintes status:
Status | Descrição |
---|---|
AUTHORIZED | Ordem foi criada com sucesso e o valor do pagamento está provisionado na carteira do cliente Ordem aguarda captura ou cancelamento |
DENIED | Não foi possível realizar a criação da ordem. Esse status é apresentado quando o pagamento foi recusado por falta de saldo, quando o cartão está bloqueado, entre outros motivos. |
CANCELED | A transação foi autorizada e cancelada em seguida. Esse status é apresentado quando o risco identifica um problema após a autorização ou quando ocorre um problema na URL de Callback. |
CAPTURED | Ordem foi criada e capturada com sucesso. |
Callback - Aviso de pagamento
Após a ordem ser paga pelo usuário, é enviado um aviso de confirmação de pagamento para a URL de callback informada no campo "transactionChangedCallbackUrl" na criação da ordem de compra.
Exemplo da chamada de callback:
{ "id":"ab48af16-e2c4-40ca-8254-07609b27a183", "date":[ 2021, 2, 10, 17, 20, 14, 801275000 ], "operationType":"DEBIT", "name":"Compra on-line", "title":"Minha Loja.com", "description":"Pedido X", "status":"AUTHORIZED", "type":"PAYMENT", "currency":"BRL", "cashType":"CASH", "amount":3000, "amountRefunded":0, "splits":[ { "id":"c299a433-c4a6-431d-ac9d-fcb6e57455c0", "date":[ 2021, 2, 10, 17, 20, 14, 801288000 ], "status":"AUTHORIZED", "cashType":"CASH", "amount":3000, "installments":null, "cardMasked":null, "cardBrand":null } ], "attributes":{ "cashbackAmountValue":300, "transactionChangedCallbackUrl":"https://webhook.site/8c285cf1-504e-4a69-8018-9dca72dd1958", "items":[ { "description":"CAFE 180ML", "amount":1000, "quantity":1, "ean":null, "sku":"1234322" }, { "description":"REFRIGERANTE 350ML", "amount":1000, "quantity":1, "ean":"1234567890128", "sku":null }, { "description":"AGUA S/ GAS 500ML", "amount":1000, "quantity":1, "ean":null, "sku":"128982" } ], "customPayload":{ "isFrom":"MINHALOJA" }, "address":[ { "country":"BRA", "number":"3", "city":"Londrina", "street":"Rua Sete de Setembro", "postalCode":"86047610", "neighborhood":"Centro", "state":"PR", "complement":"APTO 2", "type":"BILLING" }, { "country":"BRA", "number":"3", "city":"Londrina", "street":"Rua Sete de Setembro", "postalCode":"86047610", "neighborhood":"Centro", "state":"PR", "complement":"APTO 2", "type":"DELIVERY", "amountValue":0 } ], "paymentOnce":true, "riskHubProvider":"SYNC", "origin":"ECOMMERCE", "orderId":"83dc8e33-d368-4566-a541-0ec72f6b7805" }, "operationReference":null, "peer":null, "nsu":"662414801293", "debitWalletId":"7f522584-d6dd-419e-ba06-6fa658ed1278" }
Cancelando um pagamento
A chamada de Cancelamento de pagamento, permite que o Sistema Parceiro cancele uma ordem que já foi autorizada mas ainda não foi capturada. Após o cancelamento, o saldo da compra que havia sido provisionado na carteira do cliente após a criação da ordem será automaticamente liberado.
Lembre-se de sempre cancelar uma ordem que não será capturada, caso contrário, o saldo ficará provisionado na carteira do cliente.
Abaixo, explicamos os parâmetros dispoíveis na chamada de cancelamento de ordem, maiores detalhes técnicos e de obrigatoriedade dos campos podem ser consultados aqui.
Parâmetro | Descrição |
---|---|
id (PATH PARAM) | ID de pagamento da ordem, que foi recebido na URL de Callback após o pagamento ter sido efetuado Atenção: aqui não deve ser utilizado o ID de criação da ordem |
Após o cancelamento da ordem, ela poderá assumir o seguinte status:
Status | Descrição |
---|---|
CANCELLED | Ordem foi cancelada com sucesso |
Lembre-se
Uma ordem só pode ser cancelada caso seu status seja AUTHORIZED. Para reverter ordens já capturadas cujo status é SUCCESS, verifique a página de estorno de ordem
Request:
Parâmetros Necessários:
Header:
client_id:
access_token:
Response:
{ "id": "4e0aff26-0cbc-41ae-8417-dfb404d86c02", "date": "2020-06-29T15:39:15.515929", "operationType": "DEBIT", "name": "Compra on-line", "title": "titulo da ordem de teste", "description": "descrição da ordem", "status": "CANCELED", "type": "PAYMENT", "currency": "BRL", "cashType": "CASH", "amount": 600, "amountRefunded": 0, "splits": [ { "id": "f05f7856-5d66-4339-a767-016d34cb3bda", "date": "2020-06-29T15:39:15.516183", "status": "CANCELED", "cashType": "CASH", "amount": 600 } ], "attributes": { "orderId": "e9e65d7f-0a10-4d13-be7d-7aca5a4a4467", "paymentOnce": false, "riskHubProvider": "SYNC", "customPayload": { "isFrom": "MAGENTO", "billingAddress": { "billingAddress": { "country": "BRA", "number": "123", "city": "São Paulo", "street": "lorem ipsum", "postalCode": "01229010", "neighborhood": "bairro do limoeiro", "state": "SP", "complement": "cs 1" } } }, "items": [ { "amount": 100, "quantity": 6, "description": "item de teste - sku do produto OU item" } ], "transactionChangedCallbackUrl": "https://iapi.hml.amedigital.com/sua/url/de/callback" }, "peer": { "id": "d480e038-054c-4171-a406-b96805c96866", "name": "nome do merchant de teste, "type": "MERCHANT" }, "nsu": 56355516192 }
Capturando um pagamento
A captura pode ser realizada para as ordens que possuem o status AUTHORIZED. Quando a captura da ordem é bem sucedida, o valor do pagamento que estava provisionado na carteira do cliente é processado e o valor a ser recebido é lançado na agenda do vendedor.
Nós aconselhamos que a captura seja feita automaticamente após a autorização da ordem, para isso, configure o seu sistema para que solicite a captura da ordem assim que a AME retornar o status AUTHORIZED.
Abaixo, explicamos os parâmetros dispoíveis na chamada de captura de ordem, maiores detalhes técnicos e de obrigatoriedade dos campos podem ser consultados aqui.
Parâmetro | Descrição |
---|---|
id (PATH PARAM) | ID de pagamento da ordem, que foi recebido na URL de Callback Atenção: aqui não deve ser utilizado o ID de criação da ordem |
Após a captura da ordem, ela poderá assumir os seguintes status:
Status | Descrição |
---|---|
Success | Ordem capturada com sucesso. O valor a ser recebido é lançado na agenda do vendedor. Esse pode ser o último status da ordem, caso seja necessário, ela poderá ser estornada. |
Request:
Parâmetros Necessários:
Header:
client_id:
access_token:
{ "idPagamento": "98f0fda5-a95c-4d9c-ae82-e369ad0e8ab1" }
Response:
{ "id": "98f0fda5-a95c-4d9c-ae82-e369ad0e8ab1", "date": "2020-06-29T18:21:06.642483", "operationType": "CREDIT", "name": "Compra on-line", "title": "titulo da ordem de teste", "description": "descrição da ordem", "status": "SUCCESS", "type": "PAYMENT", "currency": "BRL", "cashType": "MULTIPLE", "amount": 500, "amountRefunded": 0, "splits": [ { "id": "25461617-6bb8-4b4e-9ceb-0130e3872602", "date": "2020-06-29T18:21:06.642907", "status": "SUCCESS", "cashType": "CASH", "amount": 275 }, { "id": "dfa899c7-749d-43b1-91f0-1bfa937635a0", "date": "2020-06-29T18:21:06.643098", "status": "SUCCESS", "cashType": "CARD", "amount": 225, "installments": 1, "cardMasked": "449872######7549", "cardBrand": "VISA" } ], "attributes": { "orderId": "32059d60-46ab-4257-82f7-c85561dd2baa", "paymentOnce": false, "riskHubProvider": "SYNC", "customPayload": { "isFrom": "MAGENTO", "billingAddress": { "billingAddress": { "country": "BRA", "number": "123", "city": "São Paulo", "street": "lorem ipsum", "postalCode": "01229010", "neighborhood": "bairro do limoeiro", "state": "SP", "complement": "cs 1" } } }, "items": [ { "amount": 100, "quantity": 1, "description": "item de teste - sku do produto OU item" }, { "amount": 200, "quantity": 2, "description": "item de teste - sku do produto OU item" } ], "transactionChangedCallbackUrl": "https://iapi.hml.amedigital.com/sua/url/de/callback" }, "peer": { "id": "e7d3e610-7323-4ee7-bf3a-9154666191e2", "name": "Usuario de Testes", "type": "MERCHANT" }, "nsu": 666066647128 }
Estornando um pagamento
O estorno do pagamento pode ser realizado quando ela já foi capturada e seu status é SUCCESS. Para cancelar uma ordem que ainda não tenham sido capturada e que tenha o status AUTHORIZED é necessário realizar o cancelamento da ordem.
Um estorno pode ser feita de maneira integral, quando todo o valor da venda é estornado ou parcialmente.
É possível realizar vários estornos referentes a uma mesma ordem, entretanto a somatória dos valores estornados nunca poderá ser maior do que o valor total da venda.
Abaixo, explicamos os parâmetros dispoíveis na chamada de estorno de ordem, maiores detalhes técnicos e de obrigatoriedade dos campos podem ser consultados aqui.
Parâmetro | Descrição |
---|---|
id (PATH PARAM) | ID de pagamento da ordem, que foi recebido na URL de Callback após o pagamento ter sido efetuado Atenção: aqui não deve ser utilizado o ID recebido na criação da Ordem |
refundId (PATH PARAM) | Id que deve ser gerado pelo sistema parceiro para identificar a transação de estorno, deve ser criado
seguindo a lógica de UUID. Esse ID deve ser único para cada requisição de estorno criada. Sugerimos que a criação do UUID siga o padrão: silgadoecommerce-uuid |
amount | Valor a ser estornado em centavos Ex: 13,50 = "1350" |
RefundId único
É possível gerar vários estornos parciais em uma mesma ordem, entretanto, é necessário que cada um desses estornos seja gerado com um refundId único. Caso o refundId já tenha sido utilizado, não será possível realizar o estorno.
Após o estorno da ordem, ela poderá assumir os seguintes status:
Status | Descrição |
---|---|
SUCCESS | Ordem foi estornada com sucesso, mas ainda existem valores que não foram estornados. Esse é o status de uma ordem que foi estornada parcialmente. |
REFUNDED | Ordem foi estornada com sucesso e não existem mais valores a serem estornados. Esse é o status de uma ordem que foi estornada integralmente. |
Status REFUNDED
A ordem só terá seu status atualizado para REFUNDED caso o valor da ordem tenha sido estornado integralmente
Request:
Parâmetros Necessários:
Header:
client_id:
access_token:
{ "amount": 100, "refundId": "e53799a2-aee2-43c0-bcc8-ee61e904e887" }
Response:
{ "refundId": "ddef064b-5755-44c5-8637-36fa8ce2d6c3", "operationId": "d44b1e58-dde8-4b87-a90d-65d494ef66b7", "amount": 500, "status": "REFUNDED", "createdAt": "2020-06-30T17:01:09.553505", "refundedAt": "2020-06-30T17:01:09.617693" }