Ir para conteúdo
augustocesar

pagamento em dolar utilizando api 3.0 cielo

Recommended Posts

Boa tarde amigos,

 

Alguém entende sobre como configurar  a api 3.0 da cielo para recebimento em dolar?

 

Eles falam sobre fazer a conversão do valor para dolar antes de enviar para cielo, mas ao converter 1$*R$5,00=5$ é descontado do pagador 5$ e não 1$ como deveria.

 

agradeço e aguardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @augustocesar, tudo bem? Seja bem-vindo.

 

Olha, até onde eu sei, você define esses parâmetros, dentro do contexto do objeto Payment:

 

Amount -> Representa a quantidade em centavos. Exemplo: 10000 = 100 reais OU dólares.

Currency -> A moeda. BRL para reais, USD para dólares americanos.

 

Não precisa converter de reais para dólares ou vice-versa, pois a cotação e atualização é feita pela bandeira do cartão, ao menos que você esteja exibindo o valor em dólares ao seu cliente e processando em reais (inserindo a cotação de sua preferência), o que não faria muito sentido.

 

Veja a documentação da transação completa:

https://developercielo.github.io/manual/cielo-ecommerce#transação-completa

 

E há ainda a opção de utilizar a SDK, que foi construída pelo João Batista Neto, aqui do fórum: https://github.com/DeveloperCielo/API-3.0-PHP

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala amigo.

 

obrigado por responder.

 

Eu já vi a documentação um milhão de vezes. Não possui esta orientação além de inserir EUR e BRA que não funciona.
Fiz vários testes e nada funcionou.
Liguei para o "suporte" e falaram que precisa instalar um conversor.
Não há esta possibilidade.

 

fiz o teste conforme sugeriu e continua o erro. a conversão não é feita mesmo configurando da forma como sugeriu.

o retorno que tive foi:


Doação realizada com sucesso!
array(3) {
  ["MerchantOrderId"]=>
  string(1) "1"
  ["Customer"]=>
  array(1) {
    ["Name"]=>
    string(7) "Array  "
  }
  ["Payment"]=>
  array(27) {
    ["ServiceTaxAmount"]=>
    int(0)
    ["Installments"]=>
    int(1)
    ["Interest"]=>
    int(0)
    ["Capture"]=>
    bool(true)
    ["Authenticate"]=>
    bool(false)
    ["Recurrent"]=>
    bool(false)
    ["CreditCard"]=>
    array(4) {
      ["CardNumber"]=>
      string(16) "4462******3870"
      ["ExpirationDate"]=>
      string(7) "01/2027"
      ["SaveCard"]=>
      bool(false)
      ["Brand"]=>
      string(6) "Master"
    }
    ["Tid"]=>
    string(20) "280422960511NH67JP9E"
    ["ProofOfSale"]=>
    string(6) "012002"
    ["AuthorizationCode"]=>
    string(6) "624886"
    ["SoftDescriptor"]=>
    string(12) "teste"
    ["Provider"]=>
    string(5) "Cielo"
    ["Eci"]=>
    string(1) "0"
    ["IsQrCode"]=>
    bool(false)
    ["Amount"]=>
    int(100)

    ["ReceivedDate"]=>
    string(19) "2021-06-08 20:27:52"
    ["CapturedAmount"]=>
    int(100)
    ["CapturedDate"]=>
    string(19) "2021-06-08 20:27:53"
    ["Status"]=>
    int(2)
    ["IsSplitted"]=>
    bool(false)
    ["ReturnMessage"]=>
    string(31) "Transacao capturada com sucesso"
    ["ReturnCode"]=>
    string(2) "00"
    ["PaymentId"]=>
    string(36) "5s230974-f1o3-4bc5-8520-36fe14x3e3w5"
    ["Type"]=>
    string(10) "CreditCard"
    ["Currency"]=>
    string(3) "EUR"
    ["Country"]=>
    string(3) "BRA"
    ["Links"]=>
    array(2) {
      [0]=>
      array(3) {
        ["Method"]=>
        string(3) "GET"
        ["Rel"]=>
        string(4) "self"
        ["Href"]=>
        string(89) "https://apiquery.cieloecommerce.cielo.com.br/1/sales/5f630364-r1d3-4bc5-8520-36fe15o3e3w5"
      }
      [1]=>
      array(3) {
        ["Method"]=>
        string(3) "PUT"
        ["Rel"]=>
        string(4) "void"
        ["Href"]=>
        string(89) "https://api.cieloecommerce.cielo.com.br/1/sales/5f632964-g1u3-4bc5-8520-36fe86b3e3a5/void"
      }
    }
  }
}

 

Já teste inclusive inserindo USA em Country, mas sem sucesso. O valor que é descontado em um é creditado no outro. Não é feita a conversão automaticamente.

A cielo diz que tem que fazer a conversão, mas existe somente um campo referente ao valor, o amount, não dá para enviar um valor convertido em real para cielo e outro valor em dolar para banco do cartão.

 

Você já fez este tipo de operação?

 

