Ejemplos de consumo de las APIs

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ámetroValor ejemploDescripción
grant_typeclient_credentialsEl tipo de autorización (grant type) que se solicita.
Bank (parámetro en la ruta URL)51Identificador del banco proveedor.
scopepaymentsScope 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_idSC-2b265e7b-ed19-4309-84de-b96cf7d2d483ID de cliente (TPP) registrado en la plataforma APIs de Redeban.
client_assertion_typeurn:ietf:params:oauth:client-assertion-type:jwt-bearer'Tipo de afirmación estándar de OAuth2
client_assertionLa afirmación de cliente usando JWTEstá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#/.
DPoPtipo de token de accesoUna 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ámetroValor ejemploDescripción
DPoPtipo de token de accesoUna 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#/.
AuthorizationDPoP nHm6GnclS4hNKpy3hvydafaijsK811PlDZWaoE3Bj8wEn 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ámetroValor ejemploDescripción
scopepaymentsScope genérico para operaciones de pago.
Banco (parámetro en la ruta URL)51Identificador del banco proveedor.
client_idSC-2b265e7b-ed19-4309-84de-b96cf7d2d483ID de cliente del proveedor de servicios de pago externo (TPP) como formato SC- <UUID>.
response_typeCodeCódigo utilizado en OAuth2/OpenID para el flujo de Authorization code.
redirect_uriURL de redirección del TPPEsta 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_typeurn:ietf:params:oauth:client-assertion-type:jwt-bearer'Tipo de afirmación estándar en OAuth.
client_assertionEste valor es la afirmación de cliente usando JWTEstá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 methodEste valor debe ser S256Algoritmo 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_challengeEste valor es el code_challenge generado por el TPPValor 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_idbc5862ae-e6e3-4f78-ae23-8cdf81981fffID del consentimiento creado por el TPP en pasos anteriores..
stateEste valor es el estado de la aplicación del clienteParámetro opcional que puede ser usado por el TPP para asociar este proceso de autorización con un estado de aplicación.
scopePara 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_jktEste 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ámetroValor ejemploDescripción
Bank (parámetro en el path de la URL)51Identificador del banco.
client_idSC-2b265e7b-ed19-4309-84de-b96cf7d2d483ID de cliente del proveedor de servicios de pago externo (TPP) como formato SC - <UUID>.
request_uriurn:ietf:params:oauth:request_uri:pb2W2fj3NjgZeMeD3bN0RjSUiGSNzWjGZatECGspZrsrequest_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ámetroValor ejemploDescripción
grant_typeAuthorization CodeEl tipo de autorización (grant type) que se solicita.
Bank (parámetro en la ruta URL)51Identificador del banco proveedor.
DPoPtipo de token de accesouna 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_idSC-6b867038-0a94-4f3d-a700-f2f6e30e078aID de cliente (TPP) registrado en la plataforma APIs de Redeban.
client_assertion_typeurn:ietf:params:oauth:client-assertion-type:jwt-bearer'Tipo de afirmación estándar de OAuth2.
client_assertionLa afirmación de cliente usando JWTEstá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_verifierc7oXlQkXEjCF_zrepKZCs_U5nUzKUdee-SKJ3hRxOgjow_XwgeQ6ILSy8rJdAr3d8Q7YYJd8JJE-D4KBoBLol2wEeRTt-1gXMh-jVlem7lFERrDdIWIeFfUXWex8huXIUn 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_urihttps://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.
coded3srbzR3mq4oA75Lx0TIFLXS3lGbuf2q0PT0cvwVP80Có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": {}
}


© Redeban. Reservados todos los derechos