Fluxo de Iniciação de Pagamentos

Quando o desenvolvedor deseja testar as APIs destinadas a Informações de Conta, é necessário criar um aplicativo em seu painel do tipo de produto BRAZIL PISP

  1. O cliente consente com seu parceiro que gostaria de compartilhar suas informações bancárias e escolhe o PSP
  2. O desenvolvedor contata o PSP e envia uma solicitação de consentimento de conta

    • O PSP verifica se o Id do aplicativo do desenvolvedor (client_id) tem as autorizações necessárias
    • PSP usa as informações e cria recursos de consentimento e inicializa o processo, alterando o status para AwaitingAuthorisation
  3. O PSP responde ao desenvolvedor com uma resposta de consentimento, que também instrui o desenvolvedor sobre como proceder com a autenticação e autorização
  4. O desenvolvedor redireciona o cliente do PSP para o site do PSP para autenticação e confirmação de consentimento
  5. Após as verificações necessárias, o PSP envia o token de acesso ao desenvolvedor, que por sua parte, o utiliza para recuperar as informações da conta do Usuário

Teste através do Portal do Desenvolvedor

Os seguintes passos devem ser realizados para a Iniciação de Pagamentos

1. Selecionar APP

Clique Test para o APP selecionado, sendo redirecionado ao Swagger UI

select app test

2. Autenticação do Desenvolvedor

Primeiro passo no fluxo é a autenticação do App-Id do desenvolvedor. Clique no botão Autorizar e preencha o APP secret para obter o token de acesso específico para o Desenvolvedor

swagger aisp
tpp authentication

3. Chamada de Solicitação de Consentimento para Informações de Conta

O bearer token obtido pelo passo anterior deve ser preenchido no Endpoint de Iniciação de Pagamentos - POST /payments/v1/consents

payments consent

Como exemplo, use a chave privada abaixo para assinar a solicitação (corresponde aos JWKs fornecidos em App creation), cole no campo application signing private key acima do botão Autorizar

-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCDSUWD3VyDcGfB
hCP7sKCv15w2k/fptUxilGZsELw7hBlUk4iYib03iadEKNzPIlF+tGEX55Yu4IoJ
NldkLhDHHPTj6WhAxXPewMUeisG9QIPwd48mcG3pdIz5iKmaitA/dGIWpYH47I33
KOjOs9DFVl35FGjHts8fPye/qpovoAE/80Y8iXB1cU78BUhjFqpJ7iXNbR96iSgF
Dd1KuTW0eFbNAM14FFjhT7V3KBIAYwg3RpqYe9K0h48UN/oaxd7aHUQaCLJf4rbW
oYpcUHLr8VL2wpozXCxFLHyFWLninW2Wwi0xap/62U7R4RHnXPYLtATo5KWPS9AB
O4vrjNXnAgMBAAECggEAKVnQvWHhm7yx0W/vbX0Kf5gnqcEdWs0xy/L195+lyhEn
cU4uvezUXkPLHVrJgaxLgt8Jnd/hm845bAFjsTgZLL3gHFEN9yi6ADUzYRVPRG6n
n/voaLEMzXVaWdZDpVuHkBT2OC/VKjRH2stV2JUmcqFrY+Kbxhu8TRk1SddQTSNg
lQiMGOo1lVe0lo/su8A3yBVs+Ic/kdC4Na0xkTbgn7zYUcbNaYTd6p9eTAzAezF5
+Z0xsQNMPm8drt3bjTQzZH4+zb8ImzWH2lvJZryEs4QOQJkyLEuL7FR66XjrSYHZ
Y9fd5QEolWjwhlKCn81eVdhJk13Vq/7PiAXLz4Px8QKBgQDhDheQkra938nPSR8k
DwK5IGZJPoXGo0igM4qh96w5jqGiGniTWEMVzDqDqSzme5gxH7/cxaDNcaZOqSpO
RjJYv7XLyCkw8TuXJiNO5N62Flga38ycWZBR2SMABGmoOLa+m+w57y9vfJiduKXi
IDrJ308trQSnVe7ChB+xvESSkwKBgQCVVodv5Z8GbU6tYlR0AJOWkzRok4O1fp/g
Q4sHjcfVfvDGIHLbMjfoO3zpof2xgm+/BMjzkiesatjEbJjQuarOpUj+rp3SHbEI
OfXQezcodSbmuaGMxszRXsMT6BhO7Hw26JCHFBueimM+ifn3OKkaf4DzXZ2OPK5j
5RHiGwuf3QKBgQCcyy+Zts2ALZixRNVgTuDrz2nT365d/MaNbjtIqoAfvYJYqK6W
oShj2Fxv+/5fOX6HwwHtsvZcC7D9Hpht3jQXZsEmj3Y7NeX5YUW6InQTUi/h0UgB
KdkFXQ0oZuqhm5md5I3Isx5OQvUk9U8E4sVyfZTxUphqaNEmTdyy/GKd5wKBgAz0
TZlaTNos3zdRIUxSxHq6WEB+E13KFypIEaZdGSme8lntdKkpCQp/Jo3JvI0KaJEk
ZB4k3oYpWpZnaTYp9PQqCFP3Z79TTgkNphIorhc3WmGHVsk0cY3z724povotr3S/
5dGh3+d3z7YcF+/nHVwsFU6HH2S4RNRriYqYmACNAoGBALtl7uReDG1CrRwP6UzU
SRfPiHu6kj1OOMzXD5gkIphkxFd6pD7bKS22W6zEU+y3yQDyenO/TgYB1wqJaXMH
f2pv/4mSmTT64sPqwp/ersa8Lfv/iO1cabiytuKxrrYgOc/QdzAx0obJlOpz+ntS
B5+JIYmrBX0iKq4JCATMDbFk
-----END PRIVATE KEY-----
  • O valor exclusivo deve ser fornecido para o campo x-idempotency-key
  • Utilize o payload abaixo para enviar requisições de iniciação de pagamentos.
  • Substitua o valor da data de pagamento por uma data futura. Substitua também os valores de CNPJ e CPF com base nos detalhes do usuário da PSU
{
  "data": {
    "businessEntity": {
      "document": {
        "identification": "11111111111111",
        "rel": "CNPJ"
      }
    },
    "loggedUser": {
      "document": {
        "identification": "11111111111",
        "rel": "CPF"
      }
    },
    "creditor": {
      "name": "Marco Antonio de Brito",
      "cpfCnpj": "58764789000137",
      "personType": "PESSOA_NATURAL"
    },
    "payment": {
      "date": "2025-03-01",
      "amount": "10.12",
      "currency": "BRL",
      "details": {
        "proxy": "1f212beb-d25c-44c5-aca7-3a046d921d46",
        "localInstrument": "DICT",
        "creditorAccount": {
          "number": "1234567890",
          "accountType": "CACC",
          "ispb": "12345678",
          "issuer": "1774"
        }
      },
      "type": "PIX",
      "ibgeTownCode": "5300108"
    }
  }
}

