CONSULTA DE TRANSACCIONES
Este caso de uso permite que un TPP acceda, a través del ASPSP, al historial de transacciones bancarias de un usuario, siempre bajo un consentimiento previamente autorizado.
Gracias a los permisos definidos en el consentimiento, el TPP puede consultar información como fechas, montos, descripciones y tipo de movimientos (créditos o débitos), de acuerdo con el alcance autorizado.
Todo esto se realiza respetando los límites definidos en el consentimiento.
Este flujo asegura que el acceso a la información bancaria se realice de forma segura, controlada y con total transparencia para el usuario.
Para poder realizar el flujo correctamente lo debe de hacer siguiendo los siguientes pasos:
Paso 1. Método GET Get OIDC well-known end-point
El “Get OIDC well-known end-point” es la petición HTTP GET que un cliente envía a la ruta /.well-known/openid-configuration de un servidor OpenID Connect para descargar, en formato JSON, la configuración pública del proveedor: URLs de autorización, token, revocación y claves (JWKS), scopes soportados, algoritmos de firma, etc.
Para poder ejecutar el siguiente método se debe de tomar en cuenta haber realizado correctamente las configuraciones anteriores.
GET {{issuer}}/.well-known/openid-configuration
Parameters
| Name | Type | Location | Example Value |
|---|---|---|---|
| {{issuer}} Required | String | Domain | https://auth1.sbx.bam.com.gt |
| Content-Type Required | String | Header | application/x-www-form-urlencoded |
| Authorization Required | String | Header | Basic {{basicToken}} |
| grant_type Required | String | Body | client_credentials |
| scope Required | String | Body | openid |
Valor de Variables
{{issuer}},Content-Type, {{basicToken}}, grant_type,scope y variables adicionales estaran en el archivo .json que le comparte BAM al momento de su integracion.Responses
200 - Succesful
{
"issuer": "https://auth1.sbx.bam.com.gt",
"claims_parameter_supported": true,
"claims_supported": [
"openbanking_intent_id",
"acr"
],
"grant_types_supported": [
"authorization_code",
"client_credentials",
"refresh_token",
"urn:ietf:params:oauth:grant-type:jwt-bearer",
"urn:openid:params:grant-type:ciba"
],
"response_types_supported": [
"code",
"code id_token"
],
"request_parameter_supported": true,
"request_uri_parameter_supported": false,
"require_request_uri_registration": true,
"scopes_supported": [
"openid",
"accounts",
"payments",
"fundsconfirmations",
"consents",
"resources",
"credit-cards-accounts",
"customers",
"loans",
"financings",
"invoice-financings",
"unarranged-accounts-overdraft",
"consumption",
"lg",
"recurring-payments",
"bank-fixed-incomes",
"recurring-consent"
],
"token_endpoint_auth_methods_supported": [
"client_secret_basic",
"client_secret_jwt",
"tls_client_auth",
"private_key_jwt"
],
"tls_client_certificate_bound_access_tokens": true,
"code_challenge_methods_supported": [],
"claim_types_supported": [
"normal"
],
"subject_types_supported": [
"public"
],
"token_endpoint": "https://as1.sbx.bam.com.gt/token",
"authorization_endpoint": "https://auth1.sbx.bam.com.gt/auth",
"registration_endpoint": "https://rs1.sbx.bam.com.gt/dynamic-client-registration/v3.2/register",
"jwks_uri": "https://keystore.openbankingtest.org.uk/BAM/sbx.bam.com.gt.jwks",
"userinfo_endpoint": "https://as1.sbx.bam.com.gt/userinfo",
"introspection_endpoint": "https://as1.sbx.bam.com.gt/introspection",
"revocation_endpoint": "https://as1.sbx.bam.com.gt/token/revoke",
"pushed_authorization_request_endpoint": "https://as1.sbx.bam.com.gt/par",
"backchannel_authentication_endpoint": "https://as1.sbx.bam.com.gt/bc-authorize",
"backchannel_token_delivery_modes_supported": [
"poll",
"ping",
"push"
],
"backchannel_authentication_request_signing_alg_values_supported": [
"none",
"PS256",
"RS256",
"HS256"
],
"backchannel_user_code_parameter_supported": false,
"id_token_signing_alg_values_supported": [
"none",
"PS256",
"RS256",
"HS256"
],
"request_object_signing_alg_values_supported": [
"none",
"PS256",
"RS256",
"HS256"
],
"request_object_encryption_alg_values_supported": [
"RSA-OAEP"
],
"request_object_encryption_enc_values_supported": [
"A256GCM"
],
"token_endpoint_auth_signing_alg_values_supported": [
"none",
"PS256",
"RS256",
"HS256"
],
"acr_values_supported": [],
"mtls_endpoint_aliases": {
"token_endpoint": "https://as1.sbx.bam.com.gt/token",
"revocation_endpoint": "https://as1.sbx.bam.com.gt/token/revoke",
"introspection_endpoint": "https://as1.sbx.bam.com.gt/introspection",
"pushed_authorization_request_endpoint": "https://as1.sbx.bam.com.gt/par"
},
"authorization_details_types_supported": [],
"authorization_signing_alg_values_supported": [],
"authorization_encryption_alg_values_supported": [],
"authorization_encryption_enc_values_supported": [],
"response_modes_supported": [
"query",
"fragment"
],
"userinfo_signing_alg_values_supported": [
"PS256",
"RS256",
"HS256",
"none"
],
"userinfo_encryption_alg_values_supported": [],
"userinfo_encryption_enc_values_supported": [],
"id_token_encryption_alg_values_supported": [
"RSA-OAEP-256"
],
"id_token_encryption_enc_values_supported": [
"A128CBC-HS256"
]
}
404 - Not Found
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /.well-known/openid-configuratio</pre>
</body>
</html>
Paso 2. Método GET Prepare private key JWT
Este método construye un JSON Web Token que incluye los datos de identificación del cliente (issuer, subject, etc) y lo firma con la clave privada, de modo que al enviarlo como prueba (client_assertion) el servidor de autorización pueda validar de forma segura la identidad del cliente sin usar secretos compartidos.
Para poder ejecutar el siguiente método se debe de tomar en cuenta haber realizado correctamente las configuraciones anteriores.
GET
{{rs}}/o3/v1.0/message-signature
Parameters
| Name | Type | Location | Example Value |
|---|---|---|---|
| {{rs}} Required | String | Domain | https://rs1.sbx.bam.com.gt |
| Content-Type Required | String | Header | application/json |
Example Request Body
{
"header": {
"alg": "PS256",
"kid": "{{kid-local}}"
},
"body": {
"aud": "{{issuer}}",
"exp": {{exp}},
"iss": "{{_clientId}}",
"sub": "{{_clientId}}",
"jti": "{{$guid}}",
"iat": {{nbf}}
},
"signingKeyPEM": "{{pem-local}}"
}
Valores de Variables
{{rs}}, {{kid-local}}, {{issuer}}, {{_clientId}}, {{$guid}}, {{kid-local}}, {{pem-local}} y variables adicionales estaran en el archivo .json que le comparte BAM al momento de su integracion.{{exp}} y {{nbf}} se utilizan para determinar la valides y duración del token, ejemplo en postman en Pre-request.Responses
200 - Succesful
eyJhbGciOiJQUzI1NiIsImtpZCI6ImZja2ZYQmRmdllSZmR5YTVTdDhsVklPa1AyYyJ9.eyJhdWQiOiJodHRwczovL2F1dGgxLnNieC5iYW0uY29tLmd0IiwiZXhwIjoxNzUwMzY1MDY5LjUyNiwiaXNzIjoiNjc2ZWYyZjktYTllMS00ODY5LWFlZDEtNjJkOTRkNGE4ZTZjIiwic3ViIjoiNjc2ZWYyZjktYTllMS00ODY5LWFlZDEtNjJkOTRkNGE4ZTZjIiwianRpIjoiNGU2MGJkZTQtNzc1MC00NDQwLWJkZjYtYjU1OGIwNjM3ZTVjIiwiaWF0IjoxNzUwMzY0NzU5LjUyNn0.vwivopt3u9Wkn8oXjU6nj8jX_6UunBjKvM05YuCs-DGvBhcmsc7VqetS2p3ll8RZrjGvGYc7pXabXn79VLwmWAsAWCzGYoD9WfZaA0osrnSo5BhffdiLncTsJuq0tCfMsMCY9q7pumHLAtvWly9oi7osdPPozE37DBtH64PAr1Mdjw7cj1WcZAkt5rOt0niKnk28XxulEpUjBqtKhqilcdYCUQwAVkW0N7rpuS5WpRMD-BXKFzeC1llCHi4Lx4P87_M6Yma4SGSRnLCPHhYstJGvhNlCEswaeNNMX4cBgnsKsrDAnFGyY_-ST-EQWHfc8DIPNpCIoVaTxAKJ38UJQQ
400 - Bad Request
payload is empty
Paso 3. Método POST Step 2000: TPP-ASPSP Client Credentials Grant (accounts scope)
Este paso permite que un TPP se autentique directamente con el ASPSP para obtener un token de acceso que le permita consultar información de cuentas bancarias.
Se utiliza el flujo Client Credentials Grant de OAuth 2.0. No requiere intervención del usuario (PSU). El token obtenido tiene el alcance (scope) de accounts, es decir, solo permite acceder a información de cuentas. Es un paso previo necesario para que el TPP pueda interactuar con la API de cuentas de forma segura.
POST
{{tokenEndpoint}}
Parameters
| Name | Type | Location | Example Value |
|---|---|---|---|
| {{tokenEndpoint}} Required | String | Domain | https://as1.sbx.bam.com.gt/token |
| Content-Type Required | String | Header | application/x-www-form-urlencoded |
| AuthorizationRequired | String | Header | Basic {{basicToken}} |
| Accept Required | String | Header | application/json |
| grand_type Required | String | Body | client_credentials |
| scope Required | String | Body | accounts |
Valor de Variables
{{tokenEndpoint}},Content-Type, {{basicToken}}, Accept, grand_type, scope y variables adicionales estaran en el archivo .json que le comparte BAM al momento de su integracion.Responses
200 - Succesful
{
"access_token": "f94fa389-79b7-47b5-8817-b9f33b4a23b4",
"token_type": "Bearer",
"expires_in": 600,
"scope": "accounts"
}
400 - Bad Request
{
"error": "invalid_client",
"error_description": "authorization_header_incorrect: Authorization header must of the format 'Basic <token>'"
}
Paso 4. Método POST Step 3000: POST Account Access Consents
El método POST en este paso permite que un TPP (Third Party Provider) solicite al ASPSP (Account Servicing Payment Service Provider) la creación de un consentimiento para acceder a información específica de las cuentas bancarias de un usuario.
Este consentimiento define el alcance, duración y tipo de acceso solicitado (por ejemplo, lectura de saldos o transacciones). El ASPSP responde con un identificador único (Consent ID) que será utilizado en los siguientes pasos del proceso de autorización.
POST
{{rs}}/open-banking/v3.1/aisp/account-access-consents
Parameters
| Name | Type | Location | Example Value |
|---|---|---|---|
| {{rs}} Required | String | Domain | https://rs1.sbx.bam.com.gt |
| Content-Type Required | String | Header | application/json |
| x-fapi-financial-id Required | String | Header | {{obParticipantId}} |
| x-fapi-interaction-id Required | String | Header | {{$guid}} |
| authorization Required | String | Header | Bearer {{token-from-client-credentials-grant-accounts}} |
Valor de Variables
{{rs}},Content-Type, x-fapi-financial-id, x-fapi-interaction-id estaran en el archivo .json que le comparte BAM al momento de su integracion.{{token-from-client-credentials-grant-accounts}} es igual a el valor de access_token que devuelve en el paso POST Step 2000: TPP-ASPSP Client Credentials Grant (accounts scope)Request Body
Se procede con la creación del consentimiento conforme al alcance solicitado y los permisos que este incluirá, considerando los siguientes elementos clave:
{
"Data": {
"Permissions": [
"ReadAccountsBasic",
"ReadAccountsDetail",
"ReadTransactionsBasic",
"ReadTransactionsDetail",
"ReadTransactionsCredits",
"ReadTransactionsDebits"
],
"ExpirationDateTime": "2025-12-31T23:59:59+00:00",
"TransactionFromDateTime": "2024-04-01T10:40:00+02:00",
"TransactionToDateTime": "2025-12-31T10:40:00+02:00"
},
"Risk": {}
}
Responses
201 - Consents Created
{
"Data": {
"Permissions": [
"ReadAccountsBasic",
"ReadAccountsDetail",
"ReadTransactionsBasic",
"ReadTransactionsDetail",
"ReadTransactionsCredits",
"ReadTransactionsDebits"
],
"ExpirationDateTime": "2025-12-31T23:59:59+00:00",
"TransactionFromDateTime": "2024-04-01T10:40:00+02:00",
"TransactionToDateTime": "2025-12-31T10:40:00+02:00",
"ConsentId": "aac-76601da5-4266-47e1-ae82-df97ae914d8c",
"Status": "AwaitingAuthorisation",
"CreationDateTime": "2025-09-22T21:45:28.820Z",
"StatusUpdateDateTime": "2025-09-22T21:45:28.820Z"
},
"Risk": {},
"Links": {
"Self": "https://rs1.staging.bam.col-hub.ozoneapi.co.uk/open-banking/v3.1/aisp/account-access-consents/aac-76601da5-4266-47e1-ae82-df97ae914d8c"
},
"Meta": {}
}
Mantener el identificador aac al inicio del consentimiento. En el contexto de un consentimiento de tipo cuentas y transacciónes, es obligatorio incluir un identificador específico al inicio del objeto de consentimiento. Este identificador, que debe mantenerse constante durante todo el proceso, es reconocido por la API de Cuentas y Transacciones del ASPSP, la cual está diseñada para validar y procesar únicamente aquellas solicitudes que lo contengan.
La ausencia del identificador aac provocará el rechazo automático del consentimiento por parte del ASPSP, ya que este valor es esencial para la correcta interpretación y ejecución de las operaciones relacionadas con el acceso a cuentas.
400 - Bad Request
{
"Code": "UK.OBIE.Field.Invalid",
"Message": "incorrect_records: check Records",
"Errors": [
{
"ErrorCode": "UK.OBIE.Field.Invalid",
"Message": "incorrect_records"
}
]
}
Paso 5. Método POST POST to PAR end-point
Este endpoint recibe por POST todos los parámetros de la petición de autorización, los almacena de forma segura y devuelve un identificador (request_uri). Más tarde, ese request_uri se incluye en la URL de autorización que se le muestra al usuario. Así se asegura que los datos no viajen expuestos en la barra del navegador, se validan antes de redirigir al usuario y se evitan problemas de URLs demasiado largas o manipuladas.
Para poder ejecutar el siguiente método se debe de tomar en cuenta haber realizado correctamente las configuraciones anteriores.
POST
{{par-endpoint}}
Parameters
| Name | Type | Location | Value |
|---|---|---|---|
| {{par-endpoint}} Required | String | Domain | https://as1.sbx.bam.com.gt/par |
| Content-Type Required | String | Header | application/x-www-form-urlencoded |
| Authorization Required | String | Header | Basic {{basicToken}} |
Valores de Variables
{{par-endpoint}} es el valor pushed_authorization_request_endpoint que devuelve el método GET Step 1000: Get OIDC well-known end-point.Content-Type, {{basicToken}} estaran en el archivo .json que le comparte BAM al momento de su integracion.Request Body
El cuerpo de la solicitud de este método en postman esta en el formato "x-www-form-urlencoded".
Parameters
| Name | Type | Location | Value |
|---|---|---|---|
| client_id Required | String | body | {{_clientId}} |
| redirect_uri Required | String | body | {{redirectUrl}} |
| scope Required | String | body | payments:{{intent-id}} openid |
| response_type Required | String | body | code |
| state Required | String | body | {{$guid}} |
| code_challenge Required | String | body | {{code-challenge}} |
| client_assertion_type Required | String | body | urn:ietf:params:oauth:client-assertion-type:jwt-bearer |
| client_assertion Required | String | body | {{private_key_jwt}} |
| code_challenge_method Required | String | body | S256 |
Valores de Variables en Body
{{_clientId}}, {{redirect_uri}}. {{code-challenge}} y variables adicionales estaran en el archivo .json que le comparte BAM al momento de su integración.{{$guid}} es un identificador único generado aleatoriamente en el momento de la ejecución de la solicitud.{{intent-id}} es igual a el valor de ConsentId que devuelve POST Step 3000: POST Account Access Consents.{{private_key_jwt}} es igual a el valor responseBody que devuelve GET Prepare private key JWT.Responses
200 - Succesful
{
"request_uri": "urn:ietf:params:oauth:request_uri:ae217cda-eaa2-45d1-ad1e-76f3d5e67f65",
"expires_in": 300
}
400 - Bad Request
{
"error": "invalid_client",
"error_description": "private_key_jwt_sig_check: client secret jwt has an invalid signature - verify_error - Invalid URL"
}
Paso 6. Método GET O3 Util: GET par-auth-code-url
Este endpoint genera y devuelve la URL a la que debes redirigir al usuario para que autorice la petición de permisos. En lugar de exponer todos los parámetros en la barra de direcciones, aquí se incluye un identificador seguro que apunta a la solicitud ya registrada y validada en el servidor. De ese modo se ocultan los detalles sensibles, se evitan manipulaciones y se agiliza el flujo de autorización.
Para poder ejecutar el siguiente método se debe de tomar en cuenta haber realizado correctamente las configuraciones anteriores.
GET{{rs}}/o3/v1.0/par-auth-code-url/{{intent-id}}?request_uri={{par-urn}}&response_type=code&scope={{request-scope}}
Parameters
| Name | Type | Location | Value |
|---|---|---|---|
| {{rs}} Required | String | Domain | https://rs1.sbx.bam.com.gt |
| {{intent-id}} Required | String | Path Parameter | aac-73f99f0b-d0bd-4b40-8d3d-778237c80f7c |
| {{par-urn}} Required | String | Query Parameter | urn:ietf:params:oauth:request_uri:fffa297f-2d4a-4bd2-bc35-c1672c94e98b |
| {{request-scope}} Required | String | Query Parameter | {{request-scope}} |
Valores de Variables de Query Params
{{rs}} estara en el archivo .json que le comparte BAM al momento de su integracion.{{intent-id}} es igual a el valor de ConsentId que se devuelve en POSTStep 3000: POST Account Access Consents.{{par-urn}} es igual a el valor de request_uri que se devulve en POST POST to PAR end-point.{{request-scope}} Se le da el valor de accounts en el método POST 2000: POST file-payment-consentsHeader Params
| Name | Type | Location | Value |
|---|---|---|---|
| Authorization Required | String | Header | Basic {{basicToken}} |
Valores de Variables de Header Params
{{basicToken}} estara en el archivo .json que le comparte BAM al momento de su integracion.Responses
200 - Succesful
html
https://auth1.sbx.bam.com.gt/auth?client_id=676ef2f9-a9e1-4869-aed1-62d94d4a8e6c&response_type=code&scope=payments&request_uri=urn:ietf:params:oauth:request_uri:4ef85326-10a5-4ad1-950f-756d2c891272
400 - Bad Request
{
"error": "general_error",
"error_description": "default: An error occoured with an indeterminate error code request_uri_not_specified"
}
PASO 7. IMPORTANTE
Requerimiento de API
Al finalizar el proceso anterior este es un punto importante a mencionar, el enpoint anterior devuelve una URL de redirección que contiene datos que son esenciales para continuar con el procedimiento, el cual se debe de seguir de el lado de su organización, por lo tanto.
Se le solicita la implementación de una API, con el fin de que reciba la url de redirección y que responde el endpoint de BAM, por lo tanto su equipo debe de implementar una API publica la cual debe de estar a la espera de que nuestro endpoint le envié la URL de redirección.
Ejemplo de url de redirección enviado por el enpoint de BAM:
https://auth1.sbx.bam.com.gt/auth?client_id=676ef2f9-a9e1-4869-aed1-62d94d4a8e6c&response_type=code&scope=payments&request_uri=urn:ietf:params:oauth:request_uri:4ef85326-10a5-4ad1-950f-756d2c891272
Al momento de recibir La URL de redirección idealmente la api de su organización debería de responder con un 200 - Succesful indicando que recibió correctamente la url.
Responses
200 - Succesful
{
"status": "success",
"message": "URL de redireccion recibida"
}
Al recibir el Deeplink que devuelve en el paso GET O3 Util: GET par-auth-code-url el PSU debera de ingresar sus credenciales de acceso y autorizar el consentimiento:
Paso 1. Ingreso de credenciales de acceso para poder verificar la identidad del PSU.

