Realizar uma cobrança simples no cartão de crédito por API

📘

O que você irá aprender com esse artigo?

  • Cadastro de clientes
  • Tokenização de cartões de crédito
  • Realização de cobrança simples

Caso de uso

“Preciso que meu cliente consiga realizar o pagamento de um produto ou serviço via cartão de crédito, num processo simples e com checkout transparente.”

Diagrama de sequência

1196

Existem diversas formas para realizar uma cobrança simples. Abaixo você confere os diferentes métodos. Cada um pode ser aplicado a um modelo de negócio diferente de acordo com suas necessidades, entenda qual é o melhor para o seu.

Cadastro de clientes

Toda cobrança tem de ser atribuída a um cliente, o que muda é se os dados desse cliente serão cadastrados no seu sistema para posteriores transações. Para realizar esse cadastro, crie uma chamada POST na API Criar cliente.

Modelo de request

curl --location --request POST 'https://api.iugu.com/v1/customers' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {{api_token in base64}}' \
--header 'Cookie: __cfruid=df598e45cd90947e522e12ec895a84f7059cacbc-1627922464' \
--data-raw '{
     "email": "[email protected]",
     "name": " iugu de sousa beserra",
     "phone_prefix":11,
     "phone": 951701035,
     "zip_code": "39560000",
     "number": "10",
     "street": "Salinas ",
     "city": "Minas gerais",
     "state": "Mg",
     "district": "Salinas "
}'

Modelo de response

708

Mas caso não precise manter esses dados, você consegue realizar uma Cobrança Direta, atribuindo os dados do cliente no objeto Payer.

Tokenização de cartão de crédito

Toda vez que tiver que criar uma cobrança via cartão de crédito, esse tem de ser validado através do processo de tokenização, que basicamente garante segurança ao criptografar os dados. Esse processo pode ser realizado de duas maneiras:

1. Iugu JS

Para empresas que não são PCI Dss (Padrão de Segurança de Dados da Indústria de Pagamento com Cartão), o indicado e que o processo de tokenização utilize o método iugu.js. Com esse código de javascript inserido na sua webpage, você garante que os dados de cartão inseridos pelo cliente serão coletados apenas pelo front-end da sua aplicação. O método iugu.js irá retornar o token desse cartão que você poderá usar para realizar a cobrança direta ou criar a forma de pagamento.

2. Direto via Api

Agora, se sua empresa tenha a certificação PCI Dss, você pode realizar esse processo de tokenização diretamente na API com uma chamada POST na API Criar Token, onde será gerado um token id e retornado no response.

Modelo de request

curl --location --request POST 'https://api.iugu.com/v1/payment_token' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {{api_token in base64}}' \
--header 'Cookie: __cfruid=ca1be8a3bc81800098d0c3711c4f38bddca4926f-1626092966' \
--data-raw '{
    "data": {
        "number": "4111111111111111",
        "verification_value": "123",
        "first_name": "Customer",
        "last_name": "Tester",
        "month": "06",
        "year": "2026"
    },
    "account_id": "{{account_id}}",
    "method": "credit_card"
}'

Modelo de response

708

Armazenar os dados do cartão de crédito

Uma experiência de compra rápida e com poucos passos ajuda muito a evitar o abandono de carrinho. Uma maneira de garantir isso, é armazenar os dados de cartão para que o cliente não precise preencher novamente toda vez que realizar uma nova compra. Se o seu modelo de negócio tem essa necessidade, você precisa criar uma forma de pagamento com o cartão tokenizado na chamada Tokenizar Cartão.

Além disso, você precisa armazenar, ao lado de sua aplicação, o id do cliente (costumer) e utilizá-lo na url da requisição. Dessa maneira, o cartão de crédito tokenizado será atribuído a um determinado cliente. Com isso, basta realizar uma chamada POST na API Criar Forma de Pagamento.

Modelo de request

curl --location --request POST 'https://api.iugu.com/v1/customers/{{customer_id}}/payment_methods' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {{api_token in base64}}' \
--header 'Cookie: __cfruid=ca1be8a3bc81800098d0c3711c4f38bddca4926f-1626092966' \
--data-raw '{
     "token": "{id to token}",
     "description": "Teste iugu",
     "set_as_default": true
}'

Modelo de response

590

Realizar cobrança simples

Com essas configurações definidas e realizadas, ou mesmo somente a requisição de Tokenização do cartão de crédito do cliente, é necessário criar uma chamada POST Cobrança Direta.

Nessa request pode ser passado o id do token do cartão na propriedade token, ou o id da forma de pagamento na propriedade customer_payment_method_id.

🚧

Atenção!

Se for utilizado a propriedade token, caso a request não ocorra com sucesso, deve ser gerado um novo token, pois ele expira.

Nessa request pode ser utilizado a propriedade customer_id com id do cliente cadastrado na iugu, ou cadastrar o cliente dentro da request na propriedade payer.
Para mais informações sobre as propriedades da api recomendo acessar nossa documentação.

Modelo de request

curl --location --request POST 'https://api.iugu.com/v1/charge' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {{api_token in base64}}' \
--header 'Cookie: __cfruid=df598e45cd90947e522e12ec895a84f7059cacbc-1627922464' \
--data-raw '{
    "payer": {
        "address": {
            "street": "Conselheiro Lafayetti",
            "number": "155",
            "district": "São Paulo",
            "city": "São Caetano do Sul",
            "state": "SP",
            "zip_code": "09550-000",
            "complement": "AP 61"
        },
        "cpf_cnpj": "35914746838",
        "name": "iugu",
        "phone": "xxxx"
    },
    "items": [
          {
               "description": "aaa",
               "quantity": 1,
               "price_cents": 1000
          }
     ],
    "token":"token do cartão",
    "order_id": "id_dopedido",
    "email": "[email protected]"
}'

Modelo de response

708

O próprio retorno da request indica se a transação ocorreu com sucesso, ou não.

Pagamento com 1-clique

Leia o conceito de Pagamento com 1-clique.

Para implementar o pagamento com 1-clique, os seguintes passos devem ser seguidos:

  • Criar um cliente no momento de cadastro ou primeira compra de seu cliente utilizando a API Criar Cliente;
  • Permitir, no checkout, que seu cliente salve os dados de seu cartão para posteriores compras. Para isso, salve os dados utilizando a API Criar Forma de Pagamento;
  • Listar os cartões disponíveis de seu cliente utilizando a API Listar Formas de Pagamento;
  • Na chamada de Cobrança Direta, enviar como parâmetro o ID da Forma de Pagamento que seu cliente escolheu no checkout.
1200

📘

Informações:

Indicamos a leitura do artigo Como identificar o erro da tentativa de pagamento.