Autorização - Jornada 4

Envio de Qr Code para o cliente pagador com pagamento imediato e adesão opcional.


Caso de uso: A Jornada 4 foi pensada para casos de uso onde o fluxo de pagamento é obrigatório, porém a adesão ao Pix Automático é opcional.

Um exemplo de uso da Jornada 4 é um caso de pagamento de fatura de luz ou água, onde o cliente pagador realizará o pagamento do serviço daquele mês, mas pode não desejar aderir ao Pix Automático para os próximos meses.

Neste fluxo, o cliente recebedor envia um Qr Code Pix Automático para que o cliente pagador realize o pagamento e, se desejar, a adesão ao Pix Automático.

Neste fluxo, é possível que a oferta de Pix Automático seja por valor fixo (igual em todas as cobranças futuras por Pix Automático) ou por valor variável. Importante que no caso de cobranças com valor variável, o cliente pagador sempre irá definir um valor máximo (teto) para que os agendamentos sejam realizados.

Se no momento do consentimento de uma conta de luz o usuário pagador determine, por exemplo, que o valor máximo que ele deseja pagar através de Pix Automático é de R$ 200,00, em qualquer mês que a empresa recebedora tentar enviar uma ordem de valor máximo acima de R$ 200,00, essa cobrança de Pix Automático será rejeitada pelo banco do cliente pagador, que deverá pagar sua fatura de outra forma, manualmente.

Nos casos onde o valor enviado de uma cobrança é superior ao valor máximo definido pelo cliente, somente o agendamento daquela cobrança específica não ocorrerá, porém o consentimento de Pix Automático continuará ativo para todas as cobranças futuras, até que o cliente pagador cancele o consentimento em si.


⚠️

Para adesões de Pix Automático através da Jornada 4, o pagamento é obrigatório, mas a adesão é opcional.



A Jornada 4 ocorre por meio da criação de um QR Code composto com uma location do tipo COBVR. Esse QR Code possui tanto os dados da cobrança com vencimento quanto da recorrência. Existem duas formas de criar esse location:

  • Criando o location em separado e depois associando esse location a um QR Code.
  • Cenário 2 : Criar o QR Code e o location simultaneamente.

O aceite é nesse caso é opcional, após efetivar o pagamento a instituição recebedora pergunta se o cliente deseja aceitar a recorrência. Quando o processo seja aceito disparamos o webhook de completed para o recebedor, se o cliente não aceitar não enviamos nenhum webhook.



Cenário 1: Criando o location separado e depois associando esse location a um QR Code.

Passos para Integrar

  1. Autenticar na API: Obtenha o token de autenticação. - [API Reference]
  2. Criar o Location: Registre o novo location - [API Reference]
  3. Criar e Vincular location a um QR Code do tipo Duedate- [API Reference]
  4. Quando o pagamento for efetuado você receberá 2 webhooks
    1. Webhook de Cash in (evento: )
    2. Webhook de Confirmação de recorrência (evento: ) (caso a recorrência seja aceita)


Fluxo de integração - Jornada 4 - Autorização da Recorrência - Cenário 1





Solicita a criação do location

JSON de Exemplo

POST /location
Request:

{
 "clientRequestId": "a016bc8bd89a4f62be995fa0ebb91d77",
  "type": "COBVR",
  "merchant": {
    "postalCode": "01201005",
    "city": "Barueri",
    "merchantCategoryCode": 0,
    "name": "Celcoin"
  }
}

cURL da chamada

curl --location --request POST 'https://sandbox.openfinance.celcoin.dev/pix/v1/location' \
--header 'accept: application/json' \
--header 'Content-Type: application/json-patch+json' \
--header 'Authorization: Bearer {access_token}' \
--data-raw '{
 "clientRequestId": "a016bc8bd89a4f62be995fa0ebb91d77",
  "type": "COBVR",
  "merchant": {
    "postalCode": "01201005",
    "city": "Barueri",
    "merchantCategoryCode": 0,
    "name": "Celcoin"
  }
}'

Perceba que o campo type, deve ser preenchido com o valor COBVR (cobrança com vencimento recorrente), para indicar que é de um tipo pix automático.

Exemplo de retorno

👍

Sucesso 200