Se a solicitação for bem sucedida, o desenvolvedor receberá a seguinte resposta.A resposta do servidor será exibida no formato JWT.

res body

Você pode analisar esse token JWT no site do JWT e visualizar a resposta JSON e obter o ID de consentimento.

jwt verify

4. Autenticação de Usuário

Clique em Autorizar no topo para iniciar a autenticação do Usuário.

psu authentication

O botão Authorizar é utilizado para autenticar o Usuário. Após login e captura de consentimento, o token do Usuário já estará disponível para acesso a informações de conta.

5. Consultar consentimento para iniciação de pagamento

GET /payments/v1/consents/{consentId}

  1. Insira o valor consentId obtido do endpoint de criação de consentimento.
  2. A resposta do servidor será exibida como JWT.
consent response
  1. Você pode analisar este JWT e o status de consentimento deve ser 'AUTORIZADO'.
jwt status verify

6. Chamadas para a API de Pagamentos

O desenvolvedor pode usar o access_token do Usuário para obter detalhes sobre o status do pagamento. Um pagamento pode ter um ou mais autorizadores. Com access_token, o PSIP pode recuperar o status de todas as autorizações. Ele também pode obter o status do pagamento em si.

Submit payment instruction

POST /payments/v1/pix/payments

Use o abaixo Payload

{
  "data": {
    "endToEndId": "E00000000202301241741qiWXx73Jy67",
    "localInstrument": "DICT",
    "payment": {
      "amount": "10.12",
      "currency": "BRL"
    },
    "creditorAccount": {
      "ispb": "12345678",
      "issuer": "1774",
      "number": "1234567890",
      "accountType": "CACC"
    },
    "remittanceInformation": "Pagamento da nota XPTO035-002.",
    "proxy": "1f212beb-d25c-44c5-aca7-3a046d921d46",
    "cnpjInitiator": "50685362000135",
    "ibgeTownCode": "5300108"
  }
}

A resposta do servidor será exibida

Você pode analisar esta resposta JWT e obter o PaymentId, ConsentId.