Criar Jornada de Pagamento
Características Principais
- Criação de Sessão: Cria uma nova sessão de jornada ITP para payments
- Seleção de Jornada: Suporta especificação de jornada customizada ou uso da jornada padrão configurada
- URL de Redirecionamento: Gera uma URL única contendo todos os parâmetros necessários para iniciar a jornada
Endpoint
POST /open-keys/itp/api/v2/payments/v4/journeys-sessions
Autenticação
A API requer autenticação OAuth2 utilizando o fluxo de Client Credentials
Permissões Requeridas
app: Permissão para integrações diretas via APIjourney: Permissão para acessar jornadas
Headers Obrigatórios
Authorization: Bearer {access_token}
Content-Type: application/json
Estrutura da Requisição
Payload Completo
{
"journeyId": "payments-fido",
"paymentInitiationData": {
"loggedUser": {
"document": {
"identification": "12345678909",
"rel": "CPF"
}
},
"creditor": {
"cpfCnpj": "58764789000137",
"personType": "PESSOA_JURIDICA",
"name": "Marco Antonio de Brito"
},
"payment": {
"type": "PIX",
"date": "{current_date}",
"currency": "BRL",
"amount": "1.00",
"details": {
"localInstrument": "DICT",
"proxy": "[email protected]",
"creditorAccount": {
"accountType": "CACC",
"ispb": "12345678",
"issuer": "1774",
"number": "1234567890"
}
}
},
"remittanceInformation": ""
},
"redirectUrl": "http://localhost:8080/callback",
"tags": {
"tag1": "123456",
},
"settings": [
{
"key": "JOURNEY_RULES",
"value": [
{
"path": "paymentInitiationData.loggedUser.document.identification",
"optional": true,
"editable": true
},
{
"path": "brandId",
"optional": true,
"editable": true
},
{
"path": "paymentInitiationData.payment.amount",
"optional": false,
"editable": false
},
{
"path": "paymentInitiationData.remittanceInformation",
"optional": true,
"editable": false
},
{
"path": "paymentInitiationData.payment.date",
"optional": true,
"editable": true
},
{
"path": "paymentInitiationData.payment.schedule",
"optional": true,
"editable": false
}
]
}
]
}Campos da Requisição
Nível Raiz
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
journeyId | String | Não | ID da jornada a ser utilizada. Se não informado ou igual a "default", será utilizada a jornada padrão configurada na aplicação através da setting JOURNEY_DEFAULT_ALIAS ou a variável de ambiente JOURNEY_DEFAULT_ALIAS. Máximo 36 caracteres. |
paymentInitiationData | Object | Sim | Dados de iniciação de pagamento, incluindo usuário logado, credor e detalhes do pagamento. |
redirectUrl | String (URL) | Não | URL de redirecionamento após o fluxo da jornada. Deve ser uma das URLs cadastradas e autorizadas para a aplicação. Se não informada, o usuário não será redirecionado após a conclusão da jornada. |
settings | Array | Não | Lista de configurações customizadas da jornada. Permite sobrescrever ou adicionar configurações específicas da jornada. |
tags | Object | Não | Tags customizadas para identificação e organização da sessão. Útil para rastreamento e filtragem de sessões. |
Objeto paymentInitiationData
paymentInitiationData| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
loggedUser | Object | Sim | Dados do usuário logado, incluindo documento (CPF). |
creditor | Object | Sim | Dados do credor, incluindo CPF/CNPJ, tipo de pessoa e nome. |
payment | Object | Sim | Detalhes do pagamento, incluindo tipo, data, moeda, valor e detalhes específicos. |
remittanceInformation | String | Não | Informações adicionais sobre o pagamento. |
Array settings
settingsArray de objetos contendo configurações da jornada.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
key | String | Sim | Chave da configuração. Valores comuns: "JOURNEY_RULES" (regras da jornada). |
value | Any | Sim | Valor da configuração. Tipo depende da chave especificada. Para JOURNEY_RULES, deve ser um array de objetos com regras. |
Fluxo de Implementação
Passo a Passo
-
Obtenção do Token OAuth2
- Obtenha um token de acesso válido com permissões
appejourney - O token deve conter o claim
azpcom oclientIdda aplicação
- Obtenha um token de acesso válido com permissões
-
Preparação da Requisição
- Defina o
journeyId - Configure
paymentInitiationDatacom usuário, credor e detalhes do pagamento - Configure
redirectUrl(se necessário) - Adicione
settingsetagsconforme necessário
- Defina o
-
Envio da Requisição
- Envie a requisição POST para o endpoint
- Inclua o token no header
Authorization
-
Processamento da Resposta
- A sessão será criada com status
PENDING - A resposta contém a
journeySessionUrlpara redirecionamento - Armazene o
idda sessão para consultas futuras
- A sessão será criada com status
-
Redirecionamento do Usuário
- Utilize a
journeySessionUrlretornada para redirecionar o usuário - O usuário será direcionado para a jornada de autorização
- Utilize a
-
Monitoramento da Sessão
- Monitore o status da sessão através do endpoint
GET /open-keys/itp/api/v2/payments/v4/journeys-sessions/{id} - A sessão será atualizada conforme o progresso do fluxo
- Monitore o status da sessão através do endpoint
Resposta da API
Sucesso (200 OK)
{
"journeyId": "{journeyId}",
"paymentInitiationApi": "PAYMENTS_V4",
"applicationId": "{applicationId}",
"tokenId": "{tokenId}",
"journeySessionStageId": "{journeySessionStageId}",
"journeySessionUrl": "{url}",
"status": "PENDING",
"id": "{id}",
"..."
}Campos Importantes da Resposta
| Campo | Tipo | Descrição |
|---|---|---|
id | String | Identificador único da sessão de jornada (UUID) |
journeySessionUrl | String | URL completa para redirecionar o usuário à jornada. Contém todos os parâmetros necessários (journeyId, api, id, token) |
status | String | Status atual da sessão. Inicialmente PENDING. Valores possíveis: PENDING, AWAITING_AUTHORISATION, AUTHORISED, REJECTED, CANCELLED, EXPIRED, FINISHED |
paymentInitiationApi | String | API de iniciação de pagamento associada. Sempre "PAYMENTS_V4" para este endpoint |
tokenId | String | ID do token opaco gerado para a sessão. Utilizado para autenticação na jornada |
Tratamento de Erros
400 Bad Request
Causa: Dados da requisição inválidos ou mal formatados.
{
"error": "Validation Error",
"message": "Campo obrigatório ausente"
}Solução: Verifique o formato dos dados enviados e os requisitos de validação.
401 Unauthorized
Causa: Token de acesso inválido, expirado ou ausente.
{
"error": "Unauthorized",
"message": "Token inválido ou expirado"
}Solução:
- Verifique se o token está presente no header
Authorization - Obtenha um novo token se o atual estiver expirado
- Verifique se o token possui as permissões necessárias
403 Forbidden
Causa: Aplicação não encontrada, jornada não encontrada ou redirectUrl não autorizada.
{
"error": "Forbidden",
"message": "application not found"
}ou
{
"error": "Forbidden",
"message": "journey not found"
}ou
{
"error": "Forbidden",
"message": "this redirectUrl is not allowed for this application."
}Solução:
- Verifique se a aplicação existe e está ativa
- Verifique se o
journeyIdinformado existe e está disponível - Verifique se a
redirectUrlestá cadastrada nas URLs permitidas da aplicação
422 Unprocessable Entity
Causa: Validação de schema falhou.
{
"error": "Unprocessable Entity",
"message": "Validation failed"
}Solução: Verifique os detalhes do erro e corrija os campos indicados.
500 Internal Server Error
Causa: Erro interno do servidor.
{
"error": "Internal Server Error",
"message": "An unexpected error occurred"
}Solução: Tente novamente mais tarde. Se o problema persistir, entre em contato com o suporte.
Status da Sessão
- PENDING: Sessão criada, aguardando início do fluxo
- AWAITING_AUTHORISATION: Aguardando autorização do usuário na detentora
- AUTHORISED: Consentimento autorizado pelo usuário
- REJECTED: Consentimento rejeitado pelo usuário
- CANCELLED: Sessão cancelada
- EXPIRED: Sessão expirada
- FINISHED: Fluxo concluído com sucesso
Integração com Outros Endpoints
Após criar a sessão de jornada, você pode:
- Consultar a Sessão:
GET /open-keys/itp/api/v2/payments/v4/journeys-sessions/{id} - Listar Sessões:
GET /open-keys/itp/api/v2/payments/v4/journeys-sessions
Updated about 1 hour ago