{
 "locationId": 12345,
  "status": "ACTIVE",
     "clientRequestId": "dc8de35155df4cf6a86c6cf960b797cb",
     "url": "qrcode-h.teste.com.brv1/location/cobv/dc8de35155df4cf6a86c6cf960b797cb",
     "emv": "00020101021226930014br.gov.bcb.pix2571qrcode-   h.teste.com.brv1/location/cob/dc8de35155df4cf6a86c6cf960b797cb5204000053039865802BR5907Celcoin6007Barueri623605322b39d30a0dc84ed9bb9d0d79261af1076404D1B6",
  "type": "COBVR",
  "merchant": {
    "postalCode": "01201005",
    "city": "Barueri",
    "merchantCategoryCode": 0,
    "name": "Celcoin"
  },
 "recurrencyUrl": "qrcode-h.teste.com.brv1/location/cobv/dc8de35155df4cf6a86c6cf960b797cb"
}

Error 400

{
  "version": "1.0.0",
  "status": "ERROR",
  "error": {
    "errorCode": "",
    "message": ""
  }
}


Associar o location tipo COBVR a um novo QR Code

JSON de Exemplo

Neste momento são informados os dados da recorrência do pix automático, como a frequência, os campos allowsNewAttemptsAfterExpiration que é se terá ou não retentativas após o vencimento e allowAutoSendingPaymentInstructions se é cobrança de valor variável ou não. Caso seja de valor variável, deverá preencher o campo como = false e o recebedor terá que todo mês enviar qual será o valor.
Se for valor fixo = true, a própria Celcoin iniciará o fluxo de cobrança e só enviará o webhook informando se foi aceita ou não.

POST /collection/duedate

Request:

{
    "clientRequestId": "e978fafe-1374-4e34-b419-f5b0f459e85f",
    "expirationAfterPayment": 10,
    "duedate": "{{duedate}}",
    "debtor": {
        "name": "Fulano de Tal",
        "cpf": "11122233366",
        "city": "Barueri",
        "publicArea": "Avenida Brasil",
        "state": "SP",
        "postalCode": "01202003",
        "email": "[email protected]"
    },
    "receiver": {
        "name": "João da Silva",
        "cpf": "11122233366",
        "postalCode": "01202003",
        "city": "Barueri",
        "publicArea": "Avenida Brasil",
        "state": "SP"
    },
    "locationId": 234545,
    "amount": 5.55,
    "key": "{{key_pixPay}}",

   "recurrency":{
          "clientRequestId":"2005630c-cd0a-4467-9b3f-adc473fb7ea0",
      "interval":{
         "start":"2025-07-07",

         "frequencyType":"WEEKLY"
      },
      "amount":299.90,
      "creditParty":{
         "branch":"1234",
         "account":"1234567",
         "taxId":"01234567000189",
         "name":"Comércio Digital Ltda."
      },
    
      "debtor":{
         "personType":"LEGAL_PERSON",
         "taxId":"09876543000121",
         "name":"Pague Tudo Serviços S.A."
      },
      "contract":{
         "number":"CONTRATO-2025-ABCD",
         "description":"Assinatura mensal de plataforma"
      },
      "allowsNewAttemptsAfterExpiration":true,
    
      "allowAutoSendingPaymentInstructions":true
   }
}

cURL da chamada

