Criar Consentimento Recorrente

Visão Geral

O consentimento recorrente é o objeto central do Pix Automático. Ele define as regras de toda a série de pagamentos futuros: quem é o recebedor, a periodicidade, os limites de valor e a vigência. Após criado, retorna uma authorizationUrl para que o usuário autorize a cobrança recorrente na sua instituição detentora.

Cada consentimento corresponde a uma série de pagamentos recorrentes (e não a um único pagamento como no Pix Instantâneo).


Criar Consentimento

POST /baas/v1/open/itp/automatic-payments/payment-initiation

Autenticação: Bearer Token (application_token)

Request

POST {{base_url}}/baas/v1/open/itp/automatic-payments/payment-initiation
Authorization: Bearer {{application_token}}
Content-Type: application/json
{
  "brandId": "66f4d9e296f18bc4606e1618",
  "redirectUrl": "http://localhost:8080/callback",
  "data": {
    "startDateTime": "2026-05-22T00:00:00Z",
    "creditors": [
      {
        "name": "João Silva",
        "cpfCnpj": "11111111000111",
        "personType": "PESSOA_JURIDICA"
      }
    ],
    "loggedUser": {
      "document": {
        "identification": "12345678909",
        "rel": "CPF"
      }
    },
    "recurringConfiguration": {
      "automatic": {
        "contractId": "XE00038166201907261559y6j6",
        "interval": "SEMANAL",
        "contractDebtor": {
          "name": "Policarpo Quaresma",
          "document": {
            "identification": "11111111111111",
            "rel": "CNPJ"
          }
        },
        "isRetryAccepted": false,
        "referenceStartDate": "2026-05-22",
        "maximumVariableAmount": "500.00",
        "minimumVariableAmount": "0.11"
      }
    }
  }
}

Campos do Request

Nível raiz

CampoTipoObrigatórioDescrição
brandIdstringID da instituição detentora de conta do pagador. Obtido via Participantes
redirectUrlstringURL de callback para retorno após autorização do consentimento

data

CampoTipoObrigatórioDescrição
startDateTimestring (ISO 8601)Data e hora de início da vigência do consentimento. Mínimo D+2 a partir da criação

data.creditors[]

CampoTipoObrigatórioDescrição
namestringNome completo do recebedor
cpfCnpjstringCPF (11 dígitos) ou CNPJ (14 dígitos) do recebedor
personTypestringPESSOA_NATURAL ou PESSOA_JURIDICA

data.loggedUser.document

CampoTipoObrigatórioDescrição
identificationstringCPF do usuário pagador autenticado (somente números)
relstringTipo do documento. Fixo: CPF

data.recurringConfiguration.automatic

CampoTipoObrigatórioDescrição
contractIdstringIdentificador do contrato entre recebedor e pagador. Definido pelo recebedor
intervalstring (enum)Periodicidade dos pagamentos. Ver tabela de intervalos abaixo
isRetryAcceptedbooleantrue habilita retentativas automáticas intradia e extradia em caso de falha
referenceStartDatestring (YYYY-MM-DD)Data de início do primeiro ciclo de pagamento. Mínimo D+2
fixedAmountstringValor fixo por cobrança em BRL (ex: "150.00"). Exclusivo com os campos de variável
maximumVariableAmountstringValor máximo por cobrança quando variável (ex: "500.00")
minimumVariableAmountstringValor mínimo por cobrança quando variável (ex: "0.11")

data.recurringConfiguration.automatic.contractDebtor (opcional)

Informa o devedor do contrato quando este tem titularidade diferente do usuário pagador (ex: empresa pagando por um colaborador).

CampoTipoObrigatórioDescrição
namestringNome do devedor do contrato
document.identificationstringCPF ou CNPJ do devedor
document.relstringCPF ou CNPJ

Intervalos de Pagamento (interval)

ValorDescriçãoRetentativa extradia (máx.)
DIARIOCobrança diária7 dias corridos
SEMANALCobrança semanal5 dias corridos
MENSALCobrança mensal7 dias corridos
SEMESTRALCobrança semestral7 dias corridos
ANUALCobrança anual7 dias corridos

Valor: Fixo vs. Variável

ModalidadeCampos utilizadosComportamento
FixofixedAmountTodo pagamento tem o mesmo valor. minimumVariableAmount e maximumVariableAmount são ignorados
VariávelminimumVariableAmount + maximumVariableAmountCada pagamento pode ter valor diferente dentro da faixa autorizada

Os campos de variável e fixedAmount são mutuamente exclusivos. Enviar ambos causa 422.


Response — HTTP 200

{
  "id": "6a3d1e159c0f8d0011779569",
  "authorizationUrl": "https://api-openfinance.opb.bricks.demo.fsapps.io/orgs/bricks/auth?client_id=CSYrcp9dzeRdUWbuXLFiF&request_uri=urn%3Aietf%3Aparams%3Aoauth%3Arequest_uri%3A82A3zcrbiqhoh15jCL78A",
  "paymentInitiationApi": "AUTOMATIC_PAYMENTS_V2",
  "ofConsent": {
    "consentId": "urn:bricks-demo:f4b0c161-f5f6-4adb-ae63-21a2160238d0",
    "status": "AWAITING_AUTHORISATION",
    "recurringConsentId": "urn:bricks-demo:f4b0c161-f5f6-4adb-ae63-21a2160238d0"
  },
  "createdAt": "2026-06-25T12:24:53.798Z"
}
CampoTipoDescrição
idstringID da payment initiation — usar como itp_payment_id nas chamadas subsequentes
authorizationUrlstringURL para onde o usuário deve ser redirecionado para autorizar o consentimento
paymentInitiationApistringSempre AUTOMATIC_PAYMENTS_V2 para este produto
ofConsent.consentIdstringURN do consentimento recorrente na detentora
ofConsent.statusstringStatus inicial: AWAITING_AUTHORISATION

Códigos de Retorno

HTTPDescrição
200 OKConsentimento criado com sucesso
400 Bad RequestParâmetros ausentes ou malformados
401 UnauthorizedToken inválido ou expirado
422 Unprocessable EntityData inválida, conflito entre campos de valor, brandId inativo

Pontos de Atenção

⚠️

startDateTime e referenceStartDate — regra D+2: Ambas as datas devem ser pelo menos 2 dias úteis após a criação do consentimento. Datas no mesmo dia ou D+1 são rejeitadas com 422. Gere sempre essas datas dinamicamente.

⚠️

fixedAmount vs. variável: São mutuamente exclusivos. Nunca envie fixedAmount junto com minimumVariableAmount ou maximumVariableAmount no mesmo request.

⚠️

isRetryAccepted: false: Desabilita completamente as retentativas automáticas. Se o pagamento falhar, nenhuma nova tentativa será realizada pela detentora. Use true para habilitar o fluxo de tentativas intradia e extradia.

⚠️

contractId: É o identificador do contrato do ponto de vista do recebedor. Deve ser único por relação recebedor-pagador. Contratos duplicados para o mesmo par podem causar conflito no consentimento.

⚠️

contractDebtorloggedUser: O devedor do contrato pode ser uma empresa diferente do usuário pagador autenticado. Esse cenário é comum em cobranças B2B onde a empresa paga por um serviço, mas quem autoriza na detentora é um funcionário com acesso.

⚠️

Guarde o id retornado: O id da payment initiation é necessário para executar pagamentos (/payments), consultar e cancelar o consentimento.