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
DynamicCurrencyConversioneAuthenticatedevem 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
Authenticateigual 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
CurrencyConversionigual 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 |
|
{
"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 |
|---|---|---|---|---|
| string | 50 | Sim | Identificação do pedido. Poderá ser usada para cancelar ou consultar a transação no futuro. |
| string | 255 | Não | Nome do comprador. |
| string | -- | Sim | Tipo do meio de pagamento. Para a conversão de moedas, o tipo deve ser "CreditCard". |
| string | 15 | Sim | Valor do pedido (ser enviado em centavos de real). |
| Integer | 2 | Sim | Número de parcelas. Para transações parceladas, o número de parcelas será sempre maior que 1. |
| boolean | -- | Não | Booleano que identifica se a autorização deve ser com captura automática ("true") ou captura posterior ("false"). |
| boolean | -- | Sim, caso a autenticação seja validada. | Indica se a transação foi autenticada via 3DS antes da autorização. |
| 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. |
| string | 19 | Sim | Número do cartão do comprador. |
| string | 25 | Sim | Nome do comprador impresso no cartão. Não aceita caracteres especiais ou acentuação. |
| string | 7 | Sim | Data de validade impressa no cartão. Ex. MM/AAAA. |
| string | 4 | Não | Código de segurança impresso no verso do cartão. |
| string | 10 | Sim | Bandeira do cartão. Valores possíveis: Visa / Master |
| integer | 1 | Sim | Electronic Commerce Indicator retornado no processo de autenticação. |
| string | 36 | Não | RequestID retornado no processo de autenticação.
|
| string | -- | Sim | Assinatura retornada nos cenários de sucesso na autenticação. |
| string | -- | Não | XID retornado no processo de autenticação.
|
| string | 5 | Sim |
|
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 |
|
{
"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 |
|---|---|---|---|---|
| Booleano | 50 | Sim | Booleano que confirma que o comprador optou por realizar a conversão. |
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çãoA 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.Captureigual a true), a captura posterior também deve se feita em até 20 minutos, para garantir o câmbio ao comprador.
Updated 15 days ago