curl --location --request POST 'https://sandbox.openfinance.celcoin.dev/pix/v1/collection/duedate' \
--header 'accept: application/json' \
--header 'Content-Type: application/json-patch+json' \
--header 'Authorization: Bearer {access_token}' \
--data-raw '{
 "clientRequestId": "9b26edb7cf254db09f5449c94bf13abc",
  "expirationAfterPayment": 10,
  "duedate": "2021-04-29 00:00:00",
  "debtor": {
    "name": "Fulano de Tal",
    "cpf": "11122233366",
    "cnpj": "1112223300100",
    "city": "Barueri",
    "publicArea": "Avenida Brasil",
    "state": "SP",
    "postalCode": "01202003",
    "email": "[email protected]"
  },
  "receiver": {
    "name": "João da Silva",
    "cpf": "11122233366",
    "cnpj": "1112223300100",
    "postalCode": "01202003",
    "city": "Barueri",
    "publicArea": "Avenida Brasil",
    "state": "SP",
    "fantasyName": "Nome de Comercial"
  },
  "locationId": 55845,
  "amount": 15.63,
  "amountDiscount": {
    "discountDateFixed": [
      {
        "date": "2021-04-29",
        "amountPerc": "1.00"
      }
    ],
    "hasDiscount": false,
    "hasDicount": true,
    "modality": "FIXED_VALUE_UNTIL_THE_DATES_INFORMED",
    "amountPerc": "0.00"
  },
  "amountDicount": {
    "discountDateFixed": [
      {
        "date": "2021-04-29",
        "amountPerc": "1.00"
      }
    ],
    "hasDiscount": false,
    "hasDicount": true,
    "modality": "FIXED_VALUE_UNTIL_THE_DATES_INFORMED",
    "amountPerc": "0.00"
  },
  "amountAbatement": {
    "hasAbatement": false,
    "amountPerc": "0.00",
    "modality": "FIXED_VALUE"
  },
  "amountFine": {
    "hasFine": false,
    "amountPerc": "0.00",
    "modality": "FIXED_VALUE"
  },
  "amountInterest": {
    "hasInterest": false,
    "amountPerc": "0.00",
    "modality": "VALUE_CALENDAR_DAYS"
  },
  "additionalInformation": [
    {
      "value": "Assinatura de serviço",
      "key": "Produto 1"
    }
  ],
  "payerQuestion": "pagamento referente a...",
  "key": "5d000ece-b3f0-47b3-8bdd-c183e8875862",
"recurrency: {
 // Se recurrencyId for informado, os demais não podem estar presentes
    "recurrencyId": "id da recorrência, seguindo o formato: RRxxxxxxxxyyyyMMddkkkkkkkkkkk",
        "interval": {
            "start": "datetime",
            "end": "datetime",
            "frequencyType": "integer (enum FrequencyType)"
        },
        "amount": "decimal | null",
        "creditParty": {
            "bank": "string",
            "taxId": "string",
            "name": "string"
        },
      "debitParty": {
 "ispb": string,
   "personType": string,
   "taxId": string,
   "bank": string | null,
   "account": string,
   "stateCode": string
  },
  "debtor": {
   "personType": string,
   "taxId": string,
   "name": string
  },
        "contract": {
            "number": "string",
            "description": "string | null"
        },
  "allowsNewAttemptsAfterExpiration": boolean
  "maxValueFloor": decimal | null,
  "allowAutoSendingPaymentInstructions": bool
 }
}'

Exemplo de retorno

👍

Sucesso 200

{
    "transactionIdentification": "kk6g232xel65a0daee4dd13kk4000278871",
    "transactionId": 4000278871,
    "clientRequestId": "54805e92-37fc-4936-b5cd-2ecfdc6f56f3",
    "status": "ACTIVE",
    "lastUpdate": null,
    "payerQuestion": null,
    "additionalInformation": null,
    "debtor": {
        "name": "Fulano de Tal",
        "cpf": "11122233366",
        "cnpj": null,
        "city": "Barueri",
        "publicArea": "Avenida Brasil",
        "state": "SP",
        "postalCode": "01202003",
        "email": "[email protected]"
    },
    "amount": {
        "original": 5.55,
        "discount": null,
        "abatement": null,
        "fine": null,
        "interest": null
    },
    "location": {
        "merchant": {
            "postalCode": "06416230",
            "city": "barueri",
            "merchantCategoryCode": "5651",
            "name": "Teste testando"
        },
        "url": "qrcode-h.pix.celcoin.com.br/pixqrcode/v2/cobv/2dcb1bc1b1807edf3a112eac643954",
        "emv": "00020101021226980014br.gov.bcb.pix2576qrcode-h.pix.celcoin.com.br/pixqrcode/v2/cobv/2dcb1bc1b1807edf3a112eac6439545204000053039865802BR5914Teste testando6007barueri62070503***63040354",
        "type": "COBV",
        "locationId": "4000928439",
        "id": "4000928439"
    },
    "key": "[email protected]",
    "receiver": {
        "name": "Joao da Silva",
        "cpf": "11122233366",
        "cnpj": null,
        "postalCode": "01202003",
        "city": "Barueri",
        "publicArea": "Avenida Brasil",
        "state": "SP",
        "fantasyName": null
    },
    "calendar": {
        "expirationAfterPayment": "10",
        "createdAt": "2025-07-04T10:56:49.52229Z",
        "dueDate": "2025-07-07T00:00:00Z"
    },
    "createAt": "2025-07-04T10:56:49.52229Z",
    "recurrency": {
        "recurrencyId": "RR139358932025060794206870902",
        "clientRequestId": "f7819ce5-6ed0-4972-a3a9-492ce1d435e4",
        "interval": {
            "start": "2025-07-07T00:00:00",
            "end": null,
            "frequencyType": "WEEKLY"
        },
        "status": "CREATED",
        "journeys": [
            {
                "status": "PENDING",
                "type": 4,
                "createDate": "2025-06-07T09:45:00-03:00"
            }
        ],
        "amount": 299.9,
        "creditParty": {
            "bank": "13935893",
            "branch": "1234",
            "account": "1234567",
            "taxId": "01234567000189",
            "name": "Comércio Digital Ltda."
        },
        "debtor": {
            "personType": "LEGAL_PERSON",
            "taxId": "09876543000121",
            "name": "Pague Tudo Serviços S.A."
        },
        "contract": {
            "number": "CONTRATO-2025-ABCD",
            "description": "null"
        },
        "allowsNewAttemptsAfterExpiration": true,
        "recurrencyMaxAmount": null,
        "createDate": "2025-06-07T09:45:00-03:00",
        "allowAutoSendingPaymentInstructions": true
    }
}

