1. Contexto


Este guia descreve o fluxo de uso da nossa API para o pagador autorizar e gerenciar recorrências de Pix Automático. Atualmente, o foco está no lado do pagador, incluindo autorizações via proposta direta ou leitura de QR Codes, e gerenciamento de autorizações ativas.


2. Pré-requisitos


Antes de utilizar o Pix Automático como pagador, é necessário:

  • Estar autenticado com token válido da nossa API;
  • Possuir client_id e client_secret ativos;
  • Ter webhook de notificação configurado (opcional, mas recomendado);
  • Ter recebido uma proposta de recorrência ou lido um QR Code válido.    


3. Jornada 1 – Proposta recebida via relacionamento direto


O recebedor envia a proposta de autorização de Pix Automático diretamente ao pagador.

  • A proposta é recebida via webhook (se configurado);
  • O pagador deve autorizar ou rejeitar a solicitação.


API para autorizar ou rejeitar:


POST /v1/accounts/{accountId}/recurrences-requests/{requestRecId}/authorization


Exemplo de payload: 


{

  "acceptance": true,

  "useAccountLimit": true,

  "rejectionCode": "<string>",

  "maximumValue": "<double>",

  "municipalityCode": "<string>"

}


Para autorizar ou rejeitar uma recorrência via jornada 1, envie uma requisição para a API: 

POST/v1/accounts/{accountId}/recurrences-requests/{requestRecId}/authorization

O resultado da requisição e da recorrência será enviado para o webhook caso esteja configurado.

A Recorrência poderá ter os status APROVED ou REJECTED e a Solicitação de Recorrência poderá ter os status ACCEPTED ou REJECTED.


4. Jornada 2 – QR Code com dados da recorrência


O pagador escaneia um QR Code que contém os dados da proposta de recorrência.


- Decodificar o QR Code:

 
POST /v1/qrcode/decoding


- Apresentar os dados ao usuário.


- Ativar recorrência (tópico 7. Ativar/Autorizar Recorrência)


POST /v1/accounts/{accountId}/recurrence


O resultado da solicitação de recorrência será enviado para o webhook caso esteja configurado. A Solicitação de

Recorrência poderá ter os status SENDING_APPROVAL e APPROVED.


5. Jornada 3 – QR Code com recorrência + 1ª cobrança 


- Decodificar QR Code: 


POST /v1/qrcode/decoding


- Apresente os dados do pagamento e da recorrência ao usuário;

- Aguarde a única autorização para executar as duas ações;

- Após obter a autorização, execute o fluxo de envio de Pix Cobrança imediata:


POST /v1/accounts/{accountId}/withdraw


- Ativar recorrência (tópico 7. Ativar/Autorizar Recorrência)


POST /v1/accounts/{accountId}/recurrence


6. Jornada 4 – QR Code com cobrança futura + oferta de recorrência 


- Decodificar QR Code: 


POST /v1/qrcode/decoding


- Apresente apenas os dados do pagamento ao usuário;

- Aguarde autorização para executar o pagamento;

- Execute o fluxo de envio de Pix Cobrança com vencimento ou de um QR Code estático, conforme realizado

atualmente:


POST /v1/accounts/{accountId}/withdraw


- Apresente os dados da recorrência como oferta e aguarde autorização.


- Exibir oferta de recorrência e ativar (tópico 7. Ativar/Autorizar Recorrência).


7. Ativar/Autorizar Recorrência 


- Após ler o QR Code ou receber a proposta, o pagador ativa a recorrência com a seguinte chamada: 


POST /v1/accounts/{accountId}/recurrence


- O retorno indicará que a solicitação está em processamento. A autorização pode assumir os status:

  • SENDING_APPROVAL
  • APPROVED


Notificação via webhook será enviada automaticamente se configurada.


8. Configurar Recorrência 


No contexto do Pix Automático, o pagador tem a opção de incluir ou modificar algumas configurações relacionadas à recorrência autorizada e ativa. Isso inclui definir um valor máximo permitido para as cobranças e a autorização para utilizar o limite de crédito da conta durante a liquidação.

Por exemplo, se o pagador possui uma recorrência com valor fixo e deseja estabelecer um limite, o Pix Automático será realizado apenas se o valor da cobrança não exceder o valor máximo configurado. Caso contrário, o Pix Automático não será efetuado, e o pagador receberá uma notificação.


PATCH /v1/accounts/{accountId}/recurrences/{recId}/configure


Exemplo de payload: 


{

  "useAccountLimit": true,

  "maximumValue": 100.00

}


Caso tenha o webhook configurado será enviado a aprovação e a recorrência permanecerá com status APPROVED.


9. Cancelar Recorrência 


Quando o usuário pagador cancelar uma autorização, o usuário recebedor não estará mais autorizado a realizar

