Utilizando o DCC (conversor de moedas) da Global Payments

O DCC (Dynamic Currency Conversion) é um conversor de moedas da adquirente Global Payments que permite que o portador de um cartão estrangeiro escolha entre pagar em reais ou em sua moeda local, convertendo o valor do pedido no momento da compra com total transparência para o comprador.
A solução é indicada para estabelecimentos que recebem pagamentos com cartões emitidos no exterior como hotéis, pousadas, polos comerciais e comércios em pontos turísticos.

ℹ️

Importante

Para utilizar esta funcionalidade com a autenticação padrão, o lojista deverá entrar em contato com a adquirente Global Payments e solicitar a ativação do DCC em seu estabelecimento.

⚠️

Atenção

Esta funcionalidade não é compatível com transações com MPI externo.

Quando o estabelecimento possui o produto DCC habilitado, o processo de autorização é realizado em 3 etapas, explicadas a seguir:

ETAPA 1 - autorização

Na primeira etapa, quando é solicitada uma autorização com um cartão internacional, a Global Payments identifica o país do cartão e aplica a conversão de moeda seguindo os cálculos específicos de cada bandeira, retornando as informações de conversão em seguida.

Requisição

Não há diferença entre uma requisição de autorização padrão e uma de DCC.

Resposta

--header "Content-Type: application/json"
--header "RequestId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
--data-binary
{
    [...]
    },
    "Payment": {
        "ServiceTaxAmount": 0,
        "Installments": 1,
        "Interest": "ByMerchant",
        "Capture": true,
        "Authenticate": false,
        "Recurrent": false,
        "CreditCard": {
            "CardNumber": "123412******1234",
            "Holder": "Comprador Teste",
            "ExpirationDate": "12/2022",
            "SaveCard": false,
            "Brand": "Visa"
        },
        "PaymentId": "fa0c3119-c730-433a-123a-a3b6dfaaad67",
        "Type": "CreditCard",
        "Amount": 100,
        "ReceivedDate": "2018-08-23 10:46:25",
        "Currency": "BRL",
        "Country": "BRA",
        "Provider": "GlobalPayments",
        "ReasonCode": 0,
        "ReasonMessage": "Successful",
        "Status": 12,
        "ProviderReturnCode": "0",
        "ProviderReturnMessage": "Transação autorizada",
        "CurrencyExchangeData": {
            "Id": "fab6f3a752d700af1d50fdd19987b95df497652b",
            "CurrencyExchanges": [{
                    "Currency": "EUR",
                    "ConvertedAmount": 31,
                    "ConversionRate": 3.218626,
                    "ClosingDate": "2017-03-09T00:00:00"
                },
                {
                    "Currency": "BRL",
                    "ConvertedAmount": 100
                }
            ]
        }
        [...]
}
{
    [...]
    },
    "Payment": {
        "ServiceTaxAmount": 0,
        "Installments": 1,
        "Interest": "ByMerchant",
        "Capture": true,
        "Authenticate": false,
        "Recurrent": false,
        "CreditCard": {
            "CardNumber": "123412******1234",
            "Holder": "Comprador Teste",
            "ExpirationDate": "12/2022",
            "SaveCard": false,
            "Brand": "Visa"
        },
        "ReturnUrl": "http://www.braspag.com.br/",
        "PaymentId": "fa0c3119-c730-433a-123a-a3b6dfaaad67",
        "Type": "CreditCard",
        "Amount": 100,
        "ReceivedDate": "2018-08-23 10:46:25",
        "Currency": "BRL",
        "Country": "BRA",
        "Provider": "GlobalPayments",
        "ReasonCode": 0,
        "ReasonMessage": "Successful",
        "Status": 12,
        "ProviderReturnCode": "0",
        "ProviderReturnMessage": "Transação autorizada",
        "CurrencyExchangeData": {
            "Id": "fab6f3a752d700af1d50fdd19987b95df497652b",
            "CurrencyExchanges": [{
                    "Currency": "EUR",
                    "ConvertedAmount": 31,
                    "ConversionRate": 3.218626,
                    "ClosingDate": "2017-03-09T00:00:00"
                },
                {
                    "Currency": "BRL",
                    "ConvertedAmount": 100
                }
            ]
        },
        [...]
}

