Skip to content
Última atualização

Introdução

Este guia irá orientá-lo na realização de sua primeira solicitação de pagamento por débito direto via a API. O fluxo geral é:

  1. Criar um cliente
    Você precisa criar um cliente para cada usuário de quem deseja receber fundos.

  2. Criar um método de pagamento para o cliente
    Um método de pagamento consiste nas informações da conta bancária ou cartão de débito do seu cliente, de onde você irá retirar fundos.

  3. Enviar documentos de consentimento
    Você deve enviar os documentos de consentimento do seu cliente, autorizando você a debitar fundos de sua conta.

    Importante: Acordos de usuário (consentimento)

    Antes de fazer qualquer solicitação de pagamento, você deve obter o consentimento explícito dos seus usuários autorizando você a debitar fundos de suas contas e enviá-lo para a Belvo via a API.

  4. Criar uma solicitação de pagamento
    Uma solicitação de pagamento é o valor real que você deseja debitar de um usuário.

  5. Ouvir por webhooks
    Você receberá webhooks quando a instituição financeira confirmar que o método de pagamento está registrado e outro quando a solicitação de pagamento tiver sido processada (e os fundos tiverem sido debitados da conta do seu usuário).

Solicitações de Débito Direto Subsequentes

Depois de ter criado inicialmente um Cliente, registrado sua conta (método de pagamento) e obtido seu consentimento para debitar fundos de suas contas, solicitações de débito direto subsequentes exigem apenas que você faça um POST Criar uma solicitação de pagamento.

AplicativoBelvoInstituição de Pagamento1. Crie seu Cliente2. Crie um Método de Pagamento para seu ClienteVeja a Nota 5 abaixo sobre a confirmação do webhook3. Envie Documentos de Consentimento do seu Cliente4. Crie uma Solicitação de PagamentoVeja a Nota 6 abaixo sobre a confirmação do webhook5. Aguarde a confirmação do método de pagamento (até 1 dia útil)6. Aguarde a confirmação da solicitação de pagamento (até 2 dias úteis)POST /customers201 - Created + customerIdPOST /payment_methods/bank_accounts201 - Created + paymentMethodIdMétodo de Pagamento enviado para a instituição para confirmaçãoPOST /consents201 - Created + consentIdPOST /consents/{consentId}/files201 - Created + Lista de Arquivos de ConsentimentoPOST /payment_requests201 - Created + paymentRequestIdSolicitação de Pagamento enviada para a InstituiçãoWEBHOOK payment_method_registration_successful (paymentMethodId)GET /payment_methods/{paymentMethodId}200 + Detalhes do Método de PagamentoWEBHOOK payment_request_successful (paymentRequestId)GET /payment_requests/{paymentRequestId}200 + Detalhes da Solicitação de PagamentoAplicativoBelvoInstituição de Pagamento

Pré-requisitos

Antes de começar, certifique-se de:

  1. Gerar suas chaves de API.
  2. Configurar um webhook para escutar eventos.
  3. Configurar a Lista de IPs Permitidos

Criar um cliente

Para criar um cliente, faça uma chamada POST Create a Direct Debit customer com as seguintes informações principais:

Create a Direct Debit Customer Request Body
{
  "firstname": "John",
  "lastname": "Doe",
  "documentType": "mx_rfc",
  "documentNumber": "11223344",
  "email": "john.doe@me.com",
  "phone": "573457865"
}
Parâmetro TipoObrigatórioDescrição
firstnamestringsimO primeiro nome do seu usuário.
lastnamestringsimO sobrenome do seu usuário.
documentTypestringsimO tipo de documento de identificação do seu usuário. Para o México, pode ser um dos seguintes:
  • mx_rfc: Número de Identificação Fiscal (Registro Federal de Contribuyentes)
  • mx_curp: Código Único de Registro de População (Clave Única de Registro de Población).
documentNumberstringsimO número do documento do usuário.
emailstringsimO email do usuário.
phonestringnãoO número de telefone do usuário (incluindo o código do país).

Você receberá a seguinte resposta da nossa API, confirmando que o cliente foi criado. Certifique-se de salvar o customerId que você receber, pois este ID é necessário ao criar um método de pagamento.

Create a Direct Debit Customer Response Body
{
  "customerId": "0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c"
}

Criar um método de pagamento para o cliente

Após criar seu cliente, faça uma solicitação POST Create a payment method para seu cliente com o seguinte payload:

