Envio de Agendamento
O fluxo de envio de agendamento é o mais importante no Pix Automático e é algo que deverá ocorrer em todas as cobranças de um fluxo de Pix Automático.
A empresa recebedora deverá enviar ao cliente pagador, entre 10 dias e 2 dias anterior a data do pagamento a ordem de agendamento para o banco do cliente pagador.
O agendamento pode ser recusado pelo pagador caso esse prazo não seja respeitado ou se a solicitação de agendamento possuir qualquer condição divergente do consentimento inicial realizado pelo cliente pagador.
Para todos os cenários, a Celcoin enviará webhook para o cliente, notificando do aceite ou recusa do pagador.
No início de cada ciclo de recorrência, a Celcoin criará uma instrução de pagamento para ser enviada.
Caso no momento da criação da recorrência tenha sido enviado o parâmetro: allowAutoSendingPaymentInstructions = true
Neste caso, a Celcoin automaticamente enviará a ordem de agendamento ao banco pagador. Este cenário deverá ser utilizado para cobranças recorrentes de valor fixo, onde não é necessário nenhum tipo de ajuste por parte da empresa recebedora a cada novo ciclo de cobrança.
Caso no momento da criação da recorrência tenha sido enviado o parâmetro: allowAutoSendingPaymentInstructions = false
Neste caso, a Celcoin enviará ao recebedor um webhook, informando que o agendamento está pronto para ser criado e a Celcoin aguardará que a empresa recebedora informe as condições de pagamento. Este cenário deverá ser utilizado para cobranças recorrentes de valor variável, onde é necessário que seja informado um valor específico por parte da empresa recebedora a cada novo ciclo de cobrança.
Exemplo de Webhook - "awaiting creditor review"
Evento: pix-automatic-payment-instruction-awaiting-creditor-review
(somente para casos de allowAutoSendingPaymentInstructions = false)
{
"body": {
"id": "6bcf6cb3-a91c-4b23-b30a-20c0f5714647",
"endToEndId": "E36060950202508130000A8LzS0K0z6W",
"recurrencyId": "RC139358932025060749927585294",
"amount": 100,
"expirationDate": "08/11/2025 00:00:00",
"isWorkingDay": true,
"nextWorkingDay": null,
"status": "AWAITING_CREDITOR_EVALUATION",
"creditParty": {
"bank": "13935893",
"branch": "10203040",
"account": "98765-4",
"taxId": "19297016000136",
"name": "Empresa Fictícia"
},
"debitParty": {
"bank": "13935893",
"personType": "NATURAL_PERSON",
"taxId": "67167948080",
"name": "Pessoa Fictícia",
"branch": "0001",
"account": "5234565",
"accountType": null,
"stateCode": null
},
"debtor": {
"personType": "NATURAL_PERSON",
"taxId": "67167948080",
"name": "Pessoa Fictícia"
},
"createDate": "2025-07-14T00:00:00.0000000",
"updateDate": "2025-07-14T19:40:02.5516987",
"clientRequestId": "00000000-0000-0000-0000-000000000000",
"cancellation": null
},
"entity":"pix-automatic-payment-instruction-awaitingcreditor-review",
"createTimeStamp": "2025-09-12T14: 11: 05.9664267",
"status": "AWAITING_CREDITOR_EVALUATION",
"webhookId": "935e6f73343a4974ada18de02fbcea4e"
}
Após o envio deste webhook, a Celcoin ficará aguardando que o recebedor envie as instruções de pagamento. É importante que a empresa respeite os prazos do Pix Automático, e envie as instruções de pagamento dentro da janela permitida(de 10 a 2 dias antes do vencimento), para que a Celcoin tenha tempo de enviar a solicitação ao banco pagador:
Endpoint PUT /recurrencies/{recurrencyId}/payment-instruction/{endToEndId}
Essas informações de recurrencyId e endToEndId são encontradas no webhook pix-automatic-payment-instruction-awaiting-creditor-review
Request:
{
"clientRequestId": "123423432",
"amount": 100,
"changeToNextWorkingDay": true
}
Response
{
"version": "1.0.0",
"status": 200,
"body": {
"id": "asdfgfsdew",
"endToEndId": "E139358932025060789659528960",
"recurrencyId": "RR139358932025060758317314721",
"amount": 100,
"status": "PENDING_SENDING_DEBTOR",
"expirationDate": "2025-06-07",
"nextWorkingDay": null,
"creditParty": {
"bank": "13935893",
"branch": "10203040",
"account": "98765-4",
"taxId": "76008951000179",
"name": "Empresa Fictícia"
},
"debtor": {
"personType": "NATURAL_PERSON",
"taxId": "00011122233",
"name": "Pessoa Fictícia"
},
"debitParty": {
"bank": "10203040",
"personType": "NATURAL_PERSON",
"taxId": "00011122233",
"accountType": "CACC",
"branch": "10203040",
"account": "98765-4",
"stateCode": "3505708"
},
"createDate": "2025-06-07",
"clientRequestId": 123423432
}
}
Após isso, o fluxo ficará na Celcoin pendente de envio ao cliente pagador
Webhook de pending sending debtor (para casos onde allowAutoSendingPaymentInstructions = true) -> o fluxo começa diretamente neste evento:
pix-automatic-payment-instruction-pending-sending-debtor
{
"body": {
"id": "asdfgfsdew",
"endToEndId": "E1393589320250607087449852020",
"recurrencyId": "RR139358932025060758317314721",
"amount": 100,
"expirationDate": "2025-06-07",
"isWorkingDay": false,
"nextWorkingDay": null,
"status": "PENDING_SENDING_DEBTOR",
"creditParty": {
"bank": "13935893",
"branch": "10203040",
"account": "98765-4",
"taxId": "76008951000179",
"name": "Empresa Fictícia"
},
"debitParty": {
"bank": "10203040",
"personType": "NATURAL_PERSON",
"taxId": "00011122233",
"name": null,
"branch": "10203040",
"account": "98765-4",
"accountType": "CACC",
"stateCode": "3505708"
},
"debtor": {
"personType": "NATURAL_PERSON",
"taxId": "00011122233",
"name": "Pessoa Fictícia"
},
"createDate": "2025-06-07",
"updateDate": "2025-07-14T19:48:23",
"clientRequestId": "123423432",
"cancellation": null,
},
"entity":"pix-automatic-payment-instruction-pendingsending-debtor",
"createTimeStamp": "2025-09-12T12: 22: 09.2537337",
"status": "PENDING_SENDING_DEBTOR",
"webhookId": "e193e47ecc84471aa3305c82178aec06"
}
Após isso, se iniciará de fato o fluxo de agendamento, onde a Celcoin enviará ao pagador a solicitação de agendamento, que poderá ser retornada com um aceite ou recusa do banco pagador.
A recusa do banco pagador poderá ocorrer por diversos motivos, mas não será detalhado o motivo da recusa: a conta do cliente pagador pode ter sido encerrada ou estar bloqueada, por exemplo.
Também é possível que uma recusa ocorra porque a instrução de agendamento foi enviada em valor acima do máximo configurado pelo pagador ou então o agendamento ao pagador foi enviado fora do prazo permitido (por exemplo, somente 1 dia antes do vencimento).
Após enviado a instrução de agendamento pro pagador, ele responderá se foi aceita ou não a instrução de pagamento. Assim que tivermos a resposta, retornaremos para você recebedor o webhook com o status.
Webhook de instrução de pagamento completa, com status de ACCEPTED OU REJECTED pelo pagador.
evento: pix-automatic-payment-instruction-completed
Status de ACCEPTED.
{
"body": {
"id":"59b3c942-3b2f-40c0-b10b577512dc7d69",
"endToEndId": "E13935893202510120000Ixvr1YZMaLQ",
"recurrencyId": "RR1393589320250820fqpb80CzMdC",
"amount": null,
"expirationDate": "10\/10\/2025 00: 00: 00",
"isWorkingDay": true,
"nextWorkingDay": null,
"status": "ACCEPTED",
"creditParty": {
"bank": "13935893",
"branch": "0001",
"account": "000123456789",
"taxId": "12345678901",
"name": "Josue da Silva"
},
"debitParty": {
"bank": "13935893",
"personType": "NATURAL_PERSON",
"taxId": "36057484061",
"name": "Joao da Silva",
"branch": "0001",
"account": "5234565",
"accountType": null,
"stateCode": null
},
"debtor": {
"personType": "NATURAL_PERSON",
"taxId": "36057484061",
"name": "Joao da Silva"
},
"createDate": "2025-09-12T00: 00: 00.0000000",
"updateDate": "2025-09-12T13: 07: 45.0842771",
"clientRequestId": "00000000-0000-0000-0000-000000000000",
"cancellation": null
},
"entity":"pix-automatic-payment-instructioncompleted",
"createTimeStamp": "2025-09-12T13: 07: 55.2543541",
"status": "ACCEPTED",
"webhookId": "a4ae65e8286e436fa5cf94cbc078e806"
}Status de REJECTED
{
"body": {
"id":"59b3c942-3b2f-40c0-b10b577512dc7d69",
"endToEndId": "E13935893202510120000Ixvr1YZMaLQ",
"recurrencyId": "RR1393589320250820fqpb80CzMdC",
"amount": 40.0,
"expirationDate": "10\/10\/2025 00: 00: 00",
"isWorkingDay": true,
"nextWorkingDay": null,
"status": "REJECTED",
"creditParty": {
"bank": "13935893",
"branch": "0001",
"account": "000123456789",
"taxId": "12345678901",
"name": "Josue da Silva"
},
"debitParty": {
"bank": "13935893",
"personType": "NATURAL_PERSON",
"taxId": "36057484061",
"name": "Joao da Silva",
"branch": "0001",
"account": "5234565",
"accountType": null,
"stateCode": null
},
"debtor": {
"personType": "NATURAL_PERSON",
"taxId": "36057484061",
"name": "Joao da Silva"
},
"createDate": "2025-09-12T00: 00: 00.0000000",
"updateDate": "2025-09-12T13: 07: 45.0842771",
"clientRequestId": "00000000-0000-0000-0000-000000000000",
"cancellation": null,
"type": "NEW_ATTEMPT_AFTER_EXPIRATION",
"rejectionreason": "AB10"
},
"entity":"pix-automatic-payment-instructioncompleted",
"createTimeStamp": "2025-09-12T13: 07: 55.2543541",
"status": "REJECTED",
"webhookId": "a4ae65e8286e436fa5cf94cbc078e806"
}Tabela com os códigos de erro e sua descrição (rejectionReason)
| Código de rejeição/erro | Descrição |
|---|---|
| AB10 | Transação interrompida devido a erro no participante do usuário pagador. |
| AM09 | Valor da cobrança não corresponde ao valor estabelecido na recorrência. |
| CRNC | CNPJ do usuário recebedor informado na pain.013 não corresponde com a identificação na recorrência. |
| AC05 | Conta transacional do usuário pagador encerrada. |
| AC06 | Conta transacional do usuário pagador encontra-se bloqueada. |
| AG12 | Não é permitida solicitação de agendamento (pain.013) cujos recursos sejam transferidos entre contas da mesma instituição ou participantes com o mesmo liquidante no SPI. |
| AM02 | Valor da cobrança ultrapassa o valor máximo estabelecido pelo usuário pagador. |
| DENC | CPF/CNPJ do usuário pagador não corresponde ao dado contido na recorrência/autorização. |
| DS27 | Participante não se encontra cadastrado ou ainda não iniciou a operação no SPI. |
| DTED | Divergência entre a data de vencimento informada e a periodicidade da recorrência/regras do produto. |
| DTNT | Novas tentativas de agendamento pós vencimento em desacordo com o limite de dias (a partir de D+8). |
| FCD1 | Pain.013 recebida com mais de 10 dias de antecedência da data prevista para liquidação. |
| FCD2 | Pain.013 recebida com menos de 2 dias de antecedência da data prevista para liquidação. |
| GRER | Motivo do erro genérico/diverso, utilizado quando não houver outro domínio aplicável. |
| IRNT | Cobrança recorrente não permite novas tentativas de agendamento pós vencimento. |
| MIDI | idRecorrencia inexistente ou incorreto. |
| MSUC | statusRecorrencia diferente de "CFDB" (confirmado pelo usuário pagador). |
| NIEC | Instrução inválida: a cobrança já possui ordem de pagamento agendada pendente de envio ao SPI. |
| NIPA | Nova instrução de pagamento inválida, pois o pagamento já foi efetivado. |
| NITX | Instrução não corresponde a uma cobrança recorrente anterior (TXIDs diferentes). |
| QUNT | Quantidade de novas tentativas pós vencimento excede o limite (mais de 3 tentativas em 7 dias). |
| RC09 | ISPB do participante do usuário pagador inválido ou inexistente. |
| UDEI | CPF/CNPJ do devedor incorreto. |
Updated 8 days ago