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/erroDescrição
AB10Transação interrompida devido a erro no participante do usuário pagador.
AM09Valor da cobrança não corresponde ao valor estabelecido na recorrência.
CRNCCNPJ do usuário recebedor informado na pain.013 não corresponde com a identificação na recorrência.
AC05Conta transacional do usuário pagador encerrada.
AC06Conta transacional do usuário pagador encontra-se bloqueada.
AG12Nã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.
AM02Valor da cobrança ultrapassa o valor máximo estabelecido pelo usuário pagador.
DENCCPF/CNPJ do usuário pagador não corresponde ao dado contido na recorrência/autorização.
DS27Participante não se encontra cadastrado ou ainda não iniciou a operação no SPI.
DTEDDivergência entre a data de vencimento informada e a periodicidade da recorrência/regras do produto.
DTNTNovas tentativas de agendamento pós vencimento em desacordo com o limite de dias (a partir de D+8).
FCD1Pain.013 recebida com mais de 10 dias de antecedência da data prevista para liquidação.
FCD2Pain.013 recebida com menos de 2 dias de antecedência da data prevista para liquidação.
GRERMotivo do erro genérico/diverso, utilizado quando não houver outro domínio aplicável.
IRNTCobrança recorrente não permite novas tentativas de agendamento pós vencimento.
MIDIidRecorrencia inexistente ou incorreto.
MSUCstatusRecorrencia diferente de "CFDB" (confirmado pelo usuário pagador).
NIECInstrução inválida: a cobrança já possui ordem de pagamento agendada pendente de envio ao SPI.
NIPANova instrução de pagamento inválida, pois o pagamento já foi efetivado.
NITXInstrução não corresponde a uma cobrança recorrente anterior (TXIDs diferentes).
QUNTQuantidade de novas tentativas pós vencimento excede o limite (mais de 3 tentativas em 7 dias).
RC09ISPB do participante do usuário pagador inválido ou inexistente.
UDEICPF/CNPJ do devedor incorreto.