Cobranças via cartão de crédito

Segurança e praticidade nas cobranças online.

O Asaas aceita diversas bandeiras de cartão de forma fácil e sem mensalidade. Você pode fazer vendas à vista, parceladas e recorrentes. Conheça mais.

Criando uma cobrança por cartão de crédito

É possível seguir dois passos, um deles é criar uma cobrança do tipo cartão de crédito e redirecionar o usuário para a tela de fatura para fazer o pagamento.

POST /v3/payments
Confira a referência completa deste endpoint

{
      "customer": "cus_000005219613",
      "billingType": "CREDIT_CARD",
      "value": 109.90,
      "dueDate": "2023-07-21"
}

Ao criar uma cobrança com a forma de pagamento cartão de crédito, você redireciona o cliente para a URL da fatura (invoiceUrl) afim de que ele informe os dados do cartão através da interface do Asaa.

É possível gerar uma cobrança que aceite cartão de débito?

Enviando os dados do cartão pela API, infelizmente não.

Mas você pode enviar o cliente para a invoiceUrl como descrito acima, se o billingType for CREDIT_CARD ou UNDEFINED a opção de Cartão de Débito estará habilitada na fatura.

Criar uma cobrança com cartão de crédito e já realizar o pagamento

O segundo passo é já enviar os dados do cartão de crédito na hora da criação da cobrança. Dessa forma é possível processar o pagamento na hora da criação da cobrança.

Para tal, ao executar a requisição de criação da cobrança, basta enviar os dados do cartão de crédito juntamente com os dados do titular através dos objetos creditCard e creditCardHolderInfo. É importante que os dados do titular sejam exatamente os mesmos cadastrados no banco emissor do cartão, caso contrário a transação poderá ser negada por suspeita de fraude.

Se a transação for autorizada a cobrança será criada e a API retornará HTTP 200. Caso contrário a cobrança não será persistida e será retornado HTTP 400.

Se estiver em Sandbox, você pode usar números de cartão de crédito para teste.

POST /v3/payments
Confira a referência completa deste endpoint

{
      "customer": "cus_000005219613",
      "billingType": "CREDIT_CARD",
      "value": 100.00,
      "dueDate": "2023-07-21",
      "creditCard": {
        "holderName": "marcelo h almeida",
        "number": "5162306219378829",
        "expiryMonth": "05",
        "expiryYear": "2024",
        "ccv": "318"
      },
      "creditCardHolderInfo": {
        "name": "Marcelo Henrique Almeida",
        "email": "[email protected]",
        "cpfCnpj": "24971563792",
        "postalCode": "89223-005",
        "addressNumber": "277",
        "addressComplement": null,
        "phone": "4738010919",
        "mobilePhone": "47998781877"
      },
      "remoteIp": "116.213.42.532"
}

📘

  • Independente da data de vencimento informada, a captura (cobrança no cartão do cliente) será efetuada no momento da criação da cobrança.
  • Caso você opte por capturar na interface do seu sistema os dados do cartão do cliente, é obrigatório o uso de SSL (HTTPS), caso contrário sua conta pode ser bloqueada para transações via cartão de crédito.
  • Para se evitar timeouts e decorrentemente duplicidades na captura, recomendamos a configuração de um timeout mínimo de 60 segundos para este request.

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

Ao realizar uma primeira transação para o cliente com cartão de crédito, a resposta da API lhe devolverá o atributo creditCardToken.

Em posse dessa informação, nas próximas transações, o atributo creditCardToken pode substituir os objetos creditCard e creditCardHolderInfo e ser informado diretamente na raiz da requisição, não necessitando assim que os objetos sejam informados novamente.

POST /v3/payments
Confira a referência completa deste endpoint

{
      "customer": "cus_000005219613",
      "billingType": "CREDIT_CARD",
      "value": 100.00,
      "dueDate": "2023-07-21",
      "creditCardToken": "76496073-536f-4835-80db-c45d00f33695",
      "remoteIp": "116.213.42.532"
}

Você também pode criar um token a qualquer momento. Tendo em mão os dados dos clientes, basta enviar para o endpoint de tokenização e você receberá o creditCardToken.

POST /v3/creditCard/tokenize
Confira a referência completa deste endpoint

{
      "customer": "cus_000005219613",
      "creditCard": {
        "holderName": "marcelo h almeida",
        "number": "5162306219378829",
        "expiryMonth": "05",
        "expiryYear": "2024",
        "ccv": "318"
      },
      "creditCardHolderInfo": {
        "name": "Marcelo Henrique Almeida",
        "email": "[email protected]",
        "cpfCnpj": "24971563792",
        "postalCode": "89223-005",
        "addressNumber": "277",
        "addressComplement": null,
        "phone": "4738010919",
        "mobilePhone": "47998781877"
      },
      "remoteIp": "116.213.42.532"
}

A API retornará para você os últimos 4 dígitos do cartão creditCardNumber e a bandeira creditCardBrand do cartão (caso você queira exibir em tela, por exemplo), além do creditCardToken.

Essa funcionalidade é interessante caso você desenvolva uma funcionalidade de "Salvar dados de pagamentos" na sua aplicação.

🚧

  • A funcionalidade de tokenização está previamente habilitada em Sandbox e você já pode testá-la. Para uso em produção, é necessário solicitar a habilitação da funcionalidade ao seu gerente de contas. A habilitação da funcionalidade está sujeita a análise prévia, podendo ser aprovada ou negada de acordo com os riscos da operação.
  • O token é armazenado por cliente, não podendo ser utilizado em transações de outros clientes.

Parcelamento no cartão

Você também pode facilmente criar uma cobrança parcelada diretamente no cartão de crédito do cliente.

POST /v3/payments
Confira a referência completa deste endpoint

{
  "customer": "cus_000005219613",
  "billingType": "CREDIT_CARD",
  "value": 2000.00,
  "dueDate": "2023-07-21",
  "installmentCount": 10,
  "installmentValue": 200,
  "creditCard": {
      "holderName": "marcelo h almeida",
      "number": "5162306219378829",
      "expiryMonth": "05",
      "expiryYear": "2024",
      "ccv": "318"
    },
    "creditCardHolderInfo": {
      "name": "Marcelo Henrique Almeida",
      "email": "[email protected]",
      "cpfCnpj": "24971563792",
      "postalCode": "89223-005",
      "addressNumber": "277",
      "addressComplement": null,
      "phone": "4738010919",
      "mobilePhone": "47998781877"
    },
    "remoteIp": "116.213.42.532"
}

Retorno de erros para pagamentos e tokenização de cartão de créditos.

Por padrão, caso não haja nada de errado com os dados informados do cartão e ocorra algum problema na transação, a API retornará um erro genérico para você.

{
    "errors": [
        {
            "code": "invalid_creditCard",
            "description": "Transação não autorizada. Verifique os dados do cartão de crédito e tente novamente."
        }
    ]
}

Atuamos dessa forma por motivos de segurança para que pessoas mal intencionadas não usem o Asaas para testar cartões de crédito extraviados

🚧

Você pode ter acesso ao erro real que as transações apresentam solicitando ao seu gerente de contas que essa funcionalidade seja habilitada. Será feito uma análise prévia para a liberação. A recomendação é que esse erro real nunca seja mostrado para o usuário final.

Referência da API

📘

Confira a referência completa do endpoint Cobranças(/v3/payments)

Acesse nossa referêncida da API