Error 400

{
  "version": "1.0.0",
  "status": "ERROR",
  "error": {
    "errorCode": "",
    "message": ""
  }
}

Cenário 2 - Criar o QR Code e o associar a uma recorrencia ja existente.

Passos para Integrar

  1. Autenticar na API: Obtenha o token de autenticação. - [API Reference]
  2. Realiza a criação de um Location + QR Code Simultaneamente - [API Reference]
  3. Quando o pagamento for efetuado você receberá 2 webhooks
      1. Webhook de Cash in (evento: )
      2. Webhook de Confirmação de recorrência (evento: ) (caso a recorrência seja aceita)

Fluxo de integração - Jornada 4 - Autorização da Recorrência - Cenário 2



Criar o QR Code e o associar a uma recorrencia ja existente.

JSON de Exemplo

Criar QR Code e location
POST /collection/duedate

Request:

{
    "clientRequestId": "b11e8b64-ccb5-4e60-a9d5-28b9b1219595",
    "expirationAfterPayment": 10,
    "duedate": "{{duedate}}",
    "debtor": {
        "name": "Fulano de Tal",
        "cpf": "11122233366",
        "city": "Barueri",
        "publicArea": "Avenida Brasil",
        "state": "SP",
        "postalCode": "01202003",
        "email": "[email protected]"
    },
    "receiver": {
        "name": "João da Silva",
        "cpf": "11122233366",
        "postalCode": "01202003",
        "city": "Barueri",
        "publicArea": "Avenida Brasil",
        "state": "SP"
    },
    "locationId": 234545,
    "amount": 5.55,
    "key": "{{key_pixPay}}",

 "recurrencyId":"RR13935893202506071234567890c"
}

cURL da chamada

curl --location --request POST 'https://sandbox.openfinance.celcoin.dev/pix/v1/collection/duedate' \
--header 'accept: application/json' \
--header 'Content-Type: application/json-patch+json' \
--header 'Authorization: Bearer {access_token}' \
--data-raw '{
    "clientRequestId": "b11e8b64-ccb5-4e60-a9d5-28b9b1219595",
    "expirationAfterPayment": 10,
    "duedate": "{{duedate}}",
    "debtor": {
      "name": "Fulano de Tal",
      "cpf": "11122233366",
      "city": "Barueri",
      "publicArea": "Avenida Brasil",
      "state": "SP",
      "postalCode": "01202003",
      "email": "[email protected]"
    },
    "receiver": {
      "name": "João da Silva",
      "cpf": "11122233366",
      "postalCode": "01202003",
      "city": "Barueri",
      "publicArea": "Avenida Brasil",
      "state": "SP"
    },
    "locationId": 234545,
    "amount": 5.55,
    "key": "{{key_pixPay}}",
    "recurrencyId": "RR13935893202506071234567890c"
  }'

Exemplo de retorno

👍