Create a Direct Debit Payment Method Request Body
{
  "customerId": "0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c",
  "accountType": "savings",
  "accountNumber": "445566790",
  "bank": "mx_bancoppel",
  "reference": "SAVINGS_445566790"
}
Parâmetro TipoObrigatórioDescrição
customerIdstringsimO customerId para o qual você deseja criar o método de pagamento.
accountTypestringsimO tipo de conta bancária ou cartão. Pode ser: savings, checkings ou debit_card.
accountNumberstringsimO número da conta bancária ou do cartão de débito.
bankstringsimO nome do banco mexicano onde a conta ou cartão está registrado. Para uma lista completa de instituições, consulte nossa página dedicada a Instituições de Pagamento.
referencestringnãoUma descrição de referência opcional para a conta bancária.

Você receberá a seguinte resposta da nossa API, confirmando que o Método de Pagamento foi criado. Certifique-se de salvar o paymentMethodId que você receber, pois este ID é necessário ao gerar um Consentimento e posteriormente Solicitações de Pagamento.

Create a Direct Debit Payment Method Response Body
{
  "paymentMethodId": "0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c"
}

Crie um consentimento para o seu cliente

Necessário para Solicitações de Pagamento

Você não pode criar Solicitações de Pagamento até que o consentimento seja confirmado. Cada Método de Pagamento requer seu próprio consentimento com status confirmed antes que quaisquer fundos possam ser debitados.

O que é Consentimento de Débito Direto?

Um Consentimento em Débito Direto é uma prova legal de que seu cliente autorizou você a debitar fundos de sua conta. Este consentimento deve incluir:

  • Fotos do documento de identidade emitido pelo governo do cliente (frente e verso)
  • Uma selfie do cliente
  • Um contrato assinado autorizando o débito direto

Prazo: A revisão do consentimento geralmente leva de 1 a 2 dias úteis após todos os arquivos serem enviados.

Após criar seu método de pagamento, você precisa criar um consentimento para o seu cliente que seja composto por fotos do documento de identidade, uma selfie e um contrato assinado. Este consentimento é necessário para autorizar o débito direto.

O processo de criação do consentimento consiste nas seguintes etapas:

  1. Inicializar o Consentimento - Crie um registro de consentimento vinculado ao seu método de pagamento
  2. Enviar Arquivos Necessários - Envie fotos do documento de identidade, selfie e contrato assinado
  3. Aguardar Revisão e Atualização de Status - Especialistas da Belvo revisam os arquivos (1-2 dias úteis) e atualizam o status.
    • O status pode ser awaiting_information, submitted, incomplete_information, confirmed ou rejected.
AplicativoBelvo1. Inicializar o Consentimento para um Método de Pagamento2. Enviar arquivos de Consentimento3. Aguardar revisão do Consentimento e atualização de statusPOST /consents201 - Created + consentIdPOST /consents/{consentId}/files201 - Created + Lista de Arquivos de ConsentimentoGET Poll /consents/{consentId}200 - OK + consentStatusAplicativoBelvo

Inicializar o Consentimento para um Método de Pagamento

Inicialize o Consentimento para um Método de Pagamento fazendo uma chamada POST Create a Direct Debit Consent com o seguinte payload:

Create a Direct Debit Consent Request Body
{
  "paymentMethodId": "43e5a5b1-b2c6-4f45-8c1f-f28fec707a4b"
}
Parâmetro TipoObrigatórioDescrição
paymentMethodIdstringsimO paymentMethodId para o qual você deseja criar o consentimento.

Nossa API responderá com o seguinte payload, confirmando que o consentimento foi criado. Certifique-se de salvar o consentId que você receber, pois este ID é necessário ao fazer o upload dos arquivos de consentimento.

Create a Direct Debit Consent Response Body
{
  "consentId": "0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c", 
  "status": "awaiting_information",
  "paymentMethodId": "0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c",
  "isBankNotified": false
}

Após inicializar o consentimento, você precisa fazer o upload dos arquivos necessários. Faça uma chamada POST Upload Consent Files com o seguinte payload:

Upload Consent Files Request
curl -i -X POST \
  'baseURL/consents/{consentId}/files' \
  -H 'Content-Type: multipart/form-data' \
  -H 'api-key-id: YOUR_API_KEY_HERE' \
  -H 'api-key-secret: YOUR_API_KEY_HERE' \
  -F id_front=string \
  -F id_back=string \
  -F selfie=string \
  -F contract=string