Obrigado novamente. Que receba em dobro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala amigo.

 

obrigado por responder.

 

Eu já vi a documentação um milhão de vezes. Não possui esta orientação. Fiz vários testes e nada funcionou.
Liguei para o "suporte" e falam que precisa instalar um conversor.
Não há esta possibilidade.

 

fiz o teste conforme sugeriu e continua o erro. a conversão não é feita mesmo configurando da forma como sugeriu.

o retorno que tive foi:


Doação realizada com sucesso!
array(3) {
  ["MerchantOrderId"]=>
  string(1) "1"
  ["Customer"]=>
  array(1) {
    ["Name"]=>
    string(7) "Array  "
  }
  ["Payment"]=>
  array(27) {
    ["ServiceTaxAmount"]=>
    int(0)
    ["Installments"]=>
    int(1)
    ["Interest"]=>
    int(0)
    ["Capture"]=>
    bool(true)
    ["Authenticate"]=>
    bool(false)
    ["Recurrent"]=>
    bool(false)
    ["CreditCard"]=>
    array(4) {
      ["CardNumber"]=>
      string(16) "4462******3870"
      ["ExpirationDate"]=>
      string(7) "01/2027"
      ["SaveCard"]=>
      bool(false)
      ["Brand"]=>
      string(6) "Master"
    }
    ["Tid"]=>
    string(20) "280422960511NH67JP9E"
    ["ProofOfSale"]=>
    string(6) "012002"
    ["AuthorizationCode"]=>
    string(6) "624886"
    ["SoftDescriptor"]=>
    string(12) "teste"
    ["Provider"]=>
    string(5) "Cielo"
    ["Eci"]=>
    string(1) "0"
    ["IsQrCode"]=>
    bool(false)
    ["Amount"]=>
    int(100)

    ["ReceivedDate"]=>
    string(19) "2021-06-08 20:27:52"
    ["CapturedAmount"]=>
    int(100)
    ["CapturedDate"]=>
    string(19) "2021-06-08 20:27:53"
    ["Status"]=>
    int(2)
    ["IsSplitted"]=>
    bool(false)
    ["ReturnMessage"]=>
    string(31) "Transacao capturada com sucesso"
    ["ReturnCode"]=>
    string(2) "00"
    ["PaymentId"]=>
    string(36) "5s230974-f1o3-4bc5-8520-36fe14x3e3w5"
    ["Type"]=>
    string(10) "CreditCard"
    ["Currency"]=>
    string(3) "EUR"
    ["Country"]=>
    string(3) "BRA"
    ["Links"]=>
    array(2) {
      [0]=>
      array(3) {
        ["Method"]=>
        string(3) "GET"
        ["Rel"]=>
        string(4) "self"
        ["Href"]=>
        string(89) "https://apiquery.cieloecommerce.cielo.com.br/1/sales/5f630364-r1d3-4bc5-8520-36fe15o3e3w5"
      }
      [1]=>
      array(3) {
        ["Method"]=>
        string(3) "PUT"
        ["Rel"]=>
        string(4) "void"
        ["Href"]=>
        string(89) "https://api.cieloecommerce.cielo.com.br/1/sales/5f632964-g1u3-4bc5-8520-36fe86b3e3a5/void"
      }
    }
  }
}

 

Já teste inclusive inserindo USA em Country, mas sem sucesso. O valor que é descontado e um é creditado no outro. Não é feita a conversão automaticamente.

A cielo diz que tem que fazer a conversão, mas existe somente um campo referente ao valor, o amount, não dá para enviar um valor convertido em real para cielo e outro valor em dolar para banco do cartão.

 

Você já fez este tipo de operação?

 

Obrigado novamente. Que receba em dobro.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em relação aos parâmetros que citei no meu post anterior, eles são mencionados na documentação da Cielo (seção Meios de Pagamento -> Cartão de Crédito -> Transação completa -> Requisição).

Estou sabendo. Realmente não informa.

 

Se você quer cobrar 5 dólares, deveria bastar você informar a Currency USD e o Amount 5, conforme expliquei, mas talvez a Cielo exija a ativação de algum serviço para fazer cobranças internacionais.

Sim. O que  você sugeriu eu já sabia e já tinha feito. Eles não fazem esta exigência.

 

Infelizmente a documentação da Cielo é muito estranha mesmo.

É horrível. O mesmo que nada. Tanto por texto como por telefone.

 

Nunca fiz cobrança em dólares, mas já implementei a Cielo alguns anos atrás e lembro de ter passado por boas dificuldades também.

Então entendo porque está perdido como eu. Nenhuma orientação deles esclarece ou ensina nada. E o que falam não funciona. Para pagamento em moeda brasileira funciona, mas para internacional não.

 

O que encontrei foi isso (é sobre maquininha, mas talvez tenha relação com o serviço de API):

https://www.cielo.com.br/venda-mais/cieloconversor/

https://blog.cielo.com.br/2020/04/29/como-vender-em-moeda-internacional/

Não se aplica. 

 

Pelo que entendi o Conversor é para fazer cobrança em reais para clientes estrangeiros. Veja o item 1 do segundo link:

  Citar

