Como criar um pagamento com conversão de moedas e autenticação 3DS
Saiba mais sobre essa funcionalidade na documentação.
Autenticação 3DS
O protocolo de autenticação 3DS está disponível na versão browser-based, ou seja, a loja deverá incluir o script do 3DS no arquivo HTML da página de pagamento (checkout). O protocolo 3DS, ao processar o script, permite a troca de dados entre a loja e o emissor para autenticar o portador do cartão.
A integração do script do protocolo de autenticação é composta por etapas, para saber mais acesse a documentação.
Conversor de moedas e-commerce com autenticação 3DS
A criação de uma pagamento com a conversão de moeda e autenticação de 3DS segue os seguintes passos:
- Implementação do script 3DS;
- Criar pagamento com conversor de moeda, incluindo o nó do 3DS. Os campos
DynamicCurrencyConversion
eAuthenticate
devem ser enviados como true; - Confirmar a conversão de moeda, que deve ser realizada em até vinte minutos.
Fluxo do conversor de moedas e-commerce com 3DS
- O comprador escolhe pagar com cartão de crédito estrangeiro;
- A loja executa um script, solicitando à Cielo autenticação através da solução 3DS;
- A loja envia requisição com dados do comprador para a bandeira;
- A bandeira envia a requisição para avaliação de risco do emissor;
- O emissor avalia as informações e determina se o fluxo será com ou sem desafio ao portador;
- O emissor envia o resultado da autenticação para o 3DS Server;
- o 3DS server envia o resultado da autenticação;
- O back-end da loja envia a requisição de autorização, informando o campo DynamicCurrencyConversion igual a true para verificar a elegibilidade do cartão ao conversor de moedas e o campo
Authenticate
igual a _true_ para autenticação do 3DS. - A API E-commerce Cielo retorna na resposta o nó
CurrencyExchangeData
, que informa se o cartão é elegível ao conversor de moedas e apresenta as opções de câmbio; - O front-end da loja exibe as opções de conversão na página de checkout, para decisão do comprador;
- O comprador escolhe entre pagar em moeda estrangeira ou em real_;
- Se o comprador escolheu a moeda estrangeira (diferente de real), a loja envia requisição de confirmação da conversão com o campo
CurrencyConversion
igual a true; - A API E-commerce Cielo envia retorno de sucesso;
- A loja envia confirmação de pagamento ao comprador.
Criar pagamento com conversão de moedas com autenticação 3DS
Ambiente | Método | Endpoint |
---|---|---|
Produção | post | https://api.cieloecommerce.cielo.com.br/1/sales |
{
"MerchantOrderId": "507313793",
"Customer": {
"Name": "Aline de Souza"
},
"Payment": {
"Type": "CreditCard",
"Amount": 1000,
"Provider": "Cielo",
"Installments": 1,
"Capture": true,
"Authenticate": "true",
"DynamicCurrencyConversion": true,
"CreditCard": {
"Holder": "Aline de Souza",
"CardNumber": "4091688625337641",
"ExpirationDate": "12/2035",
"SecurityCode": "333",
"Brand": "Visa"
},
"ExternalAuthentication": {
"Cavv": "AAABB2gHA1B5EFNjWQcDAAAAAAB=",
"Xid": "Uk5ZanBHcWw2RjRCbEN5dGtiMTB=",
"Eci": "06",
"Version": "2.2.0",
"ReferenceID": "a24a5d87-b1a1-4aef-a37b-2f30b91274e6"
}
}
}
As tabelas a seguir apresentam os parâmetros que podem ser enviados para a API na criação de um pagamento com conversão de moedas e autenticação 3DS.
Parâmetros do header
Propriedade | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
MerchantId | Identificador da loja na API E-commerce Cielo. | GUID | 36 | Sim |
MerchantKey | Chave pública para autenticação dupla na API E-commerce Cielo. | string | 40 | Sim |
RequestId | Identificador da requisição, usado quando a loja usa diferentes servidores para cada GET/POST/PUT. | GUID | 36 | Não |
Parâmetros do body
Propriedade | Tipo | Tamanho | Obrigatoriedade | Descrição |
---|---|---|---|---|
MerchantOrderId | string | 50 | Sim | Identificação do pedido. Poderá ser usada para cancelar ou consultar a transação no futuro. Atenção: Os caracteres permitidos são apenas a-z, A-Z, 0-9. Não são permitidos caracteres especiais e espaços em branco. |
Customer.Name | string | 255 | Não | Nome do comprador. |
Payment.Type | string | -- | Sim | Tipo do meio de pagamento. Para a conversão de moedas, o tipo deve ser "CreditCard". |
Payment.Amount | string | 15 | Sim | Valor do pedido (ser enviado em centavos de real). |
Payment.Installments | Integer | 2 | Sim | Número de parcelas. Para transações parceladas, o número de parcelas será sempre maior que 1. |
Payment.Capture | boolean | -- | Não | Booleano que identifica se a autorização deve ser com captura automática ("true") ou captura posterior ("false"). |
Payment.Authenticate | boolean | -- | Sim, caso a autenticação seja validada. | Indica se a transação foi autenticada via 3DS antes da autorização. |
Payment.DynamicCurrencyConversion | boolean | -- | Sim | Enviar como true para solicitar a conversão do valor do pedido para a moeda local do cartão de crédito estrangeiro usado na compra. |
Payment.CreditCard.CardNumber | string | 19 | Sim | Número do cartão do comprador. |
Payment.CreditCard.Holder | string | 25 | Sim | Nome do comprador impresso no cartão. Não aceita caracteres especiais ou acentuação. |
Payment.CreditCard.ExpirationDate | string | 7 | Sim | Data de validade impressa no cartão. Ex. MM/AAAA. |
Payment.CreditCard.SecurityCode | string | 4 | Não | Código de segurança impresso no verso do cartão. |
Payment.CreditCard.Brand | string | 10 | Sim | Bandeira do cartão. Valores possíveis: Visa / Master |
Payment.ExternalAuthentication.Eci | integer | 1 | Sim | Electronic Commerce Indicator retornado no processo de autenticação. |
Payment.ExternalAuthentication.ReferenceId | string | 36 | Não | RequestID retornado no processo de autenticação. - O ReferenceId não é retornado em todas as autenticações. - O envio é recomendado caso o ReferenceId tenha sido retornado no script. |
Payment.ExternalAuthentication.Cavv | string | -- | Sim | Assinatura retornada nos cenários de sucesso na autenticação. ⚠️Este campo é obrigatório para transações que foram autenticadas pelo emissor ou pela bandeira e nas solicitações de autorizações com Data Only. |
Payment.ExternalAuthentication.Xid | string | -- | Não | XID retornado no processo de autenticação. - O Xid não é retornado em todas as autenticações. - O envio é recomendado caso o Xid tenha sido retornado no script. |
Payment.ExternalAuthentication.Version | string | 5 | Sim | Campo obrigatório para transações com autenticação 3DS. Versão do 3DS aplicado no processo de autenticação. Valores possíveis: - Visa e Mastercard: "2.2.0" - Elo e Amex: "2.1.0" |
Resposta
{
"MerchantOrderId": "507121234",
"Customer": {
"Name": "Aline de Souza"
},
"Payment": {
"ServiceTaxAmount": 0,
"Installments": 1,
"Interest": 0,
"Capture": true,
"Authenticate": true,
"Recurrent": false,
"CreditCard": {
"CardNumber": "409168******7641",
"Holder": "Aline de Souza",
"ExpirationDate": "12/2035
"SaveCard": false,
"Brand": "Visa"
},
"Tid": "28875720024AFF9F",
"Provider": "Cielo",
"Eci": "6",
"ExternalAuthentication": {
"Cavv": "AAABB2gHA1B5EFNjWQcDAAAAAAB=",
"Xid": "Uk5ZanBHcWw2RjRCbEN5dGtiMTB=",
"Eci": "06",
"Version": "2.2.0",
"ReferenceId": "24a5d87-b1a1-4aef-a37b-2f30b91274e6"
},
"IsQrCode": false,
"DynamicCurrencyConversion": true,
"CurrencyExchangeData": {
"CurrencyExchanges": [
{
"ConvertedAmount": 21,
"ConversionRate": 0.206799,
"Currency": "USD"
}
]
},
"Amount": 100,
"ReceivedDate": "2025-05-15 09:43:32",
"Status": 12,
"IsSplitted": false,
"ReturnMessage": "Deseja pagar na moeda do seu País? Would you like to pay in your currency? ¿Quieres pagar en la moneda de tu país?",
"ReturnCode": "1",
"PaymentId": "cedbc789647eb-ba5d-609955d582ff34"
"Type": "CreditCard",
"Currency": "BRL",
"Country": "BRA",
"Links": [
{
"Method": "GET",
"Rel": "self",
"Href": "https://apiquery.cieloecommerce.cielo.com.br/1/sales/cedbc48e-81ba-47eb-ba5d-609955d344ee"
},
{
"Method": "PUT",
"Rel": "confirm",
"Href": "https://api.cieloecommerce.cielo.com.br/1/sales/cedbc48e-81ba-47eb-ba5d-609955d344ee/confirm"
}
]
}
}
A tabela a seguir apresenta os principais parâmetros que podem ser retornados pela API na criação de um pagamento com conversão de moedas e autenticação 3DS.
Propriedade | Descrição | Tipo | Tamanho |
---|---|---|---|
CurrencyExchangeData.CurrencyExchanges.ConvertedAmount | Valor convertido pelo DCC | string | 50 |
CurrencyExchangeData.CurrencyExchanges.ConversionRate | Taxa de câmbio do DCC | string | 255 |
CurrencyExchangeData.CurrencyExchanges.currency | Moeda local do cartão do comprador | string | 15 |
Payment.Eci | Electronic Commerce Indicator retornado no processo de autenticação após a autorização. _Para validar se a autenticação foi acatada na resposta da autorização, considere o ECI fora do nó Payment.ExternalAuthentication . | Integer | 1 |
*Para verificar se a transação foi autorizada com sucesso consulte o Retuncode
, ReturnMessage
e o Status
.
*Status 12: indica que a transação está pendente, aguardando uma requisição de confirmação da loja para prosseguir com a transação.
A loja deve preparar a página de checkout para apresentar uma tela com as opções de conversão de moedas ao comprador, com base nas opções retornadas no nó CurrencyExchangeData
.
Atenção: O exemplo desta página apresenta os parâmetros necessários para o Conversor de Moedas E-commerce e a autenticação 3DS e apenas os parâmetros obrigatórios para uma transação de cartão de crédito. Para verificar todos os parâmetros possíveis, vá para Criar pagamento com cartão de crédito.
Importante
- O valor da transação aparecerá em reais (R$) ao fazer consultas;
- No site Cielo em pesquisa de transações o valor capturado aparecerá em reais (R$);
- Para o comprador após confirmar a conversão de moeda o valor aparecerá convertido na moeda escolhida;
- A operação de captura pode ser automática ou posterior mas deve ser feita em até 20 minutos.
Confirmar conversão da moeda
Ambiente | Método | Endpoint |
---|---|---|
Produção | put | https://api.cieloecommerce.cielo.com.br/1/sales/{PaymentId}/confirm |
{
"CurrencyConversion": true
}
A tabela a seguir apresenta os parâmetros que podem ser enviados para a API na confirmação da conversão da moeda.
Parâmetros do header
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
MerchantId | String | 36 | Sim | Identificador da loja no Split de Pagamento |
MerchantKey | String | 40 | Sim | Chave Publica para Autenticação Dupla no Split de Pagamento |
Content-Type | String | 40 | Sim | Application/json |
RequestId | string | 36 | Não | Identificador da requisição, usado quando a loja usa diferentes servidores para cada GET/POST/PUT. |
Parâmetro do Path
Propriedade | Tipo | Tamanho | Obrigatoriedade | Descrição |
---|---|---|---|---|
PaymentId | string | 36 | Sim | Número de identificação do pagamento, necessário para futuras operações como Consulta, Captura e Cancelamento. |
Parâmetro do body
Propriedade | Tipo | Tamanho | Obrigatoriedade | Descrição |
---|---|---|---|---|
CurrencyConversion | Booleano | 50 | Sim | Booleano que confirma que o comprador optou por realizar a conversão. Quando true, indica que a transação será submetida para autorização na moeda estrangeira. Quando false, indica que a transação será submetida para autorização em reais. |
Resposta
{
"Status": 2,
"ReasonCode": 0,
"ReasonMessage": "Successful",
"ProviderReturnCode": "6",
"ProviderReturnMessage": "Transacao capturada com sucesso",
"ReturnCode": "6",
"ReturnMessage": "Transacao capturada com sucesso",
"Tid": "28FGHJKTIOLPDSD28GM88FC",
"ProofOfSale": "027113",
"AuthorizationCode": "025930",
"Links": [
{
"Method": "GET",
"Rel": "self",
"Href": "https://apiquery.cieloecommerce.cielo.com.br/1/sales/cedbc48e-81ba-47eb-ba5d-609955d344ee"
},
{
"Method": "PUT",
"Rel": "void",
"Href": "https://api.cieloecommerce.cielo.com.br/1/sales/cedbc48e-81ba-47eb-ba5d-609955d344ee/void"
}
]
}
Depois que o comprador decide pagar na moeda estrangeira, a loja deve enviar a requisição de confirmação da conversão com o campo CurrencyConversion
igual a true. Após a confirmação, a API E-commerce Cielo irá submeter a transação para autorização.
Atenção ao tempo limite para confirmação
A confirmação deve ser feita em até vinte minutos.
Se o tempo para confirmação da moeda desejada for superior a vinte minutos, a API irá retornar o código 020 com a mensagem “Status não permite autorização”.
Se a captura não for automática (
Payment.Capture
igual a true), a captura posterior também deve se feita em até 20 minutos, para garantir o câmbio ao comprador.
Updated 7 days ago