Propriedade

Descrição

Tipo

Tamanho

Formato

AcquirerTransactionId

Id da transação no provedor de meio de pagamento.

texto

40

Texto alfanumérico

ProofOfSale

Número do comprovante de venda.

texto

20

Texto alfanumérico

AuthorizationCode

Código de autorização.

texto

300

Texto alfanumérico

PaymentId

Campo identificador do pedido.

GUID

36

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

ReceivedDate

Data em que a transação foi recebida.

texto

19

AAAA-MM-DD HH:mm:SS

ReasonCode

Código de retorno da operação.

texto

32

Texto alfanumérico

ReasonMessage

Mensagem de retorno da operação.

texto

512

Texto alfanumérico

Status

Status da transação. Veja a lista completa de Status da Transação.

byte

2

Ex.: 12

ProviderReturnCode

Código retornado pelo provedor do meio de pagamento (adquirente ou emissor).

texto

32

57

ProviderReturnMessage

Mensagem retornada pelo provedor do meio de pagamento (adquirente ou emissor).

texto

512

Transação Aprovada

CurrencyExchangeData.Id

Id da ação da troca de moeda.

Texto

50

1b05456446c116374005602dcbaf8db8879515a0

CurrencyExchangeData.CurrencyExchanges.Currency

Moeda local do comprador/cartão de crédito.

numérico

4

EUR

CurrencyExchangeData.CurrencyExchanges.ConvertedAmount

Valor convertido.

numérico

12

23

CurrencyExchangeData.CurrencyExchanges.ConversionRate

Taxa de conversão.

numérico

9

3.218626

CurrencyExchangeData.CurrencyExchanges.ClosingDate

Data de finalização da transação.

texto

19

AAAA-MM-DD HH:mm:SS

CurrencyExchangeData.CurrencyExchanges.Currency

Código da moeda "real".

texto

3

BRA

CurrencyExchangeData.CurrencyExchanges.ConvertedAmount

Valor do pedido em reais.

numérico

12

100

ETAPA 2 - opção de pagamento

Na segunda etapa, o sistema da loja apresenta ao comprador as opções de pagar em reais ou com a moeda de seu país (moeda do cartão de crédito), seguindo as melhores práticas solicitadas pela bandeira. O texto é apresentado em inglês e o layout do site não precisa ser alterado, desde que as opções de escolha da moeda tenham as mesmas características de fonte, cor e dimensões.

Na tela da Global Payments são exibidas as opções de pagamento (em reais ou na moeda do cartão), ao lado de um resumo com os dados da compra.

ETAPA 3 - confirmação

Na terceira etapa, o sistema da loja envia a confirmação da transação com as informações da moeda escolhida pelo comprador. Neste ponto é retornada a resposta da autorização.

Segue um exemplo de confirmação da transação com a moeda escolhida pelo comprador:

Requisição

PUT/v2/sales/{PaymentId}/confirm

--request PUT " https://apisandbox.braspag.com.br/v2/sales/{PaymentId}/confirm"
--header "Content-Type: application/json"
--header "MerchantId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
--header "MerchantKey: 0123456789012345678901234567890123456789"
--header "RequestId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
--data-binary
{  
  "Id":"1b05456446c116374005602dcbaf8db8879515a0",
  "Currency":"EUR",
  "Amount":23
}
--verbose
{  
  "Id":"1b05456446c116374005602dcbaf8db8879515a0",
  "Currency":"EUR",
  "Amount":23
}
PropriedadeDescriçãoTipoTamanhoObrigatório?
IdId da ação da troca de moeda.texto50Sim
CurrencyMoeda selecionada pelo comprador.numérico4Sim
AmountValor convertido.numérico12Sim