cobranças vinculadas àquela recorrência na modalidade de Pix Automático. Cobranças vinculadas à recorrência serão canceladas, exceto aquelas com vencimento na data do cancelamento, que já estarão em processamento.


POST /v1/accounts/{accountId}/recurrences/{recId}/cancel


Caso tenha o webhook configurado será enviado o cancelamento e a recorrência permanecerá com status CANCELED.


10. Consultar Recorrências 


- Consultar uma recorrência específica: 


GET /v1/accounts/{accountId}/recurrences/{recId}


- Listar recorrências: 


GET /v1/accounts/{accountId}/recurrences


11. Histórico de Recorrências 


Permite visualizar o histórico de autorizações, modificações, recusas e cancelamentos. 


GET /v1/accounts/{accountId}/recurrences/{recId}/histories


12. Consultar Solicitações de Recorrência 


- Solicitação específica: 


GET /v1/accounts/{accountId}/recurrencesrequests/{requestRecId}


- Listar solicitações: 


GET /v1/accounts/{accountId}/recurrencesrequests


13. Gestão de Cobranças Recorrentes 


Cobranças recorrentes são geradas com base nas autorizações ativas. O pagador pode cancelar uma cobrança até 23h59 do dia anterior à data programada. 


- Consultar cobranças recorrentes: 


GET /v1/accounts/{accountId}/billings


- Cancelar uma cobrança: 


POST /v1/accounts/{accountId}/billings/{txid}/cancel


Caso tenha o webhook configurado será enviado a solicitação de cancelamento e a cobrança permanecerá com status CANCELED.


14. Webhook de Notificação 


Configure o webhook para receber notificações automáticas de eventos relacionados a Pix Automático. 


- Criar ou atualizar: 


PUT /v1/autopix/webhook


O cadastro de webhook por esta API será utilizado apenas para o fluxo de PIX automático.


- Visualizar: 


GET /v1/autopix/webhook


- Remover: 


DELETE /v1/autopix/webhook


Eventos do Webhook


Exemplo de conteúdo do webhook
Quando é enviado 
{  "message": "This is a webhook configuration test" } Enviado no momento de configuração (PUT /v1/autopix/webhook). Usado para testar a comunicação.

{

    "requestRecId": "SC2311444720250711DKrdMiWQwPY",

    "recId": "RN3521041020250711TEsG8Fr7t7d",

    "aggregateId": "0197faf3-3378-7cde-d0a4-2c5f3cbc2be1",

    "createdAt": 1752261932016,

    "cancellation": {

        "id": null,

        "createdAt": null,

        "requester": null,

        "code": null,

        "description": null,

        "requesterTaxId": null,

        "statusAckId": null

    },

    "status": "RECEIVED",

    "integrationStatus": "SENDING_RECEIVING_CONFIRMATION",

    "expirationDate": 1752322631926,

    "recipient": {

        "account": {

            "branch": "1",

            "number": "487031"

        },

        "taxDocument": {

            "type": "CNPJ",

            "number": "{{CNPJ}}"

        },

        "participantIspb": "23114447"

    },

    "recPayload": "{\"recId\":\"RN3521041020250711TEsG8Fr7t7d\",\"contractLink\":{\"contract\":\"1752261889\",\"debtor\":null,\"object\":\"streaming\"},\"calendar\":{\"initialDate\":\"2025-07-13\",\"finalDate\":null,\"frequencyType\":\"MNTH\"},\"value\":{\"recValue\":29.50,\"receiverMinimumValue\":null},\"receiver\":{\"cnpj\":\"50547282000110\",\"name\":\"Receiver Store\",\"participantIspb\":\"35210410\"},\"updates\":[{\"status\":\"CREATED\",\"datetime\":\"2025-07-11T19:24:49.218\"}],\"creationDateTime\":\"2025-07-11T19:24:49.218\",\"retryPolicy\":\"NOT_ALLOWED\"}",

    "statusAckId": "IS23114447202507116zBqc82DTr3",

    "accountId": "{{accountId}}",

    "mediatorId": "{{mediatorId}}"

}

Enviado para requisição de recorrência da jornada 1. integrationStatus: SENDING_RECEIVING_CONFIRMATION.

