Esta sección presenta ejemplos de cómo consumir las APIs de pago disponibles en la plataforma de Redeban, con el fin de llevar a cabo los procesos de iniciación y envío de pagos.
Prerrequisitos para la invocación de las APIs
• El TPP debe estar registrado en la plataforma y debe contar con los certificados de red (network) y de firma (signing) emitidos por el directorio de participantes de Open Banking de Redeban.
• El TPP debe tener el identificador Client ID proporcionado después del proceso de registro.
• El participante debe usar un certificado de red para conectarse a todos los endpoints de seguridad y API mediante una conexión TLS mutua. Debe usar un certificado de firma para firmar la payload de la solicitud para todos los endpoints de la API POST, utilizando el encabezado de solicitud x-jws-signature.
1. Configurar las credenciales del token de acceso a las APIs
Solicitud POST para la configuración : Esta solicitud utiliza el flujo client credentials grant type de OAuth 2.0 para obtener un token de acceso.
curl --location 'https://api.snd.redebanopenfinance.com/51/token.oauth2/v1' \
--key ./{network.key} \
--cert ./{network.pem} \
--header 'DPoP: eyJ0eXAiOiJkcG9wK2p3dCIsImFsZyI6IlBTMjU2IiwiandrIjp7Imt0eSI6IlJTQSIsIng1dCNTMjU2IjoiQkNiamg3clZpTHZHczhqODZYbDRtWHNpQlJKT1U2UGZUM21xZ3FyeXRBRSIsIm5iZiI6MTczMTQxOTQ3NywiZSI6IkFRQUIiLCJ1c2UiOiJzaWciLCJraWQiOiJyc2Ffa2V5IiwieDVjIjpbIk1JSURnRENDQW1pZ0F3SUJBZ0lHQVpNZ3BKZWFNQTBHQ1NxR1NJYjNEUUVCQlFVQU1Id3hEakFNQmdOVkJBTU1CVVpzZFdabU1SSXdFQVlEVlFRTERBbERZWFFnU0c5MWMyVXhIREFhQmdOVkJBb01FME5oYldKeWFXUm5aU0JWYm1sMlpYSnpkSGt4RWpBUUJnTlZCQWNNQ1VOaGJXSnlhV1JuWlRFWE1CVUdBMVVFQ0F3T1EyRnRZbkpwWkdkbGMyaHBjbVV4Q3pBSkJnTlZCQVlUQWtkQ01CNFhEVEkwTVRFeE1qRXpOVEV4TjFvWERUTTBNVEV4TURFek5URXhOMW93ZFRFT01Bd0dBMVVFQXd3RlIybHVaMlV4RXpBUkJnTlZCQXNNQ2tSdlp5QkxaVzV1Wld3eEdqQVlCZ05WQkFvTUVVOTRabTl5WkNCVmJtbDJaWEp6YVhSNU1ROHdEUVlEVlFRSERBWlBlR1p2Y21ReEZEQVNCZ05WQkFnTUMwOTRabTl5WkhOb2FYSmxNUXN3Q1FZRFZRUUdFd0pIUWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTHh0NFlNYWxLRnFxQ3ZobGRtK0FuWWJrMlRjOHZyVzdUazg2bHpJaHN3YXk4WGpwRWN5NTJpWHcvVWpYN01wZ2Nsc2RQKytjY3VTR2VhelpqZFBtblIxQXdhY0NWNm5JbklmeDJTTkhWMXhGV1d5cWZYR0JGN2ZibHZCMTJMWnVLeXRCK28yWFJ4UkI1elRkWE16c2NrSHp0Q0hoUm9ENzRoSmgwUjdMQTRXZ1VjU3FETjQ1d1d0NGZEdTdQR1hGbDN3b0lYT0pZYkpHVGN0RU0yaHorUElFNmRONlR3Y3FqczhXL0lBVmN6dmxVblpXbVNnejh5S05YWWN4TCtnRGlvdk5EY3ZsdVpiMjBoYzVSeHhDNmMzVUlCMTJDUGQxb1ErK1VWVjRsWGowSWdsUWs1Mzd3bE1WQTYyNUJuby9FeC9ZaVh1aW9zaVVyTHVJMk4rSmhNQ0F3RUFBYU1QTUEwd0N3WURWUjBQQkFRREFnZUFNQTBHQ1NxR1NJYjNEUUVCQlFVQUE0SUJBUUJONHc1dmJoZmpTZUFiZHNNbjY1UkVGRHFwQmV1WEFidXRCUWJSeFpzSkZEekhSZkxkUUNUcGpRT0FSWWxQZkNwWnVCRVpuS2lsWldoQmVPd1pLcXlwQTB3aXpjTE5oVEgvUXBPdCt2ZzFoQnJ5M0RSWGlibnRDSDY4TnlLZmVNNS9uTVBRdWpKeS9QUzFwb2crR25zNnFpbU5GN1pKeHRvY0pLaWJiNHkyaG5uK1NDZHpTSkJRYnE4UTB2alZZQkhlU2lDMGZ2TDRxYkJNZmQ3QWhzbm5wQ3lyMUNHM1ZTTy8vTXFUQjUvMTJ3NlBnTnlIWjZScjNpZjEwNFpPWnA3UzVFcGgyRGVzRERtVENnL3E5NWJLcnpNSHJrSURtQkVKZ25jQ05WSTdxUXVueTJpZDI2VERCTFNsWEw4WTd2NHZ3Y3hqcmdjTEthV0ZFVW9wekRwTyJdLCJleHAiOjIwNDY3Nzk0NzcsIm4iOiJ2RzNoZ3hxVW9XcW9LLUdWMmI0Q2RodVRaTnp5LXRidE9UenFYTWlHekJyTHhlT2tSekxuYUpmRDlTTmZzeW1CeVd4MF83NXh5NUlaNXJObU4wLWFkSFVEQnB3SlhxY2ljaF9IWkkwZFhYRVZaYktwOWNZRVh0OXVXOEhYWXRtNHJLMEg2alpkSEZFSG5OTjFjek94eVFmTzBJZUZHZ1B2aUVtSFJIc3NEaGFCUnhLb00zam5CYTNoOE83czhaY1dYZkNnaGM0bGhza1pOeTBRemFIUDQ4Z1RwMDNwUEJ5cU96eGI4Z0JWek8tVlNkbGFaS0RQeklvMWRoekV2NkFPS2k4ME55LVc1bHZiU0Z6bEhIRUxwemRRZ0hYWUk5M1doRDc1UlZYaVZlUFFpQ1ZDVG5mdkNVeFVEcmJrR2VqOFRIOWlKZTZLaXlKU3N1NGpZMzRtRXcifX0.eyJodG0iOiJQT1NUIiwiaHR1IjoiaHR0cHM6Ly9hcGkuc2l0LnJlZGViYW5vcGVuZmluYW5jZS5jb20vODA3L3Rva2VuLm9hdXRoMi92MSIsImlhdCI6MTc1NDA0OTUwMywianRpIjoickFPanlRVU5pUWRnVmk1QyJ9.ff4Pkc0zjuhy0a35-JMh0SXH_8RLkuqSi9ukZjmB2N8U5PbnvbzwtD1oyTsdKAcVzS5q1oUca6vQm8Gejar1KeNVaAtA1neS9uXCiRpatbEGFbT-Uw8t_T5atqlPbpUDT1KWs56FDvkjyikOy9FPgo2ozS3lAiShyxuqqDxEJ8RwO2bVvDROCW3vLi_70r-aBFR9QSaUheOnTJYRCqIZZDhFYKPgwEu5SHg0g1tV7C9q9r-QpXpFRC8LzTXEAY8vxB2z6thJ8kJQqrGcxVzeGfnEEYUdCLQRW_7VfEkya3QG3q3k68370nyvwNBa63gncgMKJDDXmPiJC87UwVh-Lw' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=SC-2b265e7b-ed19-4309-84de-b96cf7d2d483' \
--data-urlencode 'client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer' \
--data-urlencode 'client_assertion=eyJhbGciOiJQUzI1NiIsImtpZCI6Ik5iMDhpWlZ6NkZtZFJpVHNSMlpydVhHMDdJVT0ifQ.eyJqdGkiOiJteUpXVElkMDAxIiwic3ViIjoiU0MtMmIyNjVlN2ItZWQxOS00MzA5LTg0ZGUtYjk2Y2Y3ZDJkNDgzIiwiaXNzIjoiU0MtMmIyNjVlN2ItZWQxOS00MzA5LTg0ZGUtYjk2Y2Y3ZDJkNDgzIiwiYXVkIjoiaHR0cHM6Ly9hdXRoLnN0YWdlLnJlZGViYW5vcGVuZmluYW5jZS5jb20iLCJpYXQiOjE3MzQ2OTQxMzksImV4cCI6MTc2NzE4NTgyNn0.tN1dvubrtzPAwq0tQZHmPR4A06OYQHVTIo-psABng-_C5AusSNrDhZJE1c92BGV7UV3iocRPu5nANTrsMWmTxqSYw160pB88T-fE6tpPf2qZjwWLR29_nOYh8Wsr3Vb8RscZpOeV2Lf5xIGy60J2Wih7hiNteNOVzhb03eUtf4Z-Gfav8S7mzKjwzuhi02sTkQjq2b71tV-lJnprhd4s-gnwgx80QYTbyqnK4xKsKCXj4SapQ65sjKBxJvCKi_9m_gIRu_T6SYKA-8iH3b1EVCi443zKD-g3UZJUMIJG7DBIk_yyrULKXqslR139DA0lyvmAILrq4AtwOLNkMFpigQ' \
--data-urlencode 'scope=payments'
Parámetros de la solicitud POST:
| Parámetro | Valor ejemplo | Descripción |
|---|---|---|
| grant_type | client_credentials | El tipo de autorización (grant type) que se solicita. |
| Bank (parámetro en la ruta URL) | 51 | Identificador del banco proveedor. |
| scope | payments | Scope genérico para operaciones de pago. El parámetro "scope" de OAuth especifica los datos financieros y los permisos exactos (como el acceso a la cuenta o el inicio de pago) que un proveedor externo solicita a un banco. |
| Client_id | SC-2b265e7b-ed19-4309-84de-b96cf7d2d483 | ID de cliente (TPP) registrado en la plataforma APIs de Redeban. |
| client_assertion_type | urn:ietf:params:oauth:client-assertion-type:jwt-bearer' | Tipo de afirmación estándar de OAuth2 |
| client_assertion | La afirmación de cliente usando JWT | Estándar OAuth2 usado para el método de autenticación del cliente private_key_jwt. La aserción de cliente con clave privada JWT es un método de autenticación de cliente OAuth 2.0 donde el cliente prueba su identidad firmando un JWT (JSON Web Token) con su clave privada y presentándolo al servidor de autorización. Consulte: https://developer.redebanopenfinance.com/page/client_assertion#/. |
| DPoP | tipo de token de acceso | Una extensión de OAuth 2.0 que mejora la seguridad de los tokens vinculando tokens de acceso a un cliente específico, evitando el uso no autorizado de tokens filtrados o robados. Lo logra exigiendo a los clientes que demuestren criptográficamente que poseen la clave privada asociada con la clave pública utilizada para generar el token. El cliente crea un par de claves RSA/EC DPoP y, para cada solicitud de token o solicitud de recurso, el cliente crea un JWT de prueba DPoP que se firma utilizando la clave DPoP privada y el encabezado incluye la clave pública (jwk) con otras afirmaciones como htm, htu, iat, jti, etc. Consulte el estándar definido en https://developer.redebanopenfinance.com/page/dpop#/ . |
Respuesta del POST para la configuración: Respuesta del endpoint al utilizar el flujo client credentials grant type de OAuth 2.0.
{
"access_token": "2YDTb98f14kP91Z-3jOk1gFkhPp4iY8WysujkakaTUc",
"token_type": "DPoP",
"expires_in": 3600,
"scope": "payments"
}
2. Configurar la solicitud de consentimiento de la orden de pago
Esta es la primera API que un TPP debe invocar para crear el consentimiento de una orden de pago, enviando una solicitud POST al siguiente endpoint: /{BANK}/domestic-payment-consents/v1
Esta solicitud permite al TPP registrar en la plataforma de Redeban una copia del consentimiento establecido entre el cliente y el TPP, para que posteriormente el cliente lo autorice.
Una vez que el consentimiento se ha creado correctamente, el TPP puede utilizar el Consent ID generado para consultar su estado mediante la siguiente solicitud: GET /{BANK}/domestic-payment-consents/v1/{CONSENTID}.
Esta API requiere que se reciba un token de acceso mediante la concesión de credenciales del cliente como en el paso anterior.
Solicitud POST para la creación del consentimiento:
curl --location 'https://api.snd.redebanopenfinance.com/51/domestic-payment-consents/v1' \
--header 'Content-Type: application/json' \
--header 'Authorization: DPoP KLUP74YOE_tbFfi6iCAEhMQnxnIKrZzxOEQYmLon-Mc' \
--header 'x-idempotency-key: 3' \
--header 'x-jws-signature: eyJodHRwOlwvXC9vcGVuYmFua2luZy5vcmcudWtcL2lhdCI6MTc1MTYyOTcxOCwiaHR0cDpcL1wvb3BlbmJhbmtpbmcub3JnLnVrXC90YW4iOiJvcGVuYmFua2luZy5vcmcudWsiLCJjcml0IjpbImh0dHA6XC9cL29wZW5iYW5raW5nLm9yZy51a1wvaWF0IiwiaHR0cDpcL1wvb3BlbmJhbmtpbmcub3JnLnVrXC90YW4iLCJodHRwOlwvXC9vcGVuYmFua2luZy5vcmcudWtcL2lzcyJdLCJraWQiOiJOYjA4aVpWejZGbWRSaVRzUjJacnVYRzA3SVU9IiwiY3R5IjoiYXBwbGljYXRpb25cL2pzb24iLCJ0eXAiOiJKT1NFIiwiaHR0cDpcL1wvb3BlbmJhbmtpbmcub3JnLnVrXC9pc3MiOiJPQi1mMWZkMTNhYS1kYTc5LTQyODUtOWM0Zi05MTk1MDU5Y2QzMWNcL1NDLTJiMjY1ZTdiLWVkMTktNDMwOS04NGRlLWI5NmNmN2QyZDQ4MyIsImFsZyI6IlBTMjU2In0..W3-8OjvVtAG52-_kXnIZ1Zf4QsnqTqZ24FuidmGdHXysxuMaLhDyZyTsI-u8YBs4o0toI6aT4XnxzkjTBKItUl0tTC1jB8nyKxFjzhQ-RYl5j7EW0BIWVhj7z5EiVY_XSq4rwZKJpMWxytouHJzOzraxJT28OZ3P5OyNjqLixKoK8V5pp-CcOjnPx5wGFDhQjFrccI4i9mrHQiNJAPMfwtzACNkfBPK0pibE0e2PQZ_l8OjQX2_BM28k1_U5KghlPB7TWQQm2i6z8V--6V_nRZCzwa8G5eW6c44V6VqLJ1dHSwtYZSZDzLo7mUcBXoxSGzTaMqgrsE5j3ttz8mcdKA' \
--header 'DPoP: eyJ0eXAiOiJkcG9wK2p3dCIsImFsZyI6IlBTMjU2IiwiandrIjp7Imt0eSI6IlJTQSIsIng1dCNTMjU2IjoiQkNiamg3clZpTHZHczhqODZYbDRtWHNpQlJKT1U2UGZUM21xZ3FyeXRBRSIsIm5iZiI6MTczMTQxOTQ3NywiZSI6IkFRQUIiLCJ1c2UiOiJzaWciLCJraWQiOiJyc2Ffa2V5IiwieDVjIjpbIk1JSURnRENDQW1pZ0F3SUJBZ0lHQVpNZ3BKZWFNQTBHQ1NxR1NJYjNEUUVCQlFVQU1Id3hEakFNQmdOVkJBTU1CVVpzZFdabU1SSXdFQVlEVlFRTERBbERZWFFnU0c5MWMyVXhIREFhQmdOVkJBb01FME5oYldKeWFXUm5aU0JWYm1sMlpYSnpkSGt4RWpBUUJnTlZCQWNNQ1VOaGJXSnlhV1JuWlRFWE1CVUdBMVVFQ0F3T1EyRnRZbkpwWkdkbGMyaHBjbVV4Q3pBSkJnTlZCQVlUQWtkQ01CNFhEVEkwTVRFeE1qRXpOVEV4TjFvWERUTTBNVEV4TURFek5URXhOMW93ZFRFT01Bd0dBMVVFQXd3RlIybHVaMlV4RXpBUkJnTlZCQXNNQ2tSdlp5QkxaVzV1Wld3eEdqQVlCZ05WQkFvTUVVOTRabTl5WkNCVmJtbDJaWEp6YVhSNU1ROHdEUVlEVlFRSERBWlBlR1p2Y21ReEZEQVNCZ05WQkFnTUMwOTRabTl5WkhOb2FYSmxNUXN3Q1FZRFZRUUdFd0pIUWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTHh0NFlNYWxLRnFxQ3ZobGRtK0FuWWJrMlRjOHZyVzdUazg2bHpJaHN3YXk4WGpwRWN5NTJpWHcvVWpYN01wZ2Nsc2RQKytjY3VTR2VhelpqZFBtblIxQXdhY0NWNm5JbklmeDJTTkhWMXhGV1d5cWZYR0JGN2ZibHZCMTJMWnVLeXRCK28yWFJ4UkI1elRkWE16c2NrSHp0Q0hoUm9ENzRoSmgwUjdMQTRXZ1VjU3FETjQ1d1d0NGZEdTdQR1hGbDN3b0lYT0pZYkpHVGN0RU0yaHorUElFNmRONlR3Y3FqczhXL0lBVmN6dmxVblpXbVNnejh5S05YWWN4TCtnRGlvdk5EY3ZsdVpiMjBoYzVSeHhDNmMzVUlCMTJDUGQxb1ErK1VWVjRsWGowSWdsUWs1Mzd3bE1WQTYyNUJuby9FeC9ZaVh1aW9zaVVyTHVJMk4rSmhNQ0F3RUFBYU1QTUEwd0N3WURWUjBQQkFRREFnZUFNQTBHQ1NxR1NJYjNEUUVCQlFVQUE0SUJBUUJONHc1dmJoZmpTZUFiZHNNbjY1UkVGRHFwQmV1WEFidXRCUWJSeFpzSkZEekhSZkxkUUNUcGpRT0FSWWxQZkNwWnVCRVpuS2lsWldoQmVPd1pLcXlwQTB3aXpjTE5oVEgvUXBPdCt2ZzFoQnJ5M0RSWGlibnRDSDY4TnlLZmVNNS9uTVBRdWpKeS9QUzFwb2crR25zNnFpbU5GN1pKeHRvY0pLaWJiNHkyaG5uK1NDZHpTSkJRYnE4UTB2alZZQkhlU2lDMGZ2TDRxYkJNZmQ3QWhzbm5wQ3lyMUNHM1ZTTy8vTXFUQjUvMTJ3NlBnTnlIWjZScjNpZjEwNFpPWnA3UzVFcGgyRGVzRERtVENnL3E5NWJLcnpNSHJrSURtQkVKZ25jQ05WSTdxUXVueTJpZDI2VERCTFNsWEw4WTd2NHZ3Y3hqcmdjTEthV0ZFVW9wekRwTyJdLCJleHAiOjIwNDY3Nzk0NzcsIm4iOiJ2RzNoZ3hxVW9XcW9LLUdWMmI0Q2RodVRaTnp5LXRidE9UenFYTWlHekJyTHhlT2tSekxuYUpmRDlTTmZzeW1CeVd4MF83NXh5NUlaNXJObU4wLWFkSFVEQnB3SlhxY2ljaF9IWkkwZFhYRVZaYktwOWNZRVh0OXVXOEhYWXRtNHJLMEg2alpkSEZFSG5OTjFjek94eVFmTzBJZUZHZ1B2aUVtSFJIc3NEaGFCUnhLb00zam5CYTNoOE83czhaY1dYZkNnaGM0bGhza1pOeTBRemFIUDQ4Z1RwMDNwUEJ5cU96eGI4Z0JWek8tVlNkbGFaS0RQeklvMWRoekV2NkFPS2k4ME55LVc1bHZiU0Z6bEhIRUxwemRRZ0hYWUk5M1doRDc1UlZYaVZlUFFpQ1ZDVG5mdkNVeFVEcmJrR2VqOFRIOWlKZTZLaXlKU3N1NGpZMzRtRXcifX0.eyJodG0iOiJQT1NUIiwiaHR1IjoiaHR0cHM6Ly9hcGkuc2l0LnJlZGViYW5vcGVuZmluYW5jZS5jb20vODA3L2JhY2stY2hhbm5lbC1hdXRoL3YxL2M2MDFlN2RhLWJlMTUtNDA2MC04NDYzLTkzNmRjZjY4ZDdkOCIsImF0aCI6Ik91bERpbVVEUDByMmVqbEdGazJrRWlhcm12MEVjTTRpNnEteWowTlI0Z00iLCJpYXQiOjE3NTQwNDk1MTIsImp0aSI6IjNHQmZWcWRhU2ZUdzFsdWUifQ.q9MX0HLDmuKYRzf_nXLDciKo7zKYyXBLryDrU-GXY6P-K1h4tqa7LU_5s_yYEOI0cwW3oAdE28FnSty5xPzmTkKEGY1WAdXoat83zRL_xyP8Y9RVGosld5kC8Nds872p9YVRtltCOO91JwhQWfaAR-piOFVWGx6zzhD788-bKH_dFTdU-Q3-v-RviLI8m_ZuldJWPntR_Nvvkby2UPta1BeEIOYc16xc7blp69cFxvOHddi5uojDi6pyF73pYBbG_KbFEWnZz9r6YpgJVrMt7oieSfPtnwa2PWmikQ8_B0a6Pmmx4mHLQTOE2AA7zUPMznwR2iszQm8Pprm9vbhp2A' \
--data '{"Data":{"ReadRefundAccount":"Yes","Authorisation":{"AuthorisationType":"Any","CompletionDateTime":"2025-11-12T00:00:00+00:00"},"Initiation":{"InstructionIdentification":"0555ca8f-bca6-470e-a192-2e897578a30","EndToEndIdentification":"DEMO USER","InstructedAmount":{"Amount":"115.00","Currency":"COP"},"CreditorAccount":{"SchemeName":"CAHO","Identification":"0036024594","Name":"Test user","SecondaryIdentification":"MERCHANTID"},"DebtorAccount":{"SchemeName":"CAHO","Identification":"3559898989","Name":"JESSICA","SecondaryIdentification":"1001017"},"CreditorPostalAddress":{"AddressLine":["test"],"AddressType":"Business","BuildingNumber":"27","Country":"GB","CountrySubDivision":"Wessex","Department":"test","PostCode":"7U31 2ZZ","StreetName":"AcaciaAvenue","SubDepartment":"test sub","TownName":"Sparsholt"},"SupplementaryData":{"DebtorMobileNumber":"3138745276"},"RemittanceInformation":{"Unstructured":"Internal ops code 5120101","Reference":"FRESCO-101"}},"SCASupportData":{"RequestedSCAExemptionType":"BillPayment","AppliedAuthenticationApproach":"CA","ReferencePaymentOrderId":"test"}},"Risk":{"PaymentContextCode":"Other","MerchantCategoryCode":"5967","MerchantCustomerIdentification":"053598653254","DeliveryAddress":{"AddressLine":["Flat 7","Acacia Lodge"],"StreetName":"AcaciaAvenue","BuildingNumber":"27","PostCode":"7U31 2ZZ","TownName":"Sparsholt","CountrySubDivision":"Wessex","Country":"GB"}}}'
Respuesta del POST para la creación del consentimiento:
{
"Data": {
"ConsentId": "34830376-9150-40d8-a12a-6019a296687f",
"CreationDateTime": "2025-08-01T07:03:04+00:00",
"Status": "AwaitingAuthorisation",
"StatusUpdateDateTime": "2025-08-01T07:03:04+00:00",
"ReadRefundAccount": "Yes",
"Initiation": {
"InstructionIdentification": "0555ca8f-bca6-470e-a192-2e897578a30",
"EndToEndIdentification": "DEMO USER",
"InstructedAmount": {
"Amount": "115.00",
"Currency": "COP"
},
"DebtorAccount": {
"SchemeName": "CAHO",
"Identification": "3559898989",
"SecondaryIdentification": "1001017"
},
"CreditorAccount": {
"SchemeName": "CAHO",
"Identification": "0036024594",
"Name": "Test user",
"SecondaryIdentification": "MERCHANTID"
},
"CreditorPostalAddress": {
"AddressType": "Business",
"Department": "test",
"SubDepartment": "test sub",
"StreetName": "AcaciaAvenue",
"BuildingNumber": "27",
"PostCode": "7U31 2ZZ",
"TownName": "Sparsholt",
"CountrySubDivision": "Wessex",
"Country": "GB",
"AddressLine": [
"test"
]
},
"RemittanceInformation": {
"Unstructured": "Internal ops code 5120101",
"Reference": "FRESCO-101"
},
"SupplementaryData": {
"DebtorMobileNumber": "3138745276"
}
},
"Authorisation": {
"AuthorisationType": "Any",
"CompletionDateTime": "2025-11-12T00:00:00+00:00"
},
"SCASupportData": {
"RequestedSCAExemptionType": "BillPayment",
"AppliedAuthenticationApproach": "CA",
"ReferencePaymentOrderId": "test"
}
},
"Risk": {
"PaymentContextCode": "Other",
"MerchantCategoryCode": "5967",
"MerchantCustomerIdentification": "053598653254",
"DeliveryAddress": {
"AddressLine": [
"Flat 7",
"Acacia Lodge"
],
"StreetName": "AcaciaAvenue",
"BuildingNumber": "27",
"PostCode": "7U31 2ZZ",
"TownName": "Sparsholt",
"CountrySubDivision": "Wessex",
"Country": "GB"
}
},
"Links": {
"Self": "https://api.stage.redebanopenfinance.com/51/domestic-payment-consents/v1/34830376-9150-40d8-a12a-6019a296687f"
},
"Meta": {}
}
x-idempotency-key es un encabezado HTTP personalizado que garantiza que una operación específica se realice solo una vez, incluso si la solicitud se envía varias veces. Es una cadena única (normalmente un UUID) generada para cada solicitud.
Solicitud GET para la obtención del consentimiento:
El endpoint de consentimiento de pago nacional (domestic payment) permite a los bancos y proveedores externos regulados acceder y verificar de forma segura los detalles y el estado del consentimiento de pago de un usuario. Esto garantiza que los pagos se inicien solo después de la autorización del usuario, manteniendo la transparencia y el cumplimiento normativo. Al validar el monto del pago, el beneficiario y el estado del consentimiento, ayuda a prevenir transacciones no autorizadas y refuerza una sólida protección al cliente en la banca abierta.
curl --location 'https://api.snd.redebanopenfinance.com/51/domestic-payment-consents/v1/77ceb64f-0d53-473d-bcb1-2041fbc8f202' \
--header 'Content-Type: application/json' \
--header 'Authorization: DPoP KLUP74YOE_tbFfi6iCAEhMQnxnIKrZzxOEQYmLon-Mc' \
--header 'DPoP: eyJ0eXAiOiJkcG9wK2p3dCIsImFsZyI6IlBTMjU2IiwiandrIjp7Imt0eSI6IlJTQSIsIng1dCNTMjU2IjoiQkNiamg3clZpTHZHczhqODZYbDRtWHNpQlJKT1U2UGZUM21xZ3FyeXRBRSIsIm5iZiI6MTczMTQxOTQ3NywiZSI6IkFRQUIiLCJ1c2UiOiJzaWciLCJraWQiOiJyc2Ffa2V5IiwieDVjIjpbIk1JSURnRENDQW1pZ0F3SUJBZ0lHQVpNZ3BKZWFNQTBHQ1NxR1NJYjNEUUVCQlFVQU1Id3hEakFNQmdOVkJBTU1CVVpzZFdabU1SSXdFQVlEVlFRTERBbERZWFFnU0c5MWMyVXhIREFhQmdOVkJBb01FME5oYldKeWFXUm5aU0JWYm1sMlpYSnpkSGt4RWpBUUJnTlZCQWNNQ1VOaGJXSnlhV1JuWlRFWE1CVUdBMVVFQ0F3T1EyRnRZbkpwWkdkbGMyaHBjbVV4Q3pBSkJnTlZCQVlUQWtkQ01CNFhEVEkwTVRFeE1qRXpOVEV4TjFvWERUTTBNVEV4TURFek5URXhOMW93ZFRFT01Bd0dBMVVFQXd3RlIybHVaMlV4RXpBUkJnTlZCQXNNQ2tSdlp5QkxaVzV1Wld3eEdqQVlCZ05WQkFvTUVVOTRabTl5WkNCVmJtbDJaWEp6YVhSNU1ROHdEUVlEVlFRSERBWlBlR1p2Y21ReEZEQVNCZ05WQkFnTUMwOTRabTl5WkhOb2FYSmxNUXN3Q1FZRFZRUUdFd0pIUWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTHh0NFlNYWxLRnFxQ3ZobGRtK0FuWWJrMlRjOHZyVzdUazg2bHpJaHN3YXk4WGpwRWN5NTJpWHcvVWpYN01wZ2Nsc2RQKytjY3VTR2VhelpqZFBtblIxQXdhY0NWNm5JbklmeDJTTkhWMXhGV1d5cWZYR0JGN2ZibHZCMTJMWnVLeXRCK28yWFJ4UkI1elRkWE16c2NrSHp0Q0hoUm9ENzRoSmgwUjdMQTRXZ1VjU3FETjQ1d1d0NGZEdTdQR1hGbDN3b0lYT0pZYkpHVGN0RU0yaHorUElFNmRONlR3Y3FqczhXL0lBVmN6dmxVblpXbVNnejh5S05YWWN4TCtnRGlvdk5EY3ZsdVpiMjBoYzVSeHhDNmMzVUlCMTJDUGQxb1ErK1VWVjRsWGowSWdsUWs1Mzd3bE1WQTYyNUJuby9FeC9ZaVh1aW9zaVVyTHVJMk4rSmhNQ0F3RUFBYU1QTUEwd0N3WURWUjBQQkFRREFnZUFNQTBHQ1NxR1NJYjNEUUVCQlFVQUE0SUJBUUJONHc1dmJoZmpTZUFiZHNNbjY1UkVGRHFwQmV1WEFidXRCUWJSeFpzSkZEekhSZkxkUUNUcGpRT0FSWWxQZkNwWnVCRVpuS2lsWldoQmVPd1pLcXlwQTB3aXpjTE5oVEgvUXBPdCt2ZzFoQnJ5M0RSWGlibnRDSDY4TnlLZmVNNS9uTVBRdWpKeS9QUzFwb2crR25zNnFpbU5GN1pKeHRvY0pLaWJiNHkyaG5uK1NDZHpTSkJRYnE4UTB2alZZQkhlU2lDMGZ2TDRxYkJNZmQ3QWhzbm5wQ3lyMUNHM1ZTTy8vTXFUQjUvMTJ3NlBnTnlIWjZScjNpZjEwNFpPWnA3UzVFcGgyRGVzRERtVENnL3E5NWJLcnpNSHJrSURtQkVKZ25jQ05WSTdxUXVueTJpZDI2VERCTFNsWEw4WTd2NHZ3Y3hqcmdjTEthV0ZFVW9wekRwTyJdLCJleHAiOjIwNDY3Nzk0NzcsIm4iOiJ2RzNoZ3hxVW9XcW9LLUdWMmI0Q2RodVRaTnp5LXRidE9UenFYTWlHekJyTHhlT2tSekxuYUpmRDlTTmZzeW1CeVd4MF83NXh5NUlaNXJObU4wLWFkSFVEQnB3SlhxY2ljaF9IWkkwZFhYRVZaYktwOWNZRVh0OXVXOEhYWXRtNHJLMEg2alpkSEZFSG5OTjFjek94eVFmTzBJZUZHZ1B2aUVtSFJIc3NEaGFCUnhLb00zam5CYTNoOE83czhaY1dYZkNnaGM0bGhza1pOeTBRemFIUDQ4Z1RwMDNwUEJ5cU96eGI4Z0JWek8tVlNkbGFaS0RQeklvMWRoekV2NkFPS2k4ME55LVc1bHZiU0Z6bEhIRUxwemRRZ0hYWUk5M1doRDc1UlZYaVZlUFFpQ1ZDVG5mdkNVeFVEcmJrR2VqOFRIOWlKZTZLaXlKU3N1NGpZMzRtRXcifX0.eyJodG0iOiJQT1NUIiwiaHR1IjoiaHR0cHM6Ly9hcGkuc2l0LnJlZGViYW5vcGVuZmluYW5jZS5jb20vODA3L2JhY2stY2hhbm5lbC1hdXRoL3YxL2M2MDFlN2RhLWJlMTUtNDA2MC04NDYzLTkzNmRjZjY4ZDdkOCIsImF0aCI6Ik91bERpbVVEUDByMmVqbEdGazJrRWlhcm12MEVjTTRpNnEteWowTlI0Z00iLCJpYXQiOjE3NTQwNDk1MTIsImp0aSI6IjNHQmZWcWRhU2ZUdzFsdWUifQ.q9MX0HLDmuKYRzf_nXLDciKo7zKYyXBLryDrU-GXY6P-K1h4tqa7LU_5s_yYEOI0cwW3oAdE28FnSty5xPzmTkKEGY1WAdXoat83zRL_xyP8Y9RVGosld5kC8Nds872p9YVRtltCOO91JwhQWfaAR-piOFVWGx6zzhD788-bKH_dFTdU-Q3-v-RviLI8m_ZuldJWPntR_Nvvkby2UPta1BeEIOYc16xc7blp69cFxvOHddi5uojDi6pyF73pYBbG_KbFEWnZz9r6YpgJVrMt7oieSfPtnwa2PWmikQ8_B0a6Pmmx4mHLQTOE2AA7zUPMznwR2iszQm8Pprm9vbhp2A'
Respuesta del GET para la obtención del consentimiento:
{
"Data": {
"ConsentId": "6b9c764d-42bc-4aed-99eb-c0bd643d54d2",
"CreationDateTime": "2025-08-01T07:45:36+00:00",
"Status": "AwaitingAuthorisation",
"StatusUpdateDateTime": "2025-08-01T07:45:36+00:00",
"Initiation": {
"InstructedAmount": {
"Amount": "115.00",
"Currency": "COP"
},
"CreditorAccount": {
"SchemeName": "CAHO",
"Identification": "0036024594",
"Name": "Test user",
"SecondaryIdentification": "MERCHANTID"
},
"RemittanceInformation": {
"Unstructured": "Internal ops code 5120101",
"Reference": "FRESCO-101"
}
}
},
"Risk": {
"PaymentContextCode": "Other",
"MerchantCategoryCode": "5967",
"MerchantCustomerIdentification": "053598653254",
"DeliveryAddress": {
"AddressLine": [
"Flat 7",
"Acacia Lodge"
],
"StreetName": "AcaciaAvenue",
"BuildingNumber": "27",
"PostCode": "7U31 2ZZ",
"TownName": "Sparsholt",
"CountrySubDivision": "Wessex",
"Country": "GB"
}
},
"Links": {
"Self": "https://api.stage.redebanopenfinance.com/51/domestic-payment-consents/v1"
},
"Meta": {}
}
Headers
| Parámetro | Valor ejemplo | Descripción |
|---|---|---|
| DPoP | tipo de token de acceso | Una extensión de OAuth 2.0 que mejora la seguridad de los tokens vinculando tokens de acceso a un cliente específico, evitando el uso no autorizado de tokens filtrados o robados. Lo logra exigiendo a los clientes que demuestren criptográficamente que poseen la clave privada asociada con la clave pública utilizada para generar el token. El cliente crea un par de claves RSA/EC DPoP y, para cada solicitud de token o solicitud de recurso, el cliente crea un JWT de prueba DPoP que se firma utilizando la clave DPoP privada y el encabezado incluye la clave pública (jwk) con otras afirmaciones como htm, htu, iat, jti, etc. Consulte el estándar definido en: https://developer.redebanopenfinance.com/page/dpop#/. |
| Authorization | DPoP nHm6GnclS4hNKpy3hvydafaijsK811PlDZWaoE3Bj8w | En FAPI 2.0 con DPoP se requiere encabezado de autorización con formato DPoP < access token >. |
3. Autorizar el consentimiento de la orden de pago
Según lo descrito en el punto anterior, el TPP obtiene un Consent ID, el cual se emplea para crear una solicitud de autorización que permita al cliente otorgar el consentimiento sobre la instrucción de pago configurada en la plataforma de Redeban. Esta solicitud utiliza el flujo de Authorization Code grant type de OAuth2.
De acuerdo con el cumplimiento de FAPI2.0, el TPP primero debe enviar una solicitud PAR (Pushed Authorization Request) a la plataforma de Redeban para obtener un Request URI, la cual se utilizará en la solicitud de autorización.
curl --location 'https://api.snd.redebanopenfinance.com/51/par.oauth2/v1' \
--key ./{network.key} \
--cert ./{network.pem} \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=SC-2b265e7b-ed19-4309-84de-b96cf7d2d483' \
--data-urlencode 'response_type=code' \
--data-urlencode 'redirect_uri=https://www.saucedemo.com' \
--data-urlencode 'client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer' \
--data-urlencode 'client_assertion=eyJhbGciOiJQUzI1NiIsImtpZCI6Ik5iMDhpWlZ6NkZtZFJpVHNSMlpydVhHMDdJVT0ifQ.eyJqdGkiOiJteUpXVElkMDAxIiwic3ViIjoiU0MtMmIyNjVlN2ItZWQxOS00MzA5LTg0ZGUtYjk2Y2Y3ZDJkNDgzIiwiaXNzIjoiU0MtMmIyNjVlN2ItZWQxOS00MzA5LTg0ZGUtYjk2Y2Y3ZDJkNDgzIiwiYXVkIjoiaHR0cHM6Ly9hdXRoLnN0YWdlLnJlZGViYW5vcGVuZmluYW5jZS5jb20iLCJpYXQiOjE3MzQ2OTQxMzksImV4cCI6MTc2NzE4NTgyNn0.tN1dvubrtzPAwq0tQZHmPR4A06OYQHVTIo-psABng-_C5AusSNrDhZJE1c92BGV7UV3iocRPu5nANTrsMWmTxqSYw160pB88T-fE6tpPf2qZjwWLR29_nOYh8Wsr3Vb8RscZpOeV2Lf5xIGy60J2Wih7hiNteNOVzhb03eUtf4Z-Gfav8S7mzKjwzuhi02sTkQjq2b71tV-lJnprhd4s-gnwgx80QYTbyqnK4xKsKCXj4SapQ65sjKBxJvCKi_9m_gIRu_T6SYKA-8iH3b1EVCi443zKD-g3UZJUMIJG7DBIk_yyrULKXqslR139DA0lyvmAILrq4AtwOLNkMFpigQ' \
--data-urlencode 'code_challenge_method=S256' \
--data-urlencode 'code_challenge=r2v8uBRgt09c56pf05Fg4qo5p2IT22XrOCCONda_9rw' \
--data-urlencode 'consent_id=77ceb64f-0d53-473d-bcb1-2041fbc8f202' \
--data-urlencode 'scope=payments'
Parámetros de la solicitud POST:
| Parámetro | Valor ejemplo | Descripción |
|---|---|---|
| scope | payments | Scope genérico para operaciones de pago. |
| Banco (parámetro en la ruta URL) | 51 | Identificador del banco proveedor. |
| client_id | SC-2b265e7b-ed19-4309-84de-b96cf7d2d483 | ID de cliente del proveedor de servicios de pago externo (TPP) como formato SC- <UUID>. |
| response_type | Code | Código utilizado en OAuth2/OpenID para el flujo de Authorization code. |
| redirect_uri | URL de redirección del TPP | Esta URL es empleada en la plataforma de Redeban para enviar el código de autorización una vez el flujo SCA (Strong Customer Authentication) /Consent sea exitoso. |
| client_assertion_type | urn:ietf:params:oauth:client-assertion-type:jwt-bearer' | Tipo de afirmación estándar en OAuth. |
| client_assertion | Este valor es la afirmación de cliente usando JWT | Estándar OAuth2 usado para el método de autenticación del cliente private_key_jwt. La aserción de cliente con clave privada JWT es un método de autenticación de cliente OAuth 2.0 donde el cliente prueba su identidad firmando un JWT (JSON Web Token) con su clave privada y presentándolo al servidor de autorización. Consulte: https://developer.redebanopenfinance.com/page/client_assertion#/. |
| code_challenge method | Este valor debe ser S256 | Algoritmo del code_challenge requerido para realizar el PKCE (Proof Key for Code Exchange). Consulte el estándar - https://datatracker.ietf.org/doc/html/rfc7636 y la utilidad o biblioteca de generación de PKCE compatible con el estándar en un lenguaje de programación como Java/Python. |
| code_challenge | Este valor es el code_challenge generado por el TPP | Valor del code_challenge requerido para el PKCE. Consulte el estándar - https://datatracker.ietf.org/doc/html/rfc7636 y la utilidad o biblioteca de generación de PKCE compatible con el estándar en un lenguaje de programación como Java/Python. |
| consent_id | bc5862ae-e6e3-4f78-ae23-8cdf81981fff | ID del consentimiento creado por el TPP en pasos anteriores.. |
| state | Este valor es el estado de la aplicación del cliente | Parámetro opcional que puede ser usado por el TPP para asociar este proceso de autorización con un estado de aplicación. |
| scope | Para el TPP, esto debería ser “payments”. | Alcance OAuth solicitado. El parámetro "scope" de OAuth especifica los datos financieros y los permisos exactos (como el acceso a la cuenta o el inicio de pago) que un proveedor externo solicita a un banco. |
| dpop_jkt | Este valor debe ser la huella de la llave pública del cliente usada para la creación del token DPoP en la solicitud del endpoint del token. | Parámetro opcional, si se utiliza, vincula el código de autorización emitido al TPP con el DPoP utilizado por el TPP para enviar la solicitud de token. |
Respuesta de la Solicitud POST :
{
"expires_in": 599,
"request_uri": "urn:ietf:params:oauth:request_uri:N9-vkA_zslak0mQn-XNWc-F8j9vaJGw42eH8ZJ18xFI"
}Si la solicitud PAR es exitosa, la plataforma de Redeban devolverá un request_uri único. Este request_uri se utilizará para enviar la solicitud de autorización al banco a través de una URL proporcionada por Redeban.
4. Autenticación y autorización de usuario a través de SCA y una solicitud de consentimiento
Una vez que se obtiene request_uri, el TPP debe consumir la siguiente URL desde un navegador web para iniciar la SCA y la autorización de consentimiento con el banco utilizando el front channel (navegador).
Solicitud desde el front channel (a través del navegador):
https://auth.snd.redebanopenfinance.com/51/authorization.oauth2?client_id=SC-2b265e7b-ed19-4309-84de-b96cf7d2d483&request_uri=urn:ietf:params:oauth:request_uri:d8_RMOtAv3ClZ3omdB67Qaa
Parámetros de la URL:
| Parámetro | Valor ejemplo | Descripción |
|---|---|---|
| Bank (parámetro en el path de la URL) | 51 | Identificador del banco. |
| client_id | SC-2b265e7b-ed19-4309-84de-b96cf7d2d483 | ID de cliente del proveedor de servicios de pago externo (TPP) como formato SC - <UUID>. |
| request_uri | urn:ietf:params:oauth:request_uri:pb2W2fj3NjgZeMeD3bN0RjSUiGSNzWjGZatECGspZrs | request_uri es una referencia temporal a una solicitud de autorización enviada de forma segura al servidor a través de PAR, lo que permite al cliente iniciar la autorización solo con este URI en lugar de exponer datos confidenciales en la URL. |
5. Obtener el token de acceso para poder consumir las APIs
Los TPP deben utilizar el flujo de Authorization Code de OAuth 2.0 para obtener un token de acceso, el cual les permitirá consumir los demás recursos.
Solicitud POST: endpoint para obtener el token de acceso.
curl --location 'https://api.snd.redebanopenfinance.com/51/token.oauth2/v1' \
--key ./{network.key} \
--cert ./{network.pem} \
--header 'DPoP: eyJ0eXAiOiJkcG9wK2p3dCIsImFsZyI6IlBTMjU2IiwiandrIjp7Imt0eSI6IlJTQSIsIng1dCNTMjU2IjoiQkNiamg3clZpTHZHczhqODZYbDRtWHNpQlJKT1U2UGZUM21xZ3FyeXRBRSIsIm5iZiI6MTczMTQxOTQ3NywiZSI6IkFRQUIiLCJ1c2UiOiJzaWciLCJraWQiOiJyc2Ffa2V5IiwieDVjIjpbIk1JSURnRENDQW1pZ0F3SUJBZ0lHQVpNZ3BKZWFNQTBHQ1NxR1NJYjNEUUVCQlFVQU1Id3hEakFNQmdOVkJBTU1CVVpzZFdabU1SSXdFQVlEVlFRTERBbERZWFFnU0c5MWMyVXhIREFhQmdOVkJBb01FME5oYldKeWFXUm5aU0JWYm1sMlpYSnpkSGt4RWpBUUJnTlZCQWNNQ1VOaGJXSnlhV1JuWlRFWE1CVUdBMVVFQ0F3T1EyRnRZbkpwWkdkbGMyaHBjbVV4Q3pBSkJnTlZCQVlUQWtkQ01CNFhEVEkwTVRFeE1qRXpOVEV4TjFvWERUTTBNVEV4TURFek5URXhOMW93ZFRFT01Bd0dBMVVFQXd3RlIybHVaMlV4RXpBUkJnTlZCQXNNQ2tSdlp5QkxaVzV1Wld3eEdqQVlCZ05WQkFvTUVVOTRabTl5WkNCVmJtbDJaWEp6YVhSNU1ROHdEUVlEVlFRSERBWlBlR1p2Y21ReEZEQVNCZ05WQkFnTUMwOTRabTl5WkhOb2FYSmxNUXN3Q1FZRFZRUUdFd0pIUWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTHh0NFlNYWxLRnFxQ3ZobGRtK0FuWWJrMlRjOHZyVzdUazg2bHpJaHN3YXk4WGpwRWN5NTJpWHcvVWpYN01wZ2Nsc2RQKytjY3VTR2VhelpqZFBtblIxQXdhY0NWNm5JbklmeDJTTkhWMXhGV1d5cWZYR0JGN2ZibHZCMTJMWnVLeXRCK28yWFJ4UkI1elRkWE16c2NrSHp0Q0hoUm9ENzRoSmgwUjdMQTRXZ1VjU3FETjQ1d1d0NGZEdTdQR1hGbDN3b0lYT0pZYkpHVGN0RU0yaHorUElFNmRONlR3Y3FqczhXL0lBVmN6dmxVblpXbVNnejh5S05YWWN4TCtnRGlvdk5EY3ZsdVpiMjBoYzVSeHhDNmMzVUlCMTJDUGQxb1ErK1VWVjRsWGowSWdsUWs1Mzd3bE1WQTYyNUJuby9FeC9ZaVh1aW9zaVVyTHVJMk4rSmhNQ0F3RUFBYU1QTUEwd0N3WURWUjBQQkFRREFnZUFNQTBHQ1NxR1NJYjNEUUVCQlFVQUE0SUJBUUJONHc1dmJoZmpTZUFiZHNNbjY1UkVGRHFwQmV1WEFidXRCUWJSeFpzSkZEekhSZkxkUUNUcGpRT0FSWWxQZkNwWnVCRVpuS2lsWldoQmVPd1pLcXlwQTB3aXpjTE5oVEgvUXBPdCt2ZzFoQnJ5M0RSWGlibnRDSDY4TnlLZmVNNS9uTVBRdWpKeS9QUzFwb2crR25zNnFpbU5GN1pKeHRvY0pLaWJiNHkyaG5uK1NDZHpTSkJRYnE4UTB2alZZQkhlU2lDMGZ2TDRxYkJNZmQ3QWhzbm5wQ3lyMUNHM1ZTTy8vTXFUQjUvMTJ3NlBnTnlIWjZScjNpZjEwNFpPWnA3UzVFcGgyRGVzRERtVENnL3E5NWJLcnpNSHJrSURtQkVKZ25jQ05WSTdxUXVueTJpZDI2VERCTFNsWEw4WTd2NHZ3Y3hqcmdjTEthV0ZFVW9wekRwTyJdLCJleHAiOjIwNDY3Nzk0NzcsIm4iOiJ2RzNoZ3hxVW9XcW9LLUdWMmI0Q2RodVRaTnp5LXRidE9UenFYTWlHekJyTHhlT2tSekxuYUpmRDlTTmZzeW1CeVd4MF83NXh5NUlaNXJObU4wLWFkSFVEQnB3SlhxY2ljaF9IWkkwZFhYRVZaYktwOWNZRVh0OXVXOEhYWXRtNHJLMEg2alpkSEZFSG5OTjFjek94eVFmTzBJZUZHZ1B2aUVtSFJIc3NEaGFCUnhLb00zam5CYTNoOE83czhaY1dYZkNnaGM0bGhza1pOeTBRemFIUDQ4Z1RwMDNwUEJ5cU96eGI4Z0JWek8tVlNkbGFaS0RQeklvMWRoekV2NkFPS2k4ME55LVc1bHZiU0Z6bEhIRUxwemRRZ0hYWUk5M1doRDc1UlZYaVZlUFFpQ1ZDVG5mdkNVeFVEcmJrR2VqOFRIOWlKZTZLaXlKU3N1NGpZMzRtRXcifX0.eyJodG0iOiJQT1NUIiwiaHR1IjoiaHR0cHM6Ly9hcGkuc2l0LnJlZGViYW5vcGVuZmluYW5jZS5jb20vODA3L3Rva2VuLm9hdXRoMi92MSIsImlhdCI6MTc1NDA0OTUwMywianRpIjoickFPanlRVU5pUWRnVmk1QyJ9.ff4Pkc0zjuhy0a35-JMh0SXH_8RLkuqSi9ukZjmB2N8U5PbnvbzwtD1oyTsdKAcVzS5q1oUca6vQm8Gejar1KeNVaAtA1neS9uXCiRpatbEGFbT-Uw8t_T5atqlPbpUDT1KWs56FDvkjyikOy9FPgo2ozS3lAiShyxuqqDxEJ8RwO2bVvDROCW3vLi_70r-aBFR9QSaUheOnTJYRCqIZZDhFYKPgwEu5SHg0g1tV7C9q9r-QpXpFRC8LzTXEAY8vxB2z6thJ8kJQqrGcxVzeGfnEEYUdCLQRW_7VfEkya3QG3q3k68370nyvwNBa63gncgMKJDDXmPiJC87UwVh-Lw' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'code=xYhvRikTWC3-uX01bHCcs4h55orie2kBdngzXZoR9B0' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'client_id=SC-2b265e7b-ed19-4309-84de-b96cf7d2d483' \
--data-urlencode 'redirect_uri=https://www.saucedemo.com' \
--data-urlencode 'client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer' \
--data-urlencode 'client_assertion=eyJhbGciOiJQUzI1NiIsImtpZCI6Ik5iMDhpWlZ6NkZtZFJpVHNSMlpydVhHMDdJVT0ifQ.eyJqdGkiOiJteUpXVElkMDAxIiwic3ViIjoiU0MtMmIyNjVlN2ItZWQxOS00MzA5LTg0ZGUtYjk2Y2Y3ZDJkNDgzIiwiaXNzIjoiU0MtMmIyNjVlN2ItZWQxOS00MzA5LTg0ZGUtYjk2Y2Y3ZDJkNDgzIiwiYXVkIjoiaHR0cHM6Ly9hdXRoLnN0YWdlLnJlZGViYW5vcGVuZmluYW5jZS5jb20iLCJpYXQiOjE3MzQ2OTQxMzksImV4cCI6MTc2NzE4NTgyNn0.tN1dvubrtzPAwq0tQZHmPR4A06OYQHVTIo-psABng-_C5AusSNrDhZJE1c92BGV7UV3iocRPu5nANTrsMWmTxqSYw160pB88T-fE6tpPf2qZjwWLR29_nOYh8Wsr3Vb8RscZpOeV2Lf5xIGy60J2Wih7hiNteNOVzhb03eUtf4Z-Gfav8S7mzKjwzuhi02sTkQjq2b71tV-lJnprhd4s-gnwgx80QYTbyqnK4xKsKCXj4SapQ65sjKBxJvCKi_9m_gIRu_T6SYKA-8iH3b1EVCi443zKD-g3UZJUMIJG7DBIk_yyrULKXqslR139DA0lyvmAILrq4AtwOLNkMFpigQ' \
--data-urlencode 'code_verifier=c7oXlQkXEjCF_zrepKZCs_U5nUzKUdee-SKJ3hRxOgjow_XwgeQ6ILSy8rJdAr3d8Q7YYJd8JJE-D4KBoBLol2wEeRTt-1gXMh-jVlem7lFERrDdIWIeFfUXWex8huXI'
Respuesta de la Solicitud POST: se devuelve token de acceso.
{
"access_token": "Zq-qThi2wsw1NlVhNF8ShL6qrN8Eihrj2xN1eXE-5V0",
"token_type": "DPoP",
"expires_in": 3600,
"scope": "payments"
}
Parámetros de la solicitud POST:
| Parámetro | Valor ejemplo | Descripción |
|---|---|---|
| grant_type | Authorization Code | El tipo de autorización (grant type) que se solicita. |
| Bank (parámetro en la ruta URL) | 51 | Identificador del banco proveedor. |
| DPoP | tipo de token de acceso | una extensión OAuth 2.0 que mejora la seguridad de los tokens vinculando tokens de acceso a un cliente específico, evitando el uso no autorizado de tokens filtrados o robados. Lo logra exigiendo a los clientes que demuestren criptográficamente que poseen la clave privada asociada con la clave pública utilizada para generar el token. El cliente crea un par de claves RSA/EC DPoP y, para cada solicitud de token o solicitud de recurso, el cliente crea un JWT de prueba DPoP que se firma utilizando la clave DPoP privada y el encabezado incluye la clave pública (jwk) con otras afirmaciones como htm, htu, iat, jti, etc. Consulte el estándar definido en https://developer.redebanopenfinance.com/page/dpop#/ . |
| Client_id | SC-6b867038-0a94-4f3d-a700-f2f6e30e078a | ID de cliente (TPP) registrado en la plataforma APIs de Redeban. |
| client_assertion_type | urn:ietf:params:oauth:client-assertion-type:jwt-bearer' | Tipo de afirmación estándar de OAuth2. |
| client_assertion | La afirmación de cliente usando JWT | Estándar OAuth2 usado para el método de autenticación del cliente private_key_jwt. La aserción de cliente con clave privada JWT es un método de autenticación de cliente OAuth 2.0 donde el cliente prueba su identidad firmando un JWT (JSON Web Token) con su clave privada y presentándolo al servidor de autorización. Consulte: https://developer.redebanopenfinance.com/page/client_assertion#/. |
| code_verifier | c7oXlQkXEjCF_zrepKZCs_U5nUzKUdee-SKJ3hRxOgjow_XwgeQ6ILSy8rJdAr3d8Q7YYJd8JJE-D4KBoBLol2wEeRTt-1gXMh-jVlem7lFERrDdIWIeFfUXWex8huXI | Un code_verifier es una cadena criptográficamente aleatoria utilizada en el protocolo OAuth 2.0 con la extensión Proof Key for Code Exchange (PKCE). Consulte: https://datatracker.ietf.org/doc/html/rfc7636. |
| redirect_uri | https://www.saucedemo.com/ | La URI de redireccionamiento es la URL a la que el servidor OAuth 2.0 envía a los usuarios nuevamente después de la autenticación, llevando datos de autorización como parámetros de consulta. |
| code | d3srbzR3mq4oA75Lx0TIFLXS3lGbuf2q0PT0cvwVP80 | Código de autorización, que es un código temporal emitido a la aplicación cliente después de que un usuario autentica y autoriza exitosamente la aplicación en el endpoint de autorización. |
6. Confirmación de fondos
Este endpoint permite al TPP verificar la disponibilidad de fondos antes de proceder con la transacción, utilizando el Consent ID generado previamente. La solicitud se realiza a través del siguiente endpoint:
GET /{BANK}/domestic-payment-consents/v1/{CONSENTID}/funds-confirmation.
Solicitud GET: Confirmar los fondos mediante el consentimiento de una orden de pago.
curl --location 'https://api.snd.redebanopenfinance.com/51/domestic-payment-consents/v1/77ceb64f-0d53-473d-bcb1-2041fbc8f202/funds-confirmation' \
--key ./{network.key} \
--cert ./{network.pem} \
--header 'Content-Type: application/json' \
--header 'Authorization: DPoP 0eAZyHGvptpAlO1brSJrT0x4sr0zZy1nX25O-Uiqz_g' \
--header 'DPoP: eyJ0eXAiOiJkcG9wK2p3dCIsImFsZyI6IlBTMjU2IiwiandrIjp7Imt0eSI6IlJTQSIsIng1dCNTMjU2IjoiQkNiamg3clZpTHZHczhqODZYbDRtWHNpQlJKT1U2UGZUM21xZ3FyeXRBRSIsIm5iZiI6MTczMTQxOTQ3NywiZSI6IkFRQUIiLCJ1c2UiOiJzaWciLCJraWQiOiJyc2Ffa2V5IiwieDVjIjpbIk1JSURnRENDQW1pZ0F3SUJBZ0lHQVpNZ3BKZWFNQTBHQ1NxR1NJYjNEUUVCQlFVQU1Id3hEakFNQmdOVkJBTU1CVVpzZFdabU1SSXdFQVlEVlFRTERBbERZWFFnU0c5MWMyVXhIREFhQmdOVkJBb01FME5oYldKeWFXUm5aU0JWYm1sMlpYSnpkSGt4RWpBUUJnTlZCQWNNQ1VOaGJXSnlhV1JuWlRFWE1CVUdBMVVFQ0F3T1EyRnRZbkpwWkdkbGMyaHBjbVV4Q3pBSkJnTlZCQVlUQWtkQ01CNFhEVEkwTVRFeE1qRXpOVEV4TjFvWERUTTBNVEV4TURFek5URXhOMW93ZFRFT01Bd0dBMVVFQXd3RlIybHVaMlV4RXpBUkJnTlZCQXNNQ2tSdlp5QkxaVzV1Wld3eEdqQVlCZ05WQkFvTUVVOTRabTl5WkNCVmJtbDJaWEp6YVhSNU1ROHdEUVlEVlFRSERBWlBlR1p2Y21ReEZEQVNCZ05WQkFnTUMwOTRabTl5WkhOb2FYSmxNUXN3Q1FZRFZRUUdFd0pIUWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTHh0NFlNYWxLRnFxQ3ZobGRtK0FuWWJrMlRjOHZyVzdUazg2bHpJaHN3YXk4WGpwRWN5NTJpWHcvVWpYN01wZ2Nsc2RQKytjY3VTR2VhelpqZFBtblIxQXdhY0NWNm5JbklmeDJTTkhWMXhGV1d5cWZYR0JGN2ZibHZCMTJMWnVLeXRCK28yWFJ4UkI1elRkWE16c2NrSHp0Q0hoUm9ENzRoSmgwUjdMQTRXZ1VjU3FETjQ1d1d0NGZEdTdQR1hGbDN3b0lYT0pZYkpHVGN0RU0yaHorUElFNmRONlR3Y3FqczhXL0lBVmN6dmxVblpXbVNnejh5S05YWWN4TCtnRGlvdk5EY3ZsdVpiMjBoYzVSeHhDNmMzVUlCMTJDUGQxb1ErK1VWVjRsWGowSWdsUWs1Mzd3bE1WQTYyNUJuby9FeC9ZaVh1aW9zaVVyTHVJMk4rSmhNQ0F3RUFBYU1QTUEwd0N3WURWUjBQQkFRREFnZUFNQTBHQ1NxR1NJYjNEUUVCQlFVQUE0SUJBUUJONHc1dmJoZmpTZUFiZHNNbjY1UkVGRHFwQmV1WEFidXRCUWJSeFpzSkZEekhSZkxkUUNUcGpRT0FSWWxQZkNwWnVCRVpuS2lsWldoQmVPd1pLcXlwQTB3aXpjTE5oVEgvUXBPdCt2ZzFoQnJ5M0RSWGlibnRDSDY4TnlLZmVNNS9uTVBRdWpKeS9QUzFwb2crR25zNnFpbU5GN1pKeHRvY0pLaWJiNHkyaG5uK1NDZHpTSkJRYnE4UTB2alZZQkhlU2lDMGZ2TDRxYkJNZmQ3QWhzbm5wQ3lyMUNHM1ZTTy8vTXFUQjUvMTJ3NlBnTnlIWjZScjNpZjEwNFpPWnA3UzVFcGgyRGVzRERtVENnL3E5NWJLcnpNSHJrSURtQkVKZ25jQ05WSTdxUXVueTJpZDI2VERCTFNsWEw4WTd2NHZ3Y3hqcmdjTEthV0ZFVW9wekRwTyJdLCJleHAiOjIwNDY3Nzk0NzcsIm4iOiJ2RzNoZ3hxVW9XcW9LLUdWMmI0Q2RodVRaTnp5LXRidE9UenFYTWlHekJyTHhlT2tSekxuYUpmRDlTTmZzeW1CeVd4MF83NXh5NUlaNXJObU4wLWFkSFVEQnB3SlhxY2ljaF9IWkkwZFhYRVZaYktwOWNZRVh0OXVXOEhYWXRtNHJLMEg2alpkSEZFSG5OTjFjek94eVFmTzBJZUZHZ1B2aUVtSFJIc3NEaGFCUnhLb00zam5CYTNoOE83czhaY1dYZkNnaGM0bGhza1pOeTBRemFIUDQ4Z1RwMDNwUEJ5cU96eGI4Z0JWek8tVlNkbGFaS0RQeklvMWRoekV2NkFPS2k4ME55LVc1bHZiU0Z6bEhIRUxwemRRZ0hYWUk5M1doRDc1UlZYaVZlUFFpQ1ZDVG5mdkNVeFVEcmJrR2VqOFRIOWlKZTZLaXlKU3N1NGpZMzRtRXcifX0.eyJodG0iOiJQT1NUIiwiaHR1IjoiaHR0cHM6Ly9hcGkuc3RhZ2UucmVkZWJhbm9wZW5maW5hbmNlLmNvbS81MS9kb21lc3RpYy1wYXltZW50cy92MSIsImF0aCI6Inh3cVJrM1hyWF9uTElLTXFUX3lOX0k5X2ZYYmlvR1NyMDJxcVB1dXluYnMiLCJpYXQiOjE3NTQwMzYwMjgsImp0aSI6IlpDY2VKanB1S05qVHAtRlAifQ.lNG4w6UUyJslbOVI0-gZnOgstOtEfwOQLeUXVkiuxwQX67t1Esbh6w97CKphs2HQol4i_1T0KACcZKYGowa3UaBKlgDYzGfj4OtiUVJ3lS7TE-Gk61THtuJAnWe3t8NQ27Zs4e22cvRL3iUPuinumrg-Fc2JnCJWv_8WEh5yPcEoHW1vJE1MTUTUkRs3WC7CL6fFVNAwCqyx-0G1hFk7oRuNfbbTj-KCrrmHPFMgv-4gFNSEX3MLS21TYWzKqnO3OqDEQQGJljO5X-5W2AICAQYL8QIunlHrepqPuUNgkH1KwEwYRG7IjFdCDlki9uq16V1FiMDUdlgYhc4nFiKSnA'
Respuesta exitosa (200) de la Solicitud GET cuando los fondos están disponibles:
{
"Data": {
"FundsAvailableResult": {
"FundsAvailableDateTime": "2025-08-01T08:01:01+00:00",
"FundsAvailable": false
}
},
"Links": {
"Self": "https://api.stage.redebanopenfinance.com/51/domestic-payment-consents/v1"
},
"Meta": {}
}
Nota: La funcionalidad de confirmación de fondos no está disponible en este momento, que es un paso opcional que no afecta el flujo actual para generar un pago.
7. Crear y enviar una orden de pago
El consumo de esta API por parte del TPP da inicio al proceso de envío de una orden de pago, utilizando el token ACG obtenido en el paso 5 anterior. Para ello, se debe realizar una solicitud HTTP POST al siguiente endpoint: /{BANK}/domestic-payments/v1. Es importante incluir en el cuerpo de la solicitud la misma información proporcionada previamente en la sección de consentimiento.
Solicitud POST: crear y enviar una orden de pago.
curl --location 'https://api.snd.redebanopenfinance.com/51/domestic-payments/v1' \
--key ./{network.key} \
--cert ./{network.pem} \
--header 'Content-Type: application/json' \
--header 'Authorization: DPoP 0eAZyHGvptpAlO1brSJrT0x4sr0zZy1nX25O-Uiqz_g' \
--header 'x-fapi-financial-id: 0015800000jfQ9aAAE' \
--header 'x-idempotency-key: 1754286558' \
--header 'x-jws-signature: eyJodHRwOlwvXC9vcGVuYmFua2luZy5vcmcudWtcL2lhdCI6MTc1NDAzNjAwOSwiaHR0cDpcL1wvb3BlbmJhbmtpbmcub3JnLnVrXC90YW4iOiJvcGVuYmFua2luZy5vcmcudWsiLCJjcml0IjpbImh0dHA6XC9cL29wZW5iYW5raW5nLm9yZy51a1wvaWF0IiwiaHR0cDpcL1wvb3BlbmJhbmtpbmcub3JnLnVrXC90YW4iLCJodHRwOlwvXC9vcGVuYmFua2luZy5vcmcudWtcL2lzcyJdLCJraWQiOiJOYjA4aVpWejZGbWRSaVRzUjJacnVYRzA3SVU9IiwiY3R5IjoiYXBwbGljYXRpb25cL2pzb24iLCJ0eXAiOiJKT1NFIiwiaHR0cDpcL1wvb3BlbmJhbmtpbmcub3JnLnVrXC9pc3MiOiJPQi1mMWZkMTNhYS1kYTc5LTQyODUtOWM0Zi05MTk1MDU5Y2QzMWNcL1NDLTJiMjY1ZTdiLWVkMTktNDMwOS04NGRlLWI5NmNmN2QyZDQ4MyIsImFsZyI6IlBTMjU2In0..l5oq1cciCjRN17uNsBvQs5PIDjDmbMgYN08X5BZ1jBYiax7JQnFehcsTRBoSZ-BBnVV6e6ZI6PcXuyKBI0yjIwpptK3h7jCXUV8sfgJm1W850XVcbo8I88ZJF3IG6J0u_R9fPLXCG4Q8EkTSk5M7BQPHLYzyFSGz2PYKSDozAAJvGdbks-CJCBRQngc04jHau6X_I2ng1oxvHIo7fh4Ww-gicXylkJzgYqJADo9IHuzNMZRi4E-o4BIKeSCx0U2WGrDYfdi4mvZFFHbTMjO25xB2AKa5GoKe1Nk7OIVEmZPgbmdVpRo_qKmWLKFw6RsLr-uGnQ05p8tUCXf4QSk_gQ' \
--header 'DPoP: eyJ0eXAiOiJkcG9wK2p3dCIsImFsZyI6IlBTMjU2IiwiandrIjp7Imt0eSI6IlJTQSIsIng1dCNTMjU2IjoiQkNiamg3clZpTHZHczhqODZYbDRtWHNpQlJKT1U2UGZUM21xZ3FyeXRBRSIsIm5iZiI6MTczMTQxOTQ3NywiZSI6IkFRQUIiLCJ1c2UiOiJzaWciLCJraWQiOiJyc2Ffa2V5IiwieDVjIjpbIk1JSURnRENDQW1pZ0F3SUJBZ0lHQVpNZ3BKZWFNQTBHQ1NxR1NJYjNEUUVCQlFVQU1Id3hEakFNQmdOVkJBTU1CVVpzZFdabU1SSXdFQVlEVlFRTERBbERZWFFnU0c5MWMyVXhIREFhQmdOVkJBb01FME5oYldKeWFXUm5aU0JWYm1sMlpYSnpkSGt4RWpBUUJnTlZCQWNNQ1VOaGJXSnlhV1JuWlRFWE1CVUdBMVVFQ0F3T1EyRnRZbkpwWkdkbGMyaHBjbVV4Q3pBSkJnTlZCQVlUQWtkQ01CNFhEVEkwTVRFeE1qRXpOVEV4TjFvWERUTTBNVEV4TURFek5URXhOMW93ZFRFT01Bd0dBMVVFQXd3RlIybHVaMlV4RXpBUkJnTlZCQXNNQ2tSdlp5QkxaVzV1Wld3eEdqQVlCZ05WQkFvTUVVOTRabTl5WkNCVmJtbDJaWEp6YVhSNU1ROHdEUVlEVlFRSERBWlBlR1p2Y21ReEZEQVNCZ05WQkFnTUMwOTRabTl5WkhOb2FYSmxNUXN3Q1FZRFZRUUdFd0pIUWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTHh0NFlNYWxLRnFxQ3ZobGRtK0FuWWJrMlRjOHZyVzdUazg2bHpJaHN3YXk4WGpwRWN5NTJpWHcvVWpYN01wZ2Nsc2RQKytjY3VTR2VhelpqZFBtblIxQXdhY0NWNm5JbklmeDJTTkhWMXhGV1d5cWZYR0JGN2ZibHZCMTJMWnVLeXRCK28yWFJ4UkI1elRkWE16c2NrSHp0Q0hoUm9ENzRoSmgwUjdMQTRXZ1VjU3FETjQ1d1d0NGZEdTdQR1hGbDN3b0lYT0pZYkpHVGN0RU0yaHorUElFNmRONlR3Y3FqczhXL0lBVmN6dmxVblpXbVNnejh5S05YWWN4TCtnRGlvdk5EY3ZsdVpiMjBoYzVSeHhDNmMzVUlCMTJDUGQxb1ErK1VWVjRsWGowSWdsUWs1Mzd3bE1WQTYyNUJuby9FeC9ZaVh1aW9zaVVyTHVJMk4rSmhNQ0F3RUFBYU1QTUEwd0N3WURWUjBQQkFRREFnZUFNQTBHQ1NxR1NJYjNEUUVCQlFVQUE0SUJBUUJONHc1dmJoZmpTZUFiZHNNbjY1UkVGRHFwQmV1WEFidXRCUWJSeFpzSkZEekhSZkxkUUNUcGpRT0FSWWxQZkNwWnVCRVpuS2lsWldoQmVPd1pLcXlwQTB3aXpjTE5oVEgvUXBPdCt2ZzFoQnJ5M0RSWGlibnRDSDY4TnlLZmVNNS9uTVBRdWpKeS9QUzFwb2crR25zNnFpbU5GN1pKeHRvY0pLaWJiNHkyaG5uK1NDZHpTSkJRYnE4UTB2alZZQkhlU2lDMGZ2TDRxYkJNZmQ3QWhzbm5wQ3lyMUNHM1ZTTy8vTXFUQjUvMTJ3NlBnTnlIWjZScjNpZjEwNFpPWnA3UzVFcGgyRGVzRERtVENnL3E5NWJLcnpNSHJrSURtQkVKZ25jQ05WSTdxUXVueTJpZDI2VERCTFNsWEw4WTd2NHZ3Y3hqcmdjTEthV0ZFVW9wekRwTyJdLCJleHAiOjIwNDY3Nzk0NzcsIm4iOiJ2RzNoZ3hxVW9XcW9LLUdWMmI0Q2RodVRaTnp5LXRidE9UenFYTWlHekJyTHhlT2tSekxuYUpmRDlTTmZzeW1CeVd4MF83NXh5NUlaNXJObU4wLWFkSFVEQnB3SlhxY2ljaF9IWkkwZFhYRVZaYktwOWNZRVh0OXVXOEhYWXRtNHJLMEg2alpkSEZFSG5OTjFjek94eVFmTzBJZUZHZ1B2aUVtSFJIc3NEaGFCUnhLb00zam5CYTNoOE83czhaY1dYZkNnaGM0bGhza1pOeTBRemFIUDQ4Z1RwMDNwUEJ5cU96eGI4Z0JWek8tVlNkbGFaS0RQeklvMWRoekV2NkFPS2k4ME55LVc1bHZiU0Z6bEhIRUxwemRRZ0hYWUk5M1doRDc1UlZYaVZlUFFpQ1ZDVG5mdkNVeFVEcmJrR2VqOFRIOWlKZTZLaXlKU3N1NGpZMzRtRXcifX0.eyJodG0iOiJQT1NUIiwiaHR1IjoiaHR0cHM6Ly9hcGkuc3RhZ2UucmVkZWJhbm9wZW5maW5hbmNlLmNvbS81MS9kb21lc3RpYy1wYXltZW50cy92MSIsImF0aCI6Inh3cVJrM1hyWF9uTElLTXFUX3lOX0k5X2ZYYmlvR1NyMDJxcVB1dXluYnMiLCJpYXQiOjE3NTQwMzYwMjgsImp0aSI6IlpDY2VKanB1S05qVHAtRlAifQ.lNG4w6UUyJslbOVI0-gZnOgstOtEfwOQLeUXVkiuxwQX67t1Esbh6w97CKphs2HQol4i_1T0KACcZKYGowa3UaBKlgDYzGfj4OtiUVJ3lS7TE-Gk61THtuJAnWe3t8NQ27Zs4e22cvRL3iUPuinumrg-Fc2JnCJWv_8WEh5yPcEoHW1vJE1MTUTUkRs3WC7CL6fFVNAwCqyx-0G1hFk7oRuNfbbTj-KCrrmHPFMgv-4gFNSEX3MLS21TYWzKqnO3OqDEQQGJljO5X-5W2AICAQYL8QIunlHrepqPuUNgkH1KwEwYRG7IjFdCDlki9uq16V1FiMDUdlgYhc4nFiKSnA' \
--data '{"Data":{"ConsentId":"bc51fa51-bf94-4e10-9e8b-fb471a671e0f","Initiation":{"InstructionIdentification":"0555ca8f-bca6-470e-a192-2e897578a30","EndToEndIdentification":"DEMO USER","InstructedAmount":{"Amount":"115.00","Currency":"COP"},"CreditorAccount":{"SchemeName":"CAHO","Identification":"0036024594","Name":"Test user","SecondaryIdentification":"MERCHANTID"},"DebtorAccount":{"SchemeName":"CAHO","Identification":"3559898989","Name":"JESSICA","SecondaryIdentification":"1001017"},"CreditorPostalAddress":{"AddressLine":["test"],"AddressType":"Business","BuildingNumber":"27","Country":"GB","CountrySubDivision":"Wessex","Department":"test","PostCode":"7U31 2ZZ","StreetName":"AcaciaAvenue","SubDepartment":"test sub","TownName":"Sparsholt"},"SupplementaryData":{"DebtorMobileNumber":"3138745276"},"RemittanceInformation":{"Unstructured":"Internal ops code 5120101","Reference":"FRESCO-101"}}},"Risk":{"PaymentContextCode":"Other","MerchantCategoryCode":"5967","MerchantCustomerIdentification":"053598653254","DeliveryAddress":{"AddressLine":["Flat 7","Acacia Lodge"],"StreetName":"AcaciaAvenue","BuildingNumber":"27","PostCode":"7U31 2ZZ","TownName":"Sparsholt","CountrySubDivision":"Wessex","Country":"GB"}}}'
Respuesta exitosa (201) de la Solicitud POST: se pudo crear y enviar la orden de pago:
{
"Data": {
"DomesticPaymentId": "3859a0f0-e499-497e-8c73-d10e2e51d9d6",
"ConsentId": "bc51fa51-bf94-4e10-9e8b-fb471a671e0f",
"CreationDateTime": "2025-08-01T08:13:50+00:00",
"Status": "AcceptedSettlementInProcess",
"StatusUpdateDateTime": "2025-08-01T08:14:05+00:00",
"Refund": {
"Account": {
"SchemeName": "CAHO",
"Identification": "3559898989",
"Name": "JESSICA",
"SecondaryIdentification": "1001017"
}
},
"Charges": [
{
"Amount": {
"Amount": "115.00",
"Currency": "COP"
}
}
],
"Initiation": {
"InstructionIdentification": "0555ca8f-bca6-470e-a192-2e897578a308",
"EndToEndIdentification": "DEMO USER",
"InstructedAmount": {
"Amount": "115.00",
"Currency": "COP"
},
"DebtorAccount": {
"SchemeName": "CAHO",
"Identification": "3559898989",
"SecondaryIdentification": "1001017"
},
"CreditorAccount": {
"SchemeName": "CAHO",
"Identification": "0036024594",
"Name": "Test user",
"SecondaryIdentification": "MERCHANTID"
},
"CreditorPostalAddress": {
"AddressType": "Business",
"Department": "test",
"SubDepartment": "test sub",
"StreetName": "AcaciaAvenue",
"BuildingNumber": "27",
"PostCode": "7U31 2ZZ",
"TownName": "Sparsholt",
"CountrySubDivision": "Wessex",
"Country": "GB",
"AddressLine": [
"test"
]
},
"RemittanceInformation": {
"Unstructured": "Internal ops code 5120101",
"Reference": "FRESCO-101"
}
}
},
"Links": {
"Self": "https://api.stage.redebanopenfinance.com/51/domestic-payments/v1/3859a0f0-e499-497e-8c73-d10e2e51d9d6"
},
"Meta": {}
}
x-idempotency-key es un encabezado HTTP personalizado que garantiza que una operación específica se realice solo una vez, incluso si la solicitud se envía varias veces. Es una cadena única (normalmente un UUID) generada para cada solicitud.
Nota: para más información sobre las cabeceras de la API, por favor refiérase a la sección específica del recurso correspondiente.
8. Obtener una orden de pago
El TPP puede obtener el estado actual de una orden de pago previamente enviada mediante la solicitud GET /{BANK}/domestic-payments/v1/{DOMESTICPAYMENTID}.
Solicitud GET: obtener la orden de pago mediante su identificador:
curl --location 'https://api.snd.redebanopenfinance.com/51/domestic-payments/v1/3859a0f0-e499-497e-8c73-d10e2e51d9d6' \
--key ./{network.key} \
--cert ./{network.pem} \
--header 'Content-Type: application/json' \
--header 'DPoP: eyJ0eXAiOiJkcG9wK2p3dCIsImFsZyI6IlBTMjU2IiwiandrIjp7Imt0eSI6IlJTQSIsIng1dCNTMjU2IjoiQkNiamg3clZpTHZHczhqODZYbDRtWHNpQlJKT1U2UGZUM21xZ3FyeXRBRSIsIm5iZiI6MTczMTQxOTQ3NywiZSI6IkFRQUIiLCJ1c2UiOiJzaWciLCJraWQiOiJyc2Ffa2V5IiwieDVjIjpbIk1JSURnRENDQW1pZ0F3SUJBZ0lHQVpNZ3BKZWFNQTBHQ1NxR1NJYjNEUUVCQlFVQU1Id3hEakFNQmdOVkJBTU1CVVpzZFdabU1SSXdFQVlEVlFRTERBbERZWFFnU0c5MWMyVXhIREFhQmdOVkJBb01FME5oYldKeWFXUm5aU0JWYm1sMlpYSnpkSGt4RWpBUUJnTlZCQWNNQ1VOaGJXSnlhV1JuWlRFWE1CVUdBMVVFQ0F3T1EyRnRZbkpwWkdkbGMyaHBjbVV4Q3pBSkJnTlZCQVlUQWtkQ01CNFhEVEkwTVRFeE1qRXpOVEV4TjFvWERUTTBNVEV4TURFek5URXhOMW93ZFRFT01Bd0dBMVVFQXd3RlIybHVaMlV4RXpBUkJnTlZCQXNNQ2tSdlp5QkxaVzV1Wld3eEdqQVlCZ05WQkFvTUVVOTRabTl5WkNCVmJtbDJaWEp6YVhSNU1ROHdEUVlEVlFRSERBWlBlR1p2Y21ReEZEQVNCZ05WQkFnTUMwOTRabTl5WkhOb2FYSmxNUXN3Q1FZRFZRUUdFd0pIUWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTHh0NFlNYWxLRnFxQ3ZobGRtK0FuWWJrMlRjOHZyVzdUazg2bHpJaHN3YXk4WGpwRWN5NTJpWHcvVWpYN01wZ2Nsc2RQKytjY3VTR2VhelpqZFBtblIxQXdhY0NWNm5JbklmeDJTTkhWMXhGV1d5cWZYR0JGN2ZibHZCMTJMWnVLeXRCK28yWFJ4UkI1elRkWE16c2NrSHp0Q0hoUm9ENzRoSmgwUjdMQTRXZ1VjU3FETjQ1d1d0NGZEdTdQR1hGbDN3b0lYT0pZYkpHVGN0RU0yaHorUElFNmRONlR3Y3FqczhXL0lBVmN6dmxVblpXbVNnejh5S05YWWN4TCtnRGlvdk5EY3ZsdVpiMjBoYzVSeHhDNmMzVUlCMTJDUGQxb1ErK1VWVjRsWGowSWdsUWs1Mzd3bE1WQTYyNUJuby9FeC9ZaVh1aW9zaVVyTHVJMk4rSmhNQ0F3RUFBYU1QTUEwd0N3WURWUjBQQkFRREFnZUFNQTBHQ1NxR1NJYjNEUUVCQlFVQUE0SUJBUUJONHc1dmJoZmpTZUFiZHNNbjY1UkVGRHFwQmV1WEFidXRCUWJSeFpzSkZEekhSZkxkUUNUcGpRT0FSWWxQZkNwWnVCRVpuS2lsWldoQmVPd1pLcXlwQTB3aXpjTE5oVEgvUXBPdCt2ZzFoQnJ5M0RSWGlibnRDSDY4TnlLZmVNNS9uTVBRdWpKeS9QUzFwb2crR25zNnFpbU5GN1pKeHRvY0pLaWJiNHkyaG5uK1NDZHpTSkJRYnE4UTB2alZZQkhlU2lDMGZ2TDRxYkJNZmQ3QWhzbm5wQ3lyMUNHM1ZTTy8vTXFUQjUvMTJ3NlBnTnlIWjZScjNpZjEwNFpPWnA3UzVFcGgyRGVzRERtVENnL3E5NWJLcnpNSHJrSURtQkVKZ25jQ05WSTdxUXVueTJpZDI2VERCTFNsWEw4WTd2NHZ3Y3hqcmdjTEthV0ZFVW9wekRwTyJdLCJleHAiOjIwNDY3Nzk0NzcsIm4iOiJ2RzNoZ3hxVW9XcW9LLUdWMmI0Q2RodVRaTnp5LXRidE9UenFYTWlHekJyTHhlT2tSekxuYUpmRDlTTmZzeW1CeVd4MF83NXh5NUlaNXJObU4wLWFkSFVEQnB3SlhxY2ljaF9IWkkwZFhYRVZaYktwOWNZRVh0OXVXOEhYWXRtNHJLMEg2alpkSEZFSG5OTjFjek94eVFmTzBJZUZHZ1B2aUVtSFJIc3NEaGFCUnhLb00zam5CYTNoOE83czhaY1dYZkNnaGM0bGhza1pOeTBRemFIUDQ4Z1RwMDNwUEJ5cU96eGI4Z0JWek8tVlNkbGFaS0RQeklvMWRoekV2NkFPS2k4ME55LVc1bHZiU0Z6bEhIRUxwemRRZ0hYWUk5M1doRDc1UlZYaVZlUFFpQ1ZDVG5mdkNVeFVEcmJrR2VqOFRIOWlKZTZLaXlKU3N1NGpZMzRtRXcifX0.eyJodG0iOiJQT1NUIiwiaHR1IjoiaHR0cHM6Ly9hcGkuc2l0LnJlZGViYW5vcGVuZmluYW5jZS5jb20vODA3L2JhY2stY2hhbm5lbC1hdXRoL3YxL2M2MDFlN2RhLWJlMTUtNDA2MC04NDYzLTkzNmRjZjY4ZDdkOCIsImF0aCI6Ik91bERpbVVEUDByMmVqbEdGazJrRWlhcm12MEVjTTRpNnEteWowTlI0Z00iLCJpYXQiOjE3NTQwNDk1MTIsImp0aSI6IjNHQmZWcWRhU2ZUdzFsdWUifQ.q9MX0HLDmuKYRzf_nXLDciKo7zKYyXBLryDrU-GXY6P-K1h4tqa7LU_5s_yYEOI0cwW3oAdE28FnSty5xPzmTkKEGY1WAdXoat83zRL_xyP8Y9RVGosld5kC8Nds872p9YVRtltCOO91JwhQWfaAR-piOFVWGx6zzhD788-bKH_dFTdU-Q3-v-RviLI8m_ZuldJWPntR_Nvvkby2UPta1BeEIOYc16xc7blp69cFxvOHddi5uojDi6pyF73pYBbG_KbFEWnZz9r6YpgJVrMt7oieSfPtnwa2PWmikQ8_B0a6Pmmx4mHLQTOE2AA7zUPMznwR2iszQm8Pprm9vbhp2A' \
--header 'Authorization: DPoP {{CCG_Token}'
Respuesta exitosa (200) de la Solicitud GET cuando se encuentra el pago con el identificador provisto:
{
"Data": {
"DomesticPaymentId": "3859a0f0-e499-497e-8c73-d10e2e51d9d6",
"ConsentId": "bc51fa51-bf94-4e10-9e8b-fb471a671e0f",
"CreationDateTime": "2025-08-01T08:13:50+00:00",
"Status": "Rejected",
"StatusUpdateDateTime": "2025-08-01",
"Charges": [
{
"Amount": {
"Amount": "115.00",
"Currency": "COP"
}
}
],
"Initiation": {
"InstructionIdentification": "0555ca8f-bca6-470e-a192-2e897578a30",
"EndToEndIdentification": "DEMO USER",
"InstructedAmount": {
"Amount": "115.00",
"Currency": "COP"
},
"DebtorAccount": {
"SchemeName": "CAHO",
"Identification": "3559898989",
"SecondaryIdentification": "1001017"
},
"CreditorAccount": {
"SchemeName": "CAHO",
"Identification": "0036024594",
"Name": "Test user",
"SecondaryIdentification": "MERCHANTID"
}
}
},
"Links": {
"Self": "https://api.stage.redebanopenfinance.com/51/domestic-payments/v1"
},
"Meta": {}
}