Paso 2: Al ingresar correctamente se le presentara el consentimiento y las cuentas del PSU, deberá de seleccionar una cuenta y aceptar los términos y condiciones para poder continuar con la autorización del consentimiento.

Paso 3: Al realizar la selección de cuenta y aceptar los términos y condiciones, se obtendrá el consentimiento autorizado, deberá de dar un ultimo click en el botón aceptar para terminar el flujo.

Paso 4: Al finalizar el flujo el deeplink devolverá el authorization_code del consentimiento, el cual debe de enviar en el paso POST Step 7000: TPP-O3 Step 8: Auth Code Grant (accounts scope)` para continuar con el flujo.

Paso 8. Método POST Step 7000: TPP-O3 Step 8: Auth Code Grant (accounts scope)
Para poder ejecutar el siguiente método se debe de tomar en cuenta haber realizado correctamente las configuraciones anteriores, tomar en cuenta que acá es donde se espera la respuesta de la api que implementara su organización, deberá de retornar el authorzationCode para continuar con el flujo en los endpoint de BAM.
POST
{{tokenEndpoint}}
Parameters
| Name | Type | Location | Value |
|---|---|---|---|
| {{tokenEndpoint}} Required | String | Domain | https://as1.sbx.bam.com.gt/token |
| Content-Type Required | String | Header | application/x-www-form-urlencoded |
| Authorization Required | String | Header | Basic {{basicToken}} |
| Accept Required | String | Header | application/json |
| grand_type Required | String | Body | authorization_code |
| scope Required | String | Body | accounts |
| code Required | String | Body | {{authorizationCode}} |
| redirect_uri Required | String | Body | {{redirectUrl}} |
| code_verifier Required | String | Body | {{code-verifier}} |
| client_assertion_type Required | String | Body | urn:ietf:params:oauth:client-assertion-type:jwt-bearer |
| client_assertion Required | String | Body | {{private_key_jwt}} |
Valores de Variables
{{tokenEndpoint}}, {{basicToken}}, {{redirect_uri}}, {{code-verifier}} estara en el archivo .json que le comparte BAM al momento de su integracion.{{authorizationCode}} Se igual a el valor que retornara la api de su organización para continuar con el flujo.{{private_key_jwt}} es igual a el valor del responseBody que devuelve el metodo GET Prepare private key JWTResponses
200 - Succesful
{
"access_token": "ab563fe7-3659-4b96-a4b2-2cebd192c32c",
"expires_in": 432000,
"token_type": "Bearer",
"scope": "accounts:aac-9d3e6195-b8d6-47a3-9528-e195d4849889 openid",
"state": "c40e7010-4056-4bee-945a-95fbf9801e3a",
"refresh_token": "3778059b-5b9d-46bf-abf5-e67c644a4af3"
}
Para poder tener una trazabilidad correcta al recibir una respuesta exitosa en el response se encontrara la variable "scope" la cual incluye el consentId al que pertenece el codigo de autorizacion.
400 - Bad Request
{
"error": "invalid_grant",
"error_description": "invalid_auth_code_request_uri"
}
Paso 9. Método GET Step 8000: GET accounts
Permite al TPP recuperar desde el ASPSP la lista de cuentas bancarias autorizadas por el usuario mediante un consentimiento válido.
La respuesta incluye metadatos como AccountId, Currency, AccountType, AccountSubType, Status, entre otros necesarios para identificar las cuentas disponibles para operaciones posteriores dentro del alcance del consentimiento.
GET {{rs}}/open-banking/v3.1/aisp/accounts
Parameters
| Name | Type | Location | Value |
|---|---|---|---|
| {{rs}} Required | String | Domain | https://rs1.sbx.bam.com.gt |
| Content-Type Required | String | Header | application/json |
| x-fapi-financial-id Required | String | Header | {{obParticipantId}} |
| x-fapi-interaction-id Required | String | Header | {{interactionId}} |
| Authorization Required | String | Header | Bearer {{token-from-auth-code-grant-payments}} |
Valores de Variables
{{token-from-client-credentials-grant-payments}} este es el valor de access_token que devuelve en el paso POSTStep 7000: TPP-O3 Step 8: Auth Code Grant (accounts scope){{obParticipantId}}, {{interactionId}} estara en el archivo .json que le comparte BAM al momento de su integracion.{{interactionId}} es un UUID de interacción que cambia con cada ejecucion.Responses
200 - Succesful
{
"Data": {
"Account": [
{
"AccountId": "100004000000000000000002",
"Status": "Enabled",
"Currency": "GBP",
"Nickname": "nickName",
"AccountType": "Business",
"AccountSubType": "CreditCard",
"Description": "description",
"OpeningDate": "2017-04-05T10:43:07+00:00",
"MaturityDate": "2017-04-05T10:43:07+00:00",
"Account": [
{
"Name": "Luigi International",
"SchemeName": "UK.OBIE.SortCodeAccountNumber",
"Identification": "10000109010102",
"SecondaryIdentification": "secondaryIdentification"
},
{
"Name": "Luigi International",
"SchemeName": "UK.OBIE.IBAN",
"Identification": "GB42OZON81690771566409",
"SecondaryIdentification": "secondaryIdentification"
}
]
}
]
},
"Links": {
"Self": "https://rs1.sbx.bam.com.gt/open-banking/v3.1/aisp/accounts"
},
"Meta": {
"TotalPages": 1
}
}
401 - Unauthorized
{
"Code": "UK.OBIE.Header.Missing",
"Message": "missing_authorization_header: The authorization header is not specified.",
"Errors": [
{
"ErrorCode": "UK.OBIE.Header.Missing",
"Message": "missing_authorization_header: The authorization header is not specified.",
"Path": "Authorization"
}
]
}
Paso 10. Método GET Step 8003: GET transactions by account ID
Permite al TPP recuperar desde el ASPSP la lista de cuentas bancarias autorizadas por el usuario mediante un consentimiento válido.
La respuesta incluye metadatos como AccountId, Currency, AccountType, AccountSubType, Status, entre otros necesarios para identificar las cuentas disponibles para operaciones posteriores dentro del alcance del consentimiento.
GET {{rs}}/open-banking/v3.1/aisp/accounts/{{account-id}}/transactions
Parameters
| Name | Type | Location | Value |
|---|---|---|---|
| {{rs}} Required | String | Domain | https://rs1.sbx.bam.com.gt |
| Content-Type Required | String | Header | application/json |
| {{account-id}} Required | String | Path Parameter | {{account-id}} |
| x-fapi-financial-id Required | String | Header | {{obParticipantId}} |
| x-fapi-interaction-id Required | String | Header | {{interactionId}} |
| Authorization Required | String | Header | Bearer {{token-from-auth-code-grant-payments}} |
Valores de Variables
{{token-from-client-credentials-grant-payments}} este es el valor de access_token que devuelve en el paso POSTStep 7000: TPP-O3 Step 8: Auth Code Grant (accounts scope){{obParticipantId}}, {{interactionId}} estara en el archivo .json que le comparte BAM al momento de su integracion.{{interactionId}} es un UUID de interacción que cambia con cada ejecucion.{{account-id}} es el valor de AccountId que se devuelve en el paso 9. Método GET Step 8000: GET accountsResponses
200 - Succesful
{
"Data": {
"Transaction": [
{
"AccountId": "100004000000000000000002",
"TransactionId": "44cd9e5f-00d5-4a6f-afa0-691c83214361",
"TransactionReference": "payment",
"CreditDebitIndicator": "Debit",
"Status": "Pending",
"BookingDateTime": "2025-03-28T15:42:24.893Z",
"ValueDateTime": "2025-03-28T15:42:24.893Z",
"TransactionInformation": "rpSdJTS1waKluBE",
"Amount": {
"Amount": "946.59",
"Currency": "GBP"
},
"CreditorAccount": {
"SchemeName": "UK.OBIE.SortCodeAccountNumber",
"Identification": "00000079445177",
"Name": "Jones and Sons"
},
"DebtorAccount": {
"SchemeName": "UK.OBIE.SortCodeAccountNumber",
"Identification": "10000109010102",
"Name": "Luigi International",
"SecondaryIdentification": "secondaryIdentification"
},
"ProprietaryBankTransactionCode": {
"Code": "open-banking-sip-Debit",
"Issuer": "ozone"
},
"Balance": {
"CreditDebitIndicator": "Credit",
"Type": "ClosingAvailable",
"Amount": {
"Amount": "283.41",
"Currency": "GBP"
}
}
},
{
"AccountId": "100004000000000000000002",
"TransactionId": "e8e5379f-f6cb-4f36-9307-bd1adbc4a6fc",
"TransactionReference": "withdrawal",
"CreditDebitIndicator": "Debit",
"Status": "Pending",
"BookingDateTime": "2025-04-02T15:35:24.622Z",
"ValueDateTime": "2025-04-02T15:35:24.622Z",
"TransactionInformation": "VawbsXAH2CfTrHb",
"Amount": {
"Amount": "460.42",
"Currency": "GBP"
},
"CreditorAccount": {
"SchemeName": "UK.OBIE.SortCodeAccountNumber",
"Identification": "00000055098148",
"Name": "Kuhlman - Walsh"
},
"DebtorAccount": {
"SchemeName": "UK.OBIE.SortCodeAccountNumber",
"Identification": "10000109010102",
"Name": "Luigi International",
"SecondaryIdentification": "secondaryIdentification"
},
"ProprietaryBankTransactionCode": {
"Code": "open-banking-sip-Debit",
"Issuer": "ozone"
},
"Balance": {
"CreditDebitIndicator": "Credit",
"Type": "ClosingAvailable",
"Amount": {
"Amount": "11.81",
"Currency": "KWD"
}
}
},
{
"AccountId": "100004000000000000000002",
"TransactionId": "a58a02ef-c26a-4ada-a547-b534654f7e9d",
"TransactionReference": "payment",
"CreditDebitIndicator": "Debit",
"Status": "Pending",
"BookingDateTime": "2025-04-02T17:16:20.275Z",
"ValueDateTime": "2025-04-02T17:16:20.275Z",
"TransactionInformation": "i5XImJbiKExjOS_",
"Amount": {
"Amount": "43.54",
"Currency": "GBP"
},
"CreditorAccount": {
"SchemeName": "UK.OBIE.SortCodeAccountNumber",
"Identification": "00000013507362",
"Name": "Lang Inc"
},
"DebtorAccount": {
"SchemeName": "UK.OBIE.SortCodeAccountNumber",
"Identification": "10000109010102",
"Name": "Luigi International",
"SecondaryIdentification": "secondaryIdentification"
},
"ProprietaryBankTransactionCode": {
"Code": "open-banking-sip-Debit",
"Issuer": "ozone"
},
"Balance": {
"CreditDebitIndicator": "Credit",
"Type": "ClosingAvailable",
"Amount": {
"Amount": "1573.39",
"Currency": "KWD"
}
}
},
{
"AccountId": "100004000000000000000002",
"TransactionId": "5513a648-e439-453e-8d9e-32e0d94fdfc8",
"TransactionReference": "withdrawal",
"CreditDebitIndicator": "Debit",
"Status": "Pending",
"BookingDateTime": "2025-04-02T18:13:04.846Z",
"ValueDateTime": "2025-04-02T18:13:04.846Z",
"TransactionInformation": "rCp6FkdOfFNVWIu",
"Amount": {
"Amount": "224.35",
"Currency": "GTQ"
},
"CreditorAccount": {
"SchemeName": "UK.OBIE.SortCodeAccountNumber",
"Identification": "00000058429281",
"Name": "Cassin - Wuckert"
},
"DebtorAccount": {
"SchemeName": "UK.OBIE.SortCodeAccountNumber",
"Identification": "10000109010102",
"Name": "Luigi International",
"SecondaryIdentification": "secondaryIdentification"
},
"ProprietaryBankTransactionCode": {
"Code": "open-banking-sip-Debit",
"Issuer": "ozone"
},
"Balance": {
"CreditDebitIndicator": "Credit",
"Type": "ClosingAvailable",
"Amount": {
"Amount": "1809.46",
"Currency": "KWD"
}
}
},
{
"AccountId": "100004000000000000000002",
"TransactionId": "7be34525-9753-4f45-9a5b-41b3daea10ec",
"TransactionReference": "withdrawal",
"CreditDebitIndicator": "Debit",
"Status": "Pending",
"BookingDateTime": "2025-04-03T19:45:44.887Z",
"ValueDateTime": "2025-04-03T19:45:44.887Z",
"TransactionInformation": "FWjEt3DUFsQ5BgL",
"Amount": {
"Amount": "248.65",
"Currency": "GTQ"
},
"CreditorAccount": {
"SchemeName": "UK.OBIE.SortCodeAccountNumber",
"Identification": "00000049336769",
"Name": "Erdman, Kuphal and Kemmer"
},
"DebtorAccount": {
"SchemeName": "UK.OBIE.SortCodeAccountNumber",
"Identification": "10000109010102",
"Name": "Luigi International",
"SecondaryIdentification": "secondaryIdentification"
},
"ProprietaryBankTransactionCode": {
"Code": "open-banking-sip-Debit",
"Issuer": "ozone"
},
"Balance": {
"CreditDebitIndicator": "Credit",
"Type": "ClosingAvailable",
"Amount": {
"Amount": "1604.35",
"Currency": "KWD"
}
}
},
]
},
"Links": {
"Self": "https://rs1.sbx.bam.com.gt/open-banking/v3.1/aisp/accounts/100004000000000000000002/transactions"
},
"Meta": {
"TotalPages": 1
}
}
401 - Unauthorized
{
"Code": "UK.OBIE.Header.Missing",
"Message": "missing_authorization_header: The authorization header is not specified.",
"Errors": [
{
"ErrorCode": "UK.OBIE.Header.Missing",
"Message": "missing_authorization_header: The authorization header is not specified.",
"Path": "Authorization"
}
]
}