Sucesso 200

{
    "transactionIdentification": "kk6g232xel65a0daee4dd13kk4000278871",
    "transactionId": 4000278871,
    "clientRequestId": "54805e92-37fc-4936-b5cd-2ecfdc6f56f3",
    "status": "ACTIVE",
    "lastUpdate": null,
    "payerQuestion": null,
    "additionalInformation": null,
    "debtor": {
        "name": "Fulano de Tal",
        "cpf": "11122233366",
        "cnpj": null,
        "city": "Barueri",
        "publicArea": "Avenida Brasil",
        "state": "SP",
        "postalCode": "01202003",
        "email": "[email protected]"
    },
    "amount": {
        "original": 5.55,
        "discount": null,
        "abatement": null,
        "fine": null,
        "interest": null
    },
    "location": {
        "merchant": {
            "postalCode": "06416230",
            "city": "barueri",
            "merchantCategoryCode": "5651",
            "name": "Teste testando"
        },
        "url": "qrcode-h.pix.celcoin.com.br/pixqrcode/v2/cobv/2dcb1bc1b1807edf3a112eac643954",
        "emv": "00020101021226980014br.gov.bcb.pix2576qrcode-h.pix.celcoin.com.br/pixqrcode/v2/cobv/2dcb1bc1b1807edf3a112eac6439545204000053039865802BR5914Teste testando6007barueri62070503***63040354",
        "type": "COBV",
        "locationId": "4000928439",
        "id": "4000928439"
    },
    "key": "[email protected]",
    "receiver": {
        "name": "Joao da Silva",
        "cpf": "11122233366",
        "cnpj": null,
        "postalCode": "01202003",
        "city": "Barueri",
        "publicArea": "Avenida Brasil",
        "state": "SP",
        "fantasyName": null
    },
    "calendar": {
        "expirationAfterPayment": "10",
        "createdAt": "2025-07-04T10:56:49.52229Z",
        "dueDate": "2025-07-07T00:00:00Z"
    },
    "createAt": "2025-07-04T10:56:49.52229Z",
    "recurrency": {
        "recurrencyId": "RR139358932025060794206870902",
        "clientRequestId": "f7819ce5-6ed0-4972-a3a9-492ce1d435e4",
        "interval": {
            "start": "2025-07-07T00:00:00",
            "end": null,
            "frequencyType": "WEEKLY"
        },
        "status": "CREATED",
        "journeys": [
            {
                "status": "PENDING",
                "type": 4,
                "createDate": "2025-06-07T09:45:00-03:00"
            }
        ],
        "amount": 299.9,
        "creditParty": {
            "bank": "13935893",
            "branch": "1234",
            "account": "1234567",
            "taxId": "01234567000189",
            "name": "Comércio Digital Ltda."
        },
        "debtor": {
            "personType": "LEGAL_PERSON",
            "taxId": "09876543000121",
            "name": "Pague Tudo Serviços S.A."
        },
        "contract": {
            "number": "CONTRATO-2025-ABCD",
            "description": "null"
        },
        "allowsNewAttemptsAfterExpiration": true,
         "recurrencyMinAmount": null,
        "createDate": "2025-06-07T09:45:00-03:00",
        "allowAutoSendingPaymentInstructions": true
    }
}

Error 400

{
  "version": "1.0.0",
  "status": "ERROR",
  "error": {
    "errorCode": "",
    "message": ""
  }
}


Cenário 3 - Criar o QR Code Estatico e o associar a uma recorrencia ja existente.


Curl

curl --location 'https://sandbox.openfinance.celcoin.dev/pix-indirect/v1/brcode/static' \
--header 'X-Webhook-URL: https://webhook.site/2b6d677b-8ecc-469d-9607-a64eb59607ac' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnRfaWQiOiI1MzhhZGVkNGMxLnNxdWFkcGl4LmNlbGNvaW5hcGkudjUiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoic3F1YWRwaXgiLCJ0aXBvSW50ZWdyYWNhb0lkIjowLCJ0aXBvSW50ZWdyYWNhbyI6IkNPTlRBIFVOSUNBIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy91c2VyZGF0YSI6ImU0M2NhYmMzZDkxNjQxNDViODA1IiwiZXhwIjoxNzUzMzU3NTI2LCJpc3MiOiJDZWxjb2luQVBJIiwiYXVkIjoiQ2VsY29pbkFQSSJ9.38gPgYIIfDFCH3D6n8IuP0fMjSYffW047S5HO_Q0j2I' \
--header 'api-key: dasdas' \
--header 'Content-Type: application/json' \
--data-raw '{
"key": "[email protected]",
  "amount": 10.55,
  "transactionIdentification": "testqrcodestaticcelcoin",
  "merchant": {
    "postalCode": "01201005",
    "city": "Barueri",
    "merchantCategoryCode": 0,
    "name": "Celcoin"
  },
  "tags": [
    "string"
  ],
  "additionalInformation": "Referente ao custo de...",
  "withdrawal": false,
      "recurrencyId": "RR139358932025060798011156316",
   
}