Parâmetro TipoObrigatórioDescrição
id_frontstring (binário)simO lado frontal do documento de identidade do cliente. Pode ser uma foto ou uma imagem escaneada em formato JPEG, PNG ou PDF. O tamanho máximo do arquivo é 20MB.
id_backstring (binário)simO lado traseiro do documento de identidade do cliente. Pode ser uma foto ou uma imagem escaneada em formato JPEG, PNG ou PDF. O tamanho máximo do arquivo é 20MB.
selfiestring (binário)simUma selfie do cliente (idealmente segurando seu documento de identidade). Pode ser uma foto ou uma imagem escaneada em formato JPEG, PNG ou PDF. O tamanho máximo do arquivo é 20MB.
contractstring (binário)simO contrato assinado pelo cliente. Pode ser uma foto ou uma imagem escaneada em formato JPEG, PNG ou PDF. O tamanho máximo do arquivo é 20MB.

Nossa API responderá com o seguinte payload, confirmando que os arquivos de consentimento foram carregados com sucesso (um objeto por arquivo de Consentimento carregado):

Upload Consent Files Response Body
[
  {
    "type": "id_front",
    "consentFileId": "8c56b4e7-d025-4b1a-a303-dd472b24f431",
    "consentId": "0494baff-3bbb-43c7-bb58-67ac6cba3e54"
  }
]

Monitorar Status do Consentimento

Depois de ter carregado todos os arquivos necessários, o status do consentimento mudará para submitted e então será revisado por nossos especialistas. Uma vez que a revisão esteja completa, o status mudará para confirmed ou rejected. Você pode verificar o status do consentimento fazendo uma chamada GET Get a Direct Debit Consent.

// Exemplo de resposta
{
  "consentId": "0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c",
  "status": "submitted",
  "paymentMethodId": "0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c",
  "isBankNotified": false
}

Status Possíveis:

  • awaiting_information: Aguardando upload de arquivos
  • submitted: Todos os arquivos carregados, em revisão
  • incomplete_information: Arquivos necessários ausentes
  • confirmed: ✅ Aprovado - você pode agora criar solicitações de pagamento
  • rejected: ❌ Negado - verifique o motivo da rejeição e envie novamente

Para mais detalhes sobre os estados dos consentimentos, confira nosso artigo dedicado Estados de Entidade.

Criar uma solicitação de pagamento

Verificação de Pré-requisitos

Antes de criar uma solicitação de pagamento, certifique-se de que:

  1. O método de pagamento foi criado
  2. O status do consentimento é confirmed

Se o consentimento não estiver confirmado, sua solicitação de pagamento será rejeitada.

Após o consentimento ser confirmado, faça uma chamada POST Create a payment request:

Create a Direct Debit Payment Request Request Body
{
  "paymentMethodId": "43e5a5b1-b2c6-4f45-8c1f-f28fec707a4b",
  "currency": "mxn",
  "amount": "100000",
  "reference": "Monthly Subscription"
}
Parâmetro TipoObrigatórioDescrição
paymentMethodIdstringsimO paymentMethodId do qual você deseja debitar os fundos.
currencystringsimO código de moeda de três letras ISO 4217 da transação. Pode ser: mxn ou usd.
amountstringsimO valor da transação.
referencestringsimUma descrição para o débito direto (para aparecer no extrato do cliente).

Isso retornará o seguinte payload da nossa API:

Create a Direct Debit Payment Request Response Body
{
  "paymentRequestId": "0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c"
}
Solicitações de pagamento só são executadas para métodos de pagamento ativos

A solicitação de pagamento permanecerá no status initial até que o método de pagamento se torne active. Você receberá webhooks indicando quando o método de pagamento foi registrado com sucesso (active) e, em seguida, um webhook indicando que a solicitação de pagamento foi processada com sucesso.

Ouvir eventos de webhook

Você receberá webhooks quando a instituição financeira confirmar que o método de pagamento está registrado (payment_method_registration_successful) e outro quando a solicitação de pagamento tiver sido processada (payment_request_successful), indicando que os fundos foram debitados da conta do seu usuário.

payment_method_registration_successful

O webhook payment_method_registration_successful indica que o método de pagamento está registrado na instituição financeira do usuário. Assim que você receber este webhook, sua solicitação de pagamento será processada.

payment_request_successful

O webhook payment_request_successful indica que a solicitação de pagamento foi processada e os fundos foram debitados da conta do usuário.

Feito!

Parabéns! Você acabou de configurar seu primeiro débito direto para um usuário. Débitos subsequentes para o mesmo usuário exigirão apenas que você envie uma solicitação de pagamento e ouça o webhook payment_request_successful.