Resposta

{
   [...]
   "Payment": {
        "ServiceTaxAmount": 0,
        "Installments": 1,
        "Interest": "ByMerchant",
        "Capture": false,
        "Authenticate": false,
        "Recurrent": false,
        "CreditCard": {
            "CardNumber": "123412******1234",
            "Holder": "TesteDcc",
            "ExpirationDate": "12/2022",
            "SecurityCode": "***",
            "Brand": "Visa"
        },
        "ProofOfSale": "20170510053219433",
        "AcquirerTransactionId": "0510053219433",
        "AuthorizationCode": "936403",
        "SoftDescriptor": "Mensagem",
        "PaymentId": "fa0c3119-c730-433a-123a-a3b6dfaaad67",
        "Type": "CreditCard",
        "Amount": 23,
        "ReceivedDate": "2017-05-10 17:32:19",
        "CapturedAmount": 23,
        "CapturedDate": "2017-05-10 17:32:19",
        "Currency": "BRL",
        "Country": "BRA",
        "Provider": "GlobalPayments",
        "ReasonCode": 0,
        "ReasonMessage": "Successful",
        "Status": 2,
        "ProviderReturnCode": "6",
        "ProviderReturnMessage": "Operation Successful",
        [...]
    }
}
--header "Content-Type: application/json"
--header "RequestId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
--data-binary
{
   [...]
   "Payment": {
        "ServiceTaxAmount": 0,
        "Installments": 1,
        "Interest": "ByMerchant",
        "Capture": false,
        "Authenticate": false,
        "Recurrent": false,
        "CreditCard": {
            "CardNumber": "123412******1234",
            "Holder": "TesteDcc",
            "ExpirationDate": "12/2022",
            "SecurityCode": "***",
            "Brand": "Visa"
        },
        "ProofOfSale": "20170510053219433",
        "AcquirerTransactionId": "0510053219433",
        "AuthorizationCode": "936403",
        "SoftDescriptor": "Mensagem",
        "PaymentId": "fa0c3119-c730-433a-123a-a3b6dfaaad67",
        "Type": "CreditCard",
        "Amount": 23,
        "ReceivedDate": "2017-05-10 17:32:19",
        "CapturedAmount": 23,
        "CapturedDate": "2017-05-10 17:32:19",
        "Currency": "BRL",
        "Country": "BRA",
        "Provider": "GlobalPayments",
        "ReasonCode": 0,
        "ReasonMessage": "Successful",
        "Status": 2,
        "ProviderReturnCode": "6",
        "ProviderReturnMessage": "Operation Successful",
        [...]
    }
}

Propriedade

Descrição

Tipo

Tamanho

Formato

AcquirerTransactionId

Id da transação no provedor de meio de pagamento.

texto

40

Texto alfanumérico

ProofOfSale

Número do comprovante de venda.

texto

20

Texto alfanumérico

AuthorizationCode

Código de autorização.

texto

300

Texto alfanumérico

PaymentId

Campo identificador do pedido.

GUID

36

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

ReceivedDate

Data em que a transação foi recebida.

texto

19

AAAA-MM-DD HH:mm:SS

ReasonCode

Código de retorno da API para indicar sucesso ou erro na operação.

texto

32

Texto alfanumérico

ReasonMessage

Mensagem correspondente ao ReasonCode.

texto

512

Texto alfanumérico

Status

Status da transação. Veja a lista completa de Status da Transação.

byte

2

Ex.: 2

ProviderReturnCode

Código retornado pelo provedor do meio de pagamento (adquirente ou emissor).

texto

32

57

ProviderReturnMessage

Mensagem retornada pelo provedor do meio de pagamento (adquirente ou emissor).

texto

512

Transação Aprovada