'

POST /brcode/static

{
    "transactionId": 9179311,
    "emvqrcps": "00020126730014br.gov.bcb.pix0123testepix@bcelcoin.com.br0224Referente ao custo de...520400005303986540510.555802BR5907Celcoin6007Barueri61080120100562270523testqrcodestaticcelcoin6304C3A1",
    "transactionIdentification": "testqrcodestaticcelcoin",
    "recurrency": {
        "recurrencyId": "RR139358932025060798011156316",
        "clientRequestId": "1535a5cf-d1fd-448e-86dc-efe5983d7155",
        "interval": {
            "start": "2025-07-07T00:00:00",
            "end": null,
            "frequencyType": "WEEKLY"
        },
        "status": "CREATED",
        "journeys": [
            {
                "status": "PENDING",
                "type": 4,
                "createDate": "2025-06-07T09:45:00-03:00"
            }
        ],
        "amount": 299.9,
        "creditParty": {
            "bank": "13935893",
            "branch": "1234",
            "account": "1234567",
            "taxId": "01234567000189",
            "name": "Comércio Digital Ltda."
        },
        "debtor": {
            "personType": "LEGAL_PERSON",
            "taxId": "09876543000121",
            "name": "Pague Tudo Serviços S.A."
        },
        "contract": {
            "number": "CONTRATO-2025-ABCD",
            "description": "null"
        },
        "allowsNewAttemptsAfterExpiration": true,
        "recurrencyMinAmount": null,
        "createDate": "2025-06-07T09:45:00-03:00",
        "allowAutoSendingPaymentInstructions": true
    }
}

Cenário 4 - Criar o QR Code Estatico e a uma recorrencia .


curl --location 'https://sandbox.openfinance.celcoin.dev/pix-indirect/v1/brcode/static' \
--header 'X-Webhook-URL: https://webhook.site/2b6d677b-8ecc-469d-9607-a64eb59607ac' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnRfaWQiOiI1MzhhZGVkNGMxLnNxdWFkcGl4LmNlbGNvaW5hcGkudjUiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoic3F1YWRwaXgiLCJ0aXBvSW50ZWdyYWNhb0lkIjowLCJ0aXBvSW50ZWdyYWNhbyI6IkNPTlRBIFVOSUNBIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy91c2VyZGF0YSI6ImU0M2NhYmMzZDkxNjQxNDViODA1IiwiZXhwIjoxNzUzMzU3NTI2LCJpc3MiOiJDZWxjb2luQVBJIiwiYXVkIjoiQ2VsY29pbkFQSSJ9.38gPgYIIfDFCH3D6n8IuP0fMjSYffW047S5HO_Q0j2I' \
--header 'api-key: dasdas' \
--header 'Content-Type: application/json' \
--data-raw '{
"key": "[email protected]",
  "amount": 10.55,
  "transactionIdentification": "testqrcodestaticcelcoin",
  "merchant": {
    "postalCode": "01201005",
    "city": "Barueri",
    "merchantCategoryCode": 0,
    "name": "Celcoin"
  },
  "tags": [
    "string"
  ],
  "additionalInformation": "Referente ao custo de...",
  "withdrawal": false,

   "recurrency":{
    "clientRequestId":"ae434497-22b3-42c1-a3cc-1b914083695f",
      "interval":{
         "start":"2025-07-07",

         "frequencyType":"WEEKLY"
      },
      "amount":299.90,
      "creditParty":{
         "branch":"1234",
         "account":"1234567",
         "taxId":"01234567000189",
         "name":"Comércio Digital Ltda."
      },
    
      "debtor":{
         "personType":"LEGAL_PERSON",
         "taxId":"09876543000121",
         "name":"Pague Tudo Serviços S.A."
      },
      "contract":{
         "number":"CONTRATO-2025-ABCD",
         "description":"Assinatura mensal de plataforma"
      },
      "allowsNewAttemptsAfterExpiration":true,
    
      "allowAutoSendingPaymentInstructions":true
   }
}