Assim que o cartão de outro país for inserido na máquina Cielo, um dispositivo identifica que é um cartão estrangeiro.

Os testes que fiz foi utilizando um cartão internacional.

 

 

Agora, o que eu não entendi foi que você disse no seu primeiro post:

  19 horas atrás, augustocesar disse:

mas ao converter 1$*R$5,00=5$ é descontado do pagador 5$ e não 1$ como deveria

 

Pelo que entendi você cobrou 500 (pois multiplicou 100 centavos de dólar por 5), e a Cielo cobrou 5 dólares e não 1 dólar.

Mas nesse caso, por que você não deixa de fazer essa multiplicação, passando a cobrar 1 USD corretamente?

Talvez eu tenha entendido mal alguma unidade ou sua explicação, mas pelo que entendi é somente essa multiplicação que está incorreta.

 

Minha sugestão final seria a seguinte: não sei quanto à legislação ou a respeito da experiência para o usuário, mas se você não ver problemas, pode pegar a cotação do dia e sempre cobrar em reais. Nesse caso seu problema estaria resolvido, ao meu ver.

No caso, Currency sempre BRL, Amount sempre *Cotação* x Valor.

Foi exatamente o que fiz acima e também não se aplica. Se converter para a moeda que for vai o valor que inserido no campo amount e cobra errado do comprador.

 

Infelizmente não tenho como ajudar você além disso, pois não tive essa experiência, mas fiquei curioso em relação aos desdobramentos desse problema. Se você puder, retorne aqui quando encontrar a solução.

Boa sorte!

Obrigado pelo boa sorte e pelas sugestões mesmo que não tenha ajudado efetivamente.
Precisando mesmo de uma luz divina.
Dependendo do valor posso até pagar.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @augustocesar.

 

Em relação aos parâmetros que citei no meu post anterior, eles são mencionados na documentação da Cielo (seção Meios de Pagamento -> Cartão de Crédito -> Transação completa -> Requisição).

 

Se você quer cobrar 5 dólares, deveria bastar você informar a Currency USD e o Amount 5, conforme expliquei, mas talvez a Cielo exija a ativação de algum serviço para fazer cobranças internacionais. Infelizmente a documentação da Cielo é muito estranha mesmo. Nunca fiz cobrança em dólares, mas já implementei a Cielo alguns anos atrás e lembro de ter passado por boas dificuldades também.

 

O que encontrei foi isso (é sobre maquininha, mas talvez tenha relação com o serviço de API):

https://www.cielo.com.br/venda-mais/cieloconversor/

https://blog.cielo.com.br/2020/04/29/como-vender-em-moeda-internacional/

 

Pelo que entendi o Conversor é para fazer cobrança em reais para clientes estrangeiros. Veja o item 1 do segundo link:

Citar

Assim que o cartão de outro país for inserido na máquina Cielo, um dispositivo identifica que é um cartão estrangeiro.

 

Agora, o que eu não entendi foi que você disse no seu primeiro post:

16 horas atrás, augustocesar disse:

mas ao converter 1$*R$5,00=5$ é descontado do pagador 5$ e não 1$ como deveria

 

Pelo que entendi você cobrou 500 (pois multiplicou 100 centavos de dólar por 5), e a Cielo cobrou 5 dólares e não 1 dólar.

Mas nesse caso, por que você não deixa de fazer essa multiplicação, passando a cobrar 1 USD corretamente?

Talvez eu tenha entendido mal alguma unidade ou sua explicação, mas pelo que entendi é somente essa multiplicação que está incorreta.

 

Minha sugestão final seria a seguinte: não sei quanto à legislação ou a respeito da experiência para o usuário, mas se você não ver problemas, pode pegar a cotação do dia e sempre cobrar em reais. Nesse caso seu problema estaria resolvido, ao meu ver.

No caso, Currency sempre BRL, Amount sempre *Cotação* x Valor.

 

Infelizmente não tenho como ajudar você além disso, pois não tive essa experiência, mas fiquei curioso em relação aos desdobramentos desse problema. Se você puder, retorne aqui quando encontrar a solução.

Boa sorte!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por alguma razão os nossos posts se inverteram e o tópico acabou ficando confuso, mas respondendo seu post anterior:

 

@augustocesar, não deixe de considerar utilizar outra plataforma para pagamentos.

Veja essas: PayU, Iugu, Vindi, GerenciaNet, Pagar.me, Sumup, Juno, Zoop, GalaxyPay. Tem muitas.

Fora esses, tem ainda os grandes Paypal e Pagseguro. E a própria Cielo oferece um serviço bem simples de fazer cobranças, no caso é o Checkout Cielo (https://developercielo.github.io/manual/checkout-cielo). O problema dessas últimas é que o processo de pagamento é dentro da plataforma dos caras, mas pelo menos o processo de desenvolvimento e homologação é bem mais rápido e facilitado.

 

Api da Cielo realmente é fraquinha e o atendimento é bem preguiçoso. Eu trocaria =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.