{

    "recId": "RN3521041020250711seT7q6d0BDF",

    "createdAt": 1752244242890,

    "updatedAt": 1752244242890,

    "aggregateId": "0197f9e5-49c9-f1d0-ab80-f98b6eb84d43",

    "creationDateTime": 1706745600000,

    "contractLink": {

        "debtor": {

            "name": "Directa Bet",

            "taxDocument": {

                "type": "CPF",

                "number": "{{CPF}}"

            }

        },

        "contract": "RR1234595456",

        "object": "streaming"

    },

    "calendar": {

        "initialDate": "2025-04-25",

        "finalDate": null,

        "frequencyType": "MIAN"

    },

    "retryPolicy": "ALLOWED_3R_7D",

    "payer": {

        "taxDocument": {

            "type": "CNPJ",

            "number": "{{CNPJ}}"

        },

        "participantIspb": "23114447",

        "account": {

            "number": "990",

            "branch": "1"

        },

        "municipalityCode": "1200344",

        "name": "fdfsdf"

    },

    "receiver": {

        "cnpj": "{{CNPJ}}",

        "name": "Receiver",

        "participantIspb": "35210410"

    },

    "value": {

        "recValue": 20,

        "receiverMinimumValue": null

    },

    "status": "APPROVED",

    "integrationStatus": "SENDING_APPROVAL",

    "activation": {

        "journey": "JOURNEY_2",

        "journeyDateTime": 1752244242889

    },

    "authorization": {

        "id": "IS3521041020250711UAo7DM7iDna",

        "createdAt": 1752244242890,

        "updatedAt": 1752244242890,

        "acceptance": true,

        "rejectionCode": null,

        "statusAckId": null,

        "elapsedTime": null,

        "flow": null

    },

    "limits": {

        "useAccountLimit": false,

        "maximumValue": null

    },

    "cancellation": {

        "id": null,

        "requesterTaxId": null,

        "requester": null,

        "code": null,

        "description": null,

        "statusAckId": null,

        "createdAt": null

    },

    "accountId": "{{accountId}}",

    "mediatorId": "{{mediatorId}}"

}

Enviado ao aprovar uma recorrência.
O integrationStatus SENDING_APPROVAL é enviado após a aprovação da recorrência, durante a comunicação com o BACEN.

{

    "recId": "RN3521041020250711seT7q6d0BDF",

    "createdAt": 1752244242890,

    "updatedAt": 1752244249333,

    "aggregateId": "0197f9e5-49c9-f1d0-ab80-f98b6eb84d43",

    "creationDateTime": 1706745600000,

    "contractLink": {

        "debtor": {

            "name": "Directa Bet",

            "taxDocument": {

                "type": "CPF",

                "number": "{{CPF}}"

            }

        },

        "contract": "RR1234595456",

        "object": "streaming"

    },

    "calendar": {

        "initialDate": "2025-04-25",

        "finalDate": null,

        "frequencyType": "MIAN"

    },

    "retryPolicy": "ALLOWED_3R_7D",

    "payer": {

        "taxDocument": {

            "type": "CNPJ",

            "number": "{{CNPJ}}"

        },

        "participantIspb": "23114447",

        "account": {

            "number": "990",

            "branch": "1"

        },

        "municipalityCode": "1200344",

        "name": "fdfsdf"

    },

    "receiver": {

        "cnpj": "{{CNPJ}}",

        "name": "Receiver",

        "participantIspb": "35210410"

    },

    "value": {

        "recValue": 20,

        "receiverMinimumValue": null

    },

    "status": "APPROVED",

    "integrationStatus": "APPROVED",

    "activation": {

        "journey": "JOURNEY_2",

        "journeyDateTime": 1752244242889

    },

    "authorization": {

        "id": "IS3521041020250711UAo7DM7iDna",

        "createdAt": 1752244242890,

        "updatedAt": 1752244242890,

        "acceptance": true,

        "rejectionCode": null,

        "statusAckId": "IS3521041020250711FctUXVpDyDo",

        "elapsedTime": "26414",

        "flow": "EXTERNAL"

    },

    "limits": {

        "useAccountLimit": false,

        "maximumValue": null

    },

    "cancellation": {

        "id": null,

        "requesterTaxId": null,

        "requester": null,

        "code": null,

        "description": null,

        "statusAckId": null,

        "createdAt": null

    },

    "accountId": "{{accountId}}",

    "mediatorId": "{{mediatorId}}"

}

Enviado ao aprovar uma recorrência.
Após o sucesso na comunicação, o integrationStatus recebe o valor APPROVED.


  • integrationStatus: SENDING_RECEIVING_CONFIRMATION.  - Enviado para requisição de recorrência da jornada 1. 
  • integrationStatus: SENDING_APPROVAL – Enviado após o envio da autorização ao Bacen;
  • integrationStatus: APPROVED – Enviado após confirmação de ativação pelo Bacen;
  • status: CANCELED – Enviado após cancelamento de recorrência;
  • Payloads incluem IDs da recorrência, conta, contrato e dados do recebedor/pagador.


Em anexo, disponibilizamos as collections para realização dos testes e integração.


Suporte


Para dúvidas ou acompanhamento de chamados, acesse: Portal de Suporte