'

POST /brcode/static

{
    "transactionId": 9179311,
    "emvqrcps": "00020126730014br.gov.bcb.pix0123testepix@bcelcoin.com.br0224Referente ao custo de...520400005303986540510.555802BR5907Celcoin6007Barueri61080120100562270523testqrcodestaticcelcoin6304C3A1",
    "transactionIdentification": "testqrcodestaticcelcoin",
    "recurrency": {
        "recurrencyId": "RR139358932025060798011156316",
        "clientRequestId": "1535a5cf-d1fd-448e-86dc-efe5983d7155",
        "interval": {
            "start": "2025-07-07T00:00:00",
            "end": null,
            "frequencyType": "WEEKLY"
        },
        "status": "CREATED",
        "journeys": [
            {
                "status": "PENDING",
                "type": 4,
                "createDate": "2025-06-07T09:45:00-03:00"
            }
        ],
        "amount": 299.9,
        "creditParty": {
            "bank": "13935893",
            "branch": "1234",
            "account": "1234567",
            "taxId": "01234567000189",
            "name": "Comércio Digital Ltda."
        },
        "debtor": {
            "personType": "LEGAL_PERSON",
            "taxId": "09876543000121",
            "name": "Pague Tudo Serviços S.A."
        },
        "contract": {
            "number": "CONTRATO-2025-ABCD",
            "description": "null"
        },
        "allowsNewAttemptsAfterExpiration": true,
        "recurrencyMinAmount": null,
        "createDate": "2025-06-07T09:45:00-03:00",
        "allowAutoSendingPaymentInstructions": true
    }
}

Decodificação do QR Code de jornada 4 (ação realizada pelo pagador, não pelo recebedor)

GET /cobv/{urlAccessToken}

Request: sem body

Response: o mesmo de hoje

GET /rec/{urlAccessToken}

Request: sem body

Response:

Pagador paga ou agenda o COBV
Fluxo de pagamento idêntico ao que existe hoje.


Webhook de completed (disparado quando pagador aceita ou recusa a recorrência)

Evento: pix-automatic-recurrency-completed


{
  "recurrencyId": "RR13935893202506071234567890b",
  "clientRequestId": "idasasdddas-dasdasdasd-dadadasdas-ddasdasdassd",
  "interval": {
    "start": "2025-07-21T00:00:00.0000000",
    "end": "2025-06-07",
    "frequencyType": "WEEKLY"
  },
  "status": "CONFIRMED",
  "journeys": [
    {
      "status": "ACCEPTED",
      "type": 4,
      "createDate": "2025-07-14T00:00:00.0000000"
    },
    {
      "status": "PENDING",
      "type": 2,
      "createDate": "2025-06-07"
    }
  ],
  "amount": 100,
  "creditParty": {
    "bank": "13935893",
    "branch": "0001 ",
    "account": "1234556",
    "taxId": "01483378000156",
    "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": "LEGAL_PERSON",
    "taxId": "14843862000190",
    "name": "Empresa Fictícia 1"
  },
  "contract": {
    "number": "Contrato-12345",
    "description": "Assinatura carro"
  },
  "allowsNewAttemptsAfterExpiration": true,
  "recurrencyMaxAmount": null,
     "recurrencyMinAmount": null,
  "createDate": "2025-07-14T00:00:00.0000000",
  "updateDate": "2025-07-14T19:08:17.9793507",
  "allowAutoSendingPaymentInstructions": false,
  "cancellation": null,
  "webhookId": "8e6cf4529e714ee696c1360d026dc7c2"
}

❗️

Nenhum fluxo de Pix Automático garante ao Recebedor a certeza de recebimento. Em todos os cenários, mesmo que após a adesão, é permitido que o cliente pagador cancele seu consentimento do Pix Automático, que cancele um agendamento ou que o pagamento não seja realizado na data por falta de saldo em conta.



Tabela de apoio

Para verificar maiores informações, consulte nossa API completa.
Os campos que tiverem (*) são obrigatórios.


CampoDescriçãoTipo
start *A data de início da recorrênciaDate
end *A data fim da recorrênciaDate
frequencyType *Weekly = ("WEEKLY")
Monthly = ("MONTHLY")
Quarter = ("QUARTER")
Semester = ("SEMESTER")
Yearly = ("YEARLY")
Enum
amountO valor do pagamento para cada ocorrência da recorrência.Decimal
branch *Agência bancáriaString
account *Conta bancáriaString
name *O nome completo ou razão socialString
taxId *CNPJ ou CPFString
bank * ISPB do bancoString
personType *LEGAL_PERSON , PERSONAL_PERSONString
number *número do contratoString
descriptiondescrição do contratoString
allowsNewAttemptsAfterExpiration*indica se terá retentativas de cobranças após a data de vencimentoBoolean
allowAutoSendingPaymentInstructions*indica se terá valor variável ou fixo da recorrência, sendo valor fixo a Celcoin já realiza o envio automaticamente. Caso seja variável, o recebedor sempre nos enviará o valor a ser cobrado a cada ciclo.Boolean
recurrencyMinAmountValor mínimo que o recebedor indica para o pagador, em casos de recorrências com valores variáveis. Exemplo conta de luz, recebedor diz que o mínimo para o pagador customizar o valor será de R$30,00. Então o Pagador só poderá customizar o valor máximo que seja maior ou igual a R$30,00.Decimal

Objeto journey


CampoDescriçãoTipo
status*Status da jornada
Enum(ACCEPTED,DENIED,PENDING,CANCELLING,CANCELLED)
Enum
type*Versão do payload
Enum ( ExternalInteration,QRCodeInteration,QRCodePaymentOpitionalInteration)
Enum
accepetedDateData em que foi aceita.string (ISO 8601)
denyDateData em que foi negada.string (ISO 8601)

Objeto Interval


CampoDescriçãoTipo
start*Início da recorrência.string (ISO 8601)
endFim da recorrência..string (ISO 8601)
frequencyType*Frequência da recorrência
Enum( WEEKLY,MONTHLY,QUARTER,SEMESTER,YEARLY)
Enum

Objeto CreditParty


CampoDescriçãoTipo
taxId*CNPJ do Recebedorstring
name*Nome do recebedorstring
bank*ISPB do banco recebedorstring

Objeto do DebitParty


CampoDescriçãoTipo
personType*Tipo de pessoa pagador
ENUM(NATURAL_PERSON,LEGAL_PERSON)
Enum
taxId*CPF/CNPJ do pagadorstring
bank*ISPB do banco string
account*numero da contastring
branchAgênciastring
stateCodeCódigo de município do usuário pagador no IBGE.string

Objeto debtor


CampoDescriçãoTipo
personType*Tipo de pessoa do devedor
ENUM(NATURAL_PERSON,LEGAL_PERSON)
Enum
taxId*CPF/CNPJ do devedorstring
nome*nome do devedorstring

Objeto contract


CampoDescriçãoTipo
number*Número do contrato vinculado.string
descriptiondescrição do contratostring

Objeto cancellation


CampoDescriçãoTipo
id*ID do cancelamento.string
cancelledByQuem cancelou(credit = recebedor , debit = pagador)
Enum( CREDIT,DEBIT)
Enum
personTypeTipo da pessoa que cancelou (PF ou PJ)
ENUM(NATURAL_PERSON,LEGAL_PERSON)
Enum
taxIdCPF/CNPJ de quem canceloustring
reasonMotivo do cancelamento
ENUM(ACCOUNT_CANCELLATION,
CREDIT_PARTY_END_OF_ACTIVITIES,PAYER_DEAD,CONFIRMATION_ERROR,FRAUD,
CONFIRMED_IN_OTHER_JOURNEY,CREDIT_PARTY_REQUEST,DEBIT_PARTY_REQUEST,TIMEOUT)
Enum
dateData do cancelamentostring (ISO 8601)




❗️

Esta documentação ainda está sujeita a atualizações. Quando tivermos a versão final publicada, este aviso será removido de todas as páginas.