{"resource_docs":[{"operation_id":"OBPv4.0.0-createTransactionRequestAccount","implemented_by":{"version":"OBPv4.0.0","function":"createTransactionRequestAccount"},"request_verb":"POST","request_url":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/ACCOUNT/transaction-requests","summary":"Create Transaction Request (ACCOUNT)","description":"
When using ACCOUNT, the payee is set in the request body.
\nMoney goes into the BANK_ID and ACCOUNT_ID specified in the request body.
\nInitiate a Payment via creating a Transaction Request.
\nIn OBP, a transaction request
may or may not result in a transaction
. However, a transaction
only has one possible state: completed.
A Transaction Request
can have one of several states: INITIATED, NEXT_CHALLENGE_PENDING etc.
Transactions
are modeled on items in a bank statement that represent the movement of money.
Transaction Requests
are requests to move money which may or may not succeed and thus result in a Transaction
.
A Transaction Request
might create a security challenge that needs to be answered before the Transaction Request
proceeds.
\nIn case 1 person needs to answer security challenge we have next flow of state of an transaction request
:
\nINITIATED => COMPLETED
\nIn case n persons needs to answer security challenge we have next flow of state of an transaction request
:
\nINITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED
The security challenge is bound to a user i.e. in case of right answer and the user is different than expected one the challenge will fail.
\nRule for calculating number of security challenges:
\nIf product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges
\n(one for every user that has a View where permission "can_add_transaction_request_to_any_account"=true)
\nIn case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute default value is 1.
Transaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).
\nTransaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response.
\nThis provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.
The payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.
\nIn sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to ACCOUNT. See getTransactionRequestTypesSupportedByBank for all supported types.
\nIn sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.
\nIf a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.
\nYou can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.
\nThe following static FX rates are available in sandbox mode:
\n\nTransaction Requests satisfy PSD2 requirements thus:
\n1) A transaction can be initiated by a third party application.
\n2) The customer is informed of the charge that will incurred.
\n3) The call supports delegated authentication (OAuth)
\nSee this python code for a complete example of this flow.
\nThere is further documentation here
\nAuthentication is Mandatory
\nURL Parameters:
\n\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nBANK_ID: gh.29.uk
\nVIEW_ID: owner
\nJSON request body fields:
\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\namount: 10.12
\nbank_id: gh.29.uk
\ncurrency: EUR
\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\nto:
\nvalue: 5987953
\nJSON response body fields:
\n\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n\namount: 10.12
\nbank_code: CGHZ
\nbank_id: gh.29.uk
\n\n\nchallenges: challenges
\n\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\n\ncurrency: EUR
\ndate_of_birth: 2018-03-09
\n\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\n\n\nfrom:
\nfuture_date: 20200127
\niban: DE91 1000 0000 0123 4567 89
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\ninstructedAmount: 100
\n\nlegal_name: Eveline Tripman
\nlink:
\nmessage: 123456
\nmobile_phone_number: +49 30 901820
\nname: ACCOUNT_MANAGEMENT_FEE
\n\n\notherAccountRoutingAddress: otherAccountRoutingAddress
\notherAccountRoutingScheme: otherAccountRoutingScheme
\notherAccountSecondaryRoutingAddress: otherAccountSecondaryRoutingAddress
\notherAccountSecondaryRoutingScheme: otherAccountSecondaryRoutingScheme
\notherBankRoutingAddress: otherBankRoutingAddress
\notherBankRoutingScheme: otherBankRoutingScheme
\notherBranchRoutingAddress: otherBranchRoutingAddress
\notherBranchRoutingScheme: otherBranchRoutingScheme
\nstart_date: 2020-01-27
\n\n\nto:
\n\n\ntype:
\nuser_id: 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
\nvalue: 5987953
\n\n\n\n\nto_simple: to_simple
\n\n\n\n","description_markdown":"When using ACCOUNT, the payee is set in the request body.\n\nMoney goes into the BANK_ID and ACCOUNT_ID specified in the request body.\n\nInitiate a Payment via creating a Transaction Request.\n\nIn OBP, a `transaction request` may or may not result in a `transaction`. However, a `transaction` only has one possible state: completed.\n\nA `Transaction Request` can have one of several states: INITIATED, NEXT_CHALLENGE_PENDING etc.\n\n`Transactions` are modeled on items in a bank statement that represent the movement of money.\n\n`Transaction Requests` are requests to move money which may or may not succeed and thus result in a `Transaction`.\n\nA `Transaction Request` might create a security challenge that needs to be answered before the `Transaction Request` proceeds.\nIn case 1 person needs to answer security challenge we have next flow of state of an `transaction request`:\n INITIATED => COMPLETED\nIn case n persons needs to answer security challenge we have next flow of state of an `transaction request`:\n INITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED\n\nThe security challenge is bound to a user i.e. in case of right answer and the user is different than expected one the challenge will fail.\n\nRule for calculating number of security challenges:\nIf product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges\n(one for every user that has a View where permission \"can_add_transaction_request_to_any_account\"=true)\nIn case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute default value is 1.\n\nTransaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).\n\nTransaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response.\nThis provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.\n\nThe payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.\n\nIn sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to ACCOUNT. See getTransactionRequestTypesSupportedByBank for all supported types.\n\nIn sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.\n\nIf a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.\n\nYou can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.\n\nThe following static FX rates are available in sandbox mode:\n\nhttps://apiexplorer-ii-sandbox.openbankproject.com//more?version=OBPv4.0.0&list-all-banks=false&core=&psd2=&obwg=#OBPv2_2_0-getCurrentFxRate\n\n\nTransaction Requests satisfy PSD2 requirements thus:\n\n1) A transaction can be initiated by a third party application.\n\n2) The customer is informed of the charge that will incurred.\n\n3) The call supports delegated authentication (OAuth)\n\nSee [this python code](https://github.com/OpenBankProject/Hello-OBP-DirectLogin-Python/blob/master/hello_payments.py) for a complete example of this flow.\n\nThere is further documentation [here](https://github.com/OpenBankProject/OBP-API/wiki/Transaction-Requests)\n\n\n\n \n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[ACCOUNT](/glossary#Account): \n\n\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[VIEW_ID](/glossary#this_view_id): owner\n\n\n\n\n\n**JSON request body fields:**\n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**to**](/glossary#to): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account**](/glossary#Account): \n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**allowed_attempts**](/glossary#allowed_attempts): 5\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**bank_code**](/glossary#bank_code): CGHZ\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**branch_number**](/glossary#branch_number): \n\n\n\n[**challenge_type**](/glossary#challenge_type): \n\n\n\n[**challenges**](/glossary#): challenges\n\n\n\n[**charge**](/glossary#charge): \n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**creditorAccount**](/glossary#creditoraccount): \n\n\n\n[**creditorName**](/glossary#creditorname): \n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**date_of_birth**](/glossary#): 2018-03-09\n\n\n\n[**debtorAccount**](/glossary#debtoraccount): \n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**details**](/glossary#details): \n\n\n\n[**end_date**](/glossary#end_date): \n\n\n\n[**from**](/glossary#from): \n\n\n\n[**future_date**](/glossary#future_date): 20200127\n\n\n\n[**iban**](/glossary#): DE91 1000 0000 0123 4567 89\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**instructedAmount**](/glossary#instructedamount): 100\n\n\n\n[**kyc_document**](/glossary#kyc_document): \n\n\n\n[**legal_name**](/glossary#): Eveline Tripman\n\n\n\n[**link**](/glossary#link): \n\n\n\n[**message**](/glossary#message): 123456\n\n\n\n[**mobile_phone_number**](/glossary#mobile_phone_number): +49 30 901820\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**nickname**](/glossary#nickname): \n\n\n\n[**number**](/glossary#number): \n\n\n\n[**otherAccountRoutingAddress**](/glossary#): otherAccountRoutingAddress\n\n\n\n[**otherAccountRoutingScheme**](/glossary#): otherAccountRoutingScheme\n\n\n\n[**otherAccountSecondaryRoutingAddress**](/glossary#): otherAccountSecondaryRoutingAddress\n\n\n\n[**otherAccountSecondaryRoutingScheme**](/glossary#): otherAccountSecondaryRoutingScheme\n\n\n\n[**otherBankRoutingAddress**](/glossary#): otherBankRoutingAddress\n\n\n\n[**otherBankRoutingScheme**](/glossary#): otherBankRoutingScheme\n\n\n\n[**otherBranchRoutingAddress**](/glossary#): otherBranchRoutingAddress\n\n\n\n[**otherBranchRoutingScheme**](/glossary#): otherBranchRoutingScheme\n\n\n\n[**start_date**](/glossary#): 2020-01-27\n\n\n\n[**status**](/glossary#status): \n\n\n\n[**summary**](/glossary#summary): \n\n\n\n[**to**](/glossary#to): \n\n\n\n[**transaction_ids**](/glossary#transaction_ids): \n\n\n\n[**transfer_type**](/glossary#transfer_type): \n\n\n\n[**type**](/glossary#type): \n\n\n\n[**user_id**](/glossary#): 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1\n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[to_counterparty](/glossary#to_counterparty): \n\n\n\n[to_sandbox_tan](/glossary#to_sandbox_tan): \n\n\n\n[to_sepa](/glossary#to_sepa): \n\n\n\n[to_sepa_credit_transfers](/glossary#to_sepa_credit_transfers): \n\n\n\n[to_simple](/glossary#): to_simple\n\n\n\n[to_transfer_to_account](/glossary#to_transfer_to_account): \n\n\n\n[to_transfer_to_atm](/glossary#to_transfer_to_atm): \n\n\n\n[to_transfer_to_phone](/glossary#to_transfer_to_phone): \n\n\n","example_request_body":{"to":{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"value":{"currency":"EUR","amount":"0"},"description":"this is for work"},"success_response_body":{"id":"4050046c-63b3-4868-8a22-14b4181d33a6","type":"SANDBOX_TAN","from":{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"details":{"to_sandbox_tan":{"bank_id":"String","account_id":"String"},"to_sepa":{"iban":"String"},"to_counterparty":{"counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh"},"to_simple":{"otherBankRoutingScheme":"BIC","otherBankRoutingAddress":"GENODEM1GLS","otherBranchRoutingScheme":"BRANCH-CODE","otherBranchRoutingAddress":"DERBY6","otherAccountRoutingScheme":"IBAN","otherAccountRoutingAddress":"DE91 1000 0000 0123 4567 89","otherAccountSecondaryRoutingScheme":"IBAN","otherAccountSecondaryRoutingAddress":"DE91 1000 0000 0123 4567 89"},"to_transfer_to_phone":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"mobile_phone_number":"+44 07972 444 876"}},"to_transfer_to_atm":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"legal_name":"Eveline Tripman","date_of_birth":"20181230","mobile_phone_number":"+44 07972 444 876","kyc_document":{"type":"String","number":"String"}}},"to_transfer_to_account":{"value":{"currency":"EUR","amount":"0"},"description":"String","transfer_type":"String","future_date":"20181230","to":{"name":"String","bank_code":"String","branch_number":"String","account":{"number":"String","iban":"String"}}},"to_sepa_credit_transfers":{"debtorAccount":{"iban":"12345"},"instructedAmount":{"currency":"EUR","amount":"0"},"creditorAccount":{"iban":"54321"},"creditorName":"John Miles"},"value":{"currency":"EUR","amount":"100"},"description":"This an optional field. Maximum length is 2000. It can be any characters here."},"transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"],"status":"COMPLETED","start_date":"1100-01-01T00:00:00Z","end_date":"1100-01-01T00:00:00Z","challenges":[{"id":"2fg8a7e4-6d02-40e3-a129-0b2bf89de8ub","user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1","allowed_attempts":3,"challenge_type":"OBP_TRANSACTION_REQUEST_CHALLENGE","link":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/TRANSACTION_REQUEST_TYPE/transaction-requests/TRANSACTION_REQUEST_ID/challenge"}],"charge":{"summary":"Rent the flat","value":{"currency":"EUR","amount":"0"}}},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30111: Invalid Bank Id. The BANK_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-30110: Invalid Account Id. The ACCOUNT_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-10001: Incorrect json format.","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-30003: Account not found. Please specify a valid value for ACCOUNT_ID.","OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID. ","OBP-40002: Insufficient authorisation to create TransactionRequest. The Transaction Request could not be created because the login user doesn't have access to the view of the from account or the consumer doesn't have the access to the view of the from account or the login user does not have the `CanCreateAnyTransactionRequest` role or the view does not have the permission canaddtransactionrequesttoanyaccount.","OBP-40001: Invalid value for TRANSACTION_REQUEST_TYPE","OBP-10001: Incorrect json format.","OBP-10002: Invalid Number. Could not convert value to a number.","OBP-40008: Can't send a payment with a value of 0 or less.","OBP-40003: Transaction Request Currency must be the same as From Account Currency.","OBP-00003: Transaction Requests is disabled in this API instance.","OBP-50000: Unknown Error."],"tags":["Transaction-Request","Payment Initiation Service (PIS)","PSD2"],"typed_request_body":{"type":"object","properties":{"to":{"type":"object","properties":{"bank_id":{"type":"string"},"account_id":{"type":"string"}}},"description":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"typed_success_response_body":{"type":"object","properties":{"type":{"type":"string"},"challenges":{"type":"array","items":{"type":"object","properties":{"challenge_type":{"type":"string"},"link":{"type":"string"},"id":{"type":"string"},"allowed_attempts":{"type":"integer"},"user_id":{"type":"string"}}}},"status":{"type":"string"},"end_date":{"type":"string","format":"date-time"},"charge":{"type":"object","properties":{"summary":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"transaction_ids":{"type":"array","items":{"type":"string"}},"from":{"type":"object","properties":{"bank_id":{"type":"string"},"account_id":{"type":"string"}}},"details":{"type":"object","properties":{"description":{"type":"string"},"to_sandbox_tan":{"type":"object","properties":{"account_id":{"type":"string"},"bank_id":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to_transfer_to_phone":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"to":{"type":"object","properties":{"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa":{"type":"object","properties":{"iban":{"type":"string"}}},"to_simple":{"type":"object","properties":{"otherBankRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingAddress":{"type":"string"},"otherBranchRoutingScheme":{"type":"string"},"otherAccountRoutingScheme":{"type":"string"},"otherAccountRoutingAddress":{"type":"string"},"otherBankRoutingScheme":{"type":"string"},"otherBranchRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingScheme":{"type":"string"}}},"to_counterparty":{"type":"object","properties":{"counterparty_id":{"type":"string"}}},"to_transfer_to_account":{"type":"object","properties":{"to":{"type":"object","properties":{"name":{"type":"string"},"account":{"type":"object","properties":{"number":{"type":"string"},"iban":{"type":"string"}}},"bank_code":{"type":"string"},"branch_number":{"type":"string"}}},"transfer_type":{"type":"string"},"description":{"type":"string"},"future_date":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa_credit_transfers":{"type":"object","properties":{"instructedAmount":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"debtorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorName":{"type":"string"}}},"to_transfer_to_atm":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to":{"type":"object","properties":{"date_of_birth":{"type":"string"},"kyc_document":{"type":"object","properties":{"type":{"type":"string"},"number":{"type":"string"}}},"legal_name":{"type":"string"},"mobile_phone_number":{"type":"string"}}}}}}},"start_date":{"type":"string","format":"date-time"},"id":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/ACCOUNT/transaction-requests","connector_methods":[]},{"operation_id":"OBPv3.0.0-getAccountsHeld","implemented_by":{"version":"OBPv3.0.0","function":"getAccountsHeld"},"request_verb":"GET","request_url":"/obp/v3.0.0/banks/BANK_ID/accounts-held","summary":"Get Accounts Held","description":"Get Accounts held by the current User if even the User has not been assigned the owner View yet.
\nCan be used to onboard the account to the API - since all other account and transaction endpoints require views to be assigned.
\noptional request parameters:
\nwhole url example:
\n/banks/BANK_ID/accounts-held?account_type_filter=330,CURRENT+PLUS&account_type_filter_operation=INCLUDE
Authentication is Mandatory
\nURL Parameters:
\nBANK_ID: gh.29.uk
\nJSON response body fields:
\n\n\n\nbank_id: gh.29.uk
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\nlabel: My Account
\n\nscheme: scheme value
\n","description_markdown":"Get Accounts held by the current User if even the User has not been assigned the owner View yet.\n\nCan be used to onboard the account to the API - since all other account and transaction endpoints require views to be assigned.\n\n\noptional request parameters:\n\n* account_type_filter: one or many accountType value, split by comma\n* account_type_filter_operation: the filter type of account_type_filter, value must be INCLUDE or EXCLUDE\n\nwhole url example:\n/banks/BANK_ID/accounts-held?account_type_filter=330,CURRENT+PLUS&account_type_filter_operation=INCLUDE\n \n\n\n\n \n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account_routings**](/glossary#account_routings): \n\n\n\n[**accounts**](/glossary#accounts): \n\n\n\n[**address**](/glossary#address): \n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**label**](/glossary#): My Account\n\n\n\n[**number**](/glossary#number): \n\n\n\n[**scheme**](/glossary#scheme): scheme value\n\n\n","success_response_body":{"accounts":[{"id":"12314","label":"My Account","bank_id":"123","number":"123","account_routings":[{"scheme":"AccountNumber","address":"4930396"}]}]},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-50000: Unknown Error."],"tags":["Account","Account Information Service (AIS)","View-Custom","PSD2"],"typed_success_response_body":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"object","properties":{"number":{"type":"string"},"label":{"type":"string"},"bank_id":{"type":"string"},"account_routings":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string"},"address":{"type":"string"}}}},"id":{"type":"string"}}}}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts-held","connector_methods":[]},{"operation_id":"OBPv4.0.0-createTransactionRequestSimple","implemented_by":{"version":"OBPv4.0.0","function":"createTransactionRequestSimple"},"request_verb":"POST","request_url":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/SIMPLE/transaction-requests","summary":"Create Transaction Request (SIMPLE)","description":"Special instructions for SIMPLE:
\nYou can transfer money to the Bank Account Number or IBAN directly.
\nInitiate a Payment via creating a Transaction Request.
\nIn OBP, a transaction request
may or may not result in a transaction
. However, a transaction
only has one possible state: completed.
A Transaction Request
can have one of several states: INITIATED, NEXT_CHALLENGE_PENDING etc.
Transactions
are modeled on items in a bank statement that represent the movement of money.
Transaction Requests
are requests to move money which may or may not succeed and thus result in a Transaction
.
A Transaction Request
might create a security challenge that needs to be answered before the Transaction Request
proceeds.
\nIn case 1 person needs to answer security challenge we have next flow of state of an transaction request
:
\nINITIATED => COMPLETED
\nIn case n persons needs to answer security challenge we have next flow of state of an transaction request
:
\nINITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED
The security challenge is bound to a user i.e. in case of right answer and the user is different than expected one the challenge will fail.
\nRule for calculating number of security challenges:
\nIf product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges
\n(one for every user that has a View where permission "can_add_transaction_request_to_any_account"=true)
\nIn case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute default value is 1.
Transaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).
\nTransaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response.
\nThis provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.
The payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.
\nIn sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to ACCOUNT. See getTransactionRequestTypesSupportedByBank for all supported types.
\nIn sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.
\nIf a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.
\nYou can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.
\nThe following static FX rates are available in sandbox mode:
\n\nTransaction Requests satisfy PSD2 requirements thus:
\n1) A transaction can be initiated by a third party application.
\n2) The customer is informed of the charge that will incurred.
\n3) The call supports delegated authentication (OAuth)
\nSee this python code for a complete example of this flow.
\nThere is further documentation here
\nAuthentication is Mandatory
\nURL Parameters:
\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nBANK_ID: gh.29.uk
\nSIMPLE: SIMPLE
\nVIEW_ID: owner
\nJSON request body fields:
\namount: 10.12
\ncharge_policy: SHARED
\ncurrency: EUR
\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\nname: ACCOUNT_MANAGEMENT_FEE
\nother_account_routing_address:
\n\nother_account_secondary_routing_address:
\nother_account_secondary_routing_scheme:
\n\n\n\n\nto:
\nvalue: 5987953
\nfuture_date: 20200127
\nJSON response body fields:
\n\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n\namount: 10.12
\nbank_code: CGHZ
\nbank_id: gh.29.uk
\n\n\nchallenges: challenges
\n\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\n\ncurrency: EUR
\ndate_of_birth: 2018-03-09
\n\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\n\n\nfrom:
\nfuture_date: 20200127
\niban: DE91 1000 0000 0123 4567 89
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\ninstructedAmount: 100
\n\nlegal_name: Eveline Tripman
\nlink:
\nmessage: 123456
\nmobile_phone_number: +49 30 901820
\nname: ACCOUNT_MANAGEMENT_FEE
\n\n\notherAccountRoutingAddress: otherAccountRoutingAddress
\notherAccountRoutingScheme: otherAccountRoutingScheme
\notherAccountSecondaryRoutingAddress: otherAccountSecondaryRoutingAddress
\notherAccountSecondaryRoutingScheme: otherAccountSecondaryRoutingScheme
\notherBankRoutingAddress: otherBankRoutingAddress
\notherBankRoutingScheme: otherBankRoutingScheme
\notherBranchRoutingAddress: otherBranchRoutingAddress
\notherBranchRoutingScheme: otherBranchRoutingScheme
\nstart_date: 2020-01-27
\n\n\nto:
\n\n\ntype:
\nuser_id: 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
\nvalue: 5987953
\n\n\n\n\nto_simple: to_simple
\n\n\n\n","description_markdown":"Special instructions for SIMPLE:\n\nYou can transfer money to the Bank Account Number or IBAN directly.\n\nInitiate a Payment via creating a Transaction Request.\n\nIn OBP, a `transaction request` may or may not result in a `transaction`. However, a `transaction` only has one possible state: completed.\n\nA `Transaction Request` can have one of several states: INITIATED, NEXT_CHALLENGE_PENDING etc.\n\n`Transactions` are modeled on items in a bank statement that represent the movement of money.\n\n`Transaction Requests` are requests to move money which may or may not succeed and thus result in a `Transaction`.\n\nA `Transaction Request` might create a security challenge that needs to be answered before the `Transaction Request` proceeds.\nIn case 1 person needs to answer security challenge we have next flow of state of an `transaction request`:\n INITIATED => COMPLETED\nIn case n persons needs to answer security challenge we have next flow of state of an `transaction request`:\n INITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED\n\nThe security challenge is bound to a user i.e. in case of right answer and the user is different than expected one the challenge will fail.\n\nRule for calculating number of security challenges:\nIf product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges\n(one for every user that has a View where permission \"can_add_transaction_request_to_any_account\"=true)\nIn case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute default value is 1.\n\nTransaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).\n\nTransaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response.\nThis provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.\n\nThe payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.\n\nIn sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to ACCOUNT. See getTransactionRequestTypesSupportedByBank for all supported types.\n\nIn sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.\n\nIf a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.\n\nYou can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.\n\nThe following static FX rates are available in sandbox mode:\n\nhttps://apiexplorer-ii-sandbox.openbankproject.com//more?version=OBPv4.0.0&list-all-banks=false&core=&psd2=&obwg=#OBPv2_2_0-getCurrentFxRate\n\n\nTransaction Requests satisfy PSD2 requirements thus:\n\n1) A transaction can be initiated by a third party application.\n\n2) The customer is informed of the charge that will incurred.\n\n3) The call supports delegated authentication (OAuth)\n\nSee [this python code](https://github.com/OpenBankProject/Hello-OBP-DirectLogin-Python/blob/master/hello_payments.py) for a complete example of this flow.\n\nThere is further documentation [here](https://github.com/OpenBankProject/OBP-API/wiki/Transaction-Requests)\n\n\n\n \n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[SIMPLE](/glossary#): SIMPLE\n\n\n\n[VIEW_ID](/glossary#this_view_id): owner\n\n\n\n\n\n**JSON request body fields:**\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**charge_policy**](/glossary#): SHARED\n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**other_account_routing_address**](/glossary#other_account_routing_address): \n\n\n\n[**other_account_routing_scheme**](/glossary#other_account_routing_scheme): \n\n\n\n[**other_account_secondary_routing_address**](/glossary#other_account_secondary_routing_address): \n\n\n\n[**other_account_secondary_routing_scheme**](/glossary#other_account_secondary_routing_scheme): \n\n\n\n[**other_bank_routing_address**](/glossary#other_bank_routing_address): \n\n\n\n[**other_bank_routing_scheme**](/glossary#other_bank_routing_scheme): \n\n\n\n[**other_branch_routing_address**](/glossary#other_branch_routing_address): \n\n\n\n[**other_branch_routing_scheme**](/glossary#other_branch_routing_scheme): \n\n\n\n[**to**](/glossary#to): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[future_date](/glossary#future_date): 20200127\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account**](/glossary#Account): \n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**allowed_attempts**](/glossary#allowed_attempts): 5\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**bank_code**](/glossary#bank_code): CGHZ\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**branch_number**](/glossary#branch_number): \n\n\n\n[**challenge_type**](/glossary#challenge_type): \n\n\n\n[**challenges**](/glossary#): challenges\n\n\n\n[**charge**](/glossary#charge): \n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**creditorAccount**](/glossary#creditoraccount): \n\n\n\n[**creditorName**](/glossary#creditorname): \n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**date_of_birth**](/glossary#): 2018-03-09\n\n\n\n[**debtorAccount**](/glossary#debtoraccount): \n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**details**](/glossary#details): \n\n\n\n[**end_date**](/glossary#end_date): \n\n\n\n[**from**](/glossary#from): \n\n\n\n[**future_date**](/glossary#future_date): 20200127\n\n\n\n[**iban**](/glossary#): DE91 1000 0000 0123 4567 89\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**instructedAmount**](/glossary#instructedamount): 100\n\n\n\n[**kyc_document**](/glossary#kyc_document): \n\n\n\n[**legal_name**](/glossary#): Eveline Tripman\n\n\n\n[**link**](/glossary#link): \n\n\n\n[**message**](/glossary#message): 123456\n\n\n\n[**mobile_phone_number**](/glossary#mobile_phone_number): +49 30 901820\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**nickname**](/glossary#nickname): \n\n\n\n[**number**](/glossary#number): \n\n\n\n[**otherAccountRoutingAddress**](/glossary#): otherAccountRoutingAddress\n\n\n\n[**otherAccountRoutingScheme**](/glossary#): otherAccountRoutingScheme\n\n\n\n[**otherAccountSecondaryRoutingAddress**](/glossary#): otherAccountSecondaryRoutingAddress\n\n\n\n[**otherAccountSecondaryRoutingScheme**](/glossary#): otherAccountSecondaryRoutingScheme\n\n\n\n[**otherBankRoutingAddress**](/glossary#): otherBankRoutingAddress\n\n\n\n[**otherBankRoutingScheme**](/glossary#): otherBankRoutingScheme\n\n\n\n[**otherBranchRoutingAddress**](/glossary#): otherBranchRoutingAddress\n\n\n\n[**otherBranchRoutingScheme**](/glossary#): otherBranchRoutingScheme\n\n\n\n[**start_date**](/glossary#): 2020-01-27\n\n\n\n[**status**](/glossary#status): \n\n\n\n[**summary**](/glossary#summary): \n\n\n\n[**to**](/glossary#to): \n\n\n\n[**transaction_ids**](/glossary#transaction_ids): \n\n\n\n[**transfer_type**](/glossary#transfer_type): \n\n\n\n[**type**](/glossary#type): \n\n\n\n[**user_id**](/glossary#): 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1\n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[to_counterparty](/glossary#to_counterparty): \n\n\n\n[to_sandbox_tan](/glossary#to_sandbox_tan): \n\n\n\n[to_sepa](/glossary#to_sepa): \n\n\n\n[to_sepa_credit_transfers](/glossary#to_sepa_credit_transfers): \n\n\n\n[to_simple](/glossary#): to_simple\n\n\n\n[to_transfer_to_account](/glossary#to_transfer_to_account): \n\n\n\n[to_transfer_to_atm](/glossary#to_transfer_to_atm): \n\n\n\n[to_transfer_to_phone](/glossary#to_transfer_to_phone): \n\n\n","example_request_body":{"to":{"name":"John Smith Ltd.","description":"The piano lession-Invoice No:68","other_bank_routing_scheme":"OBP","other_bank_routing_address":"gh.29.uk","other_account_routing_scheme":"OBP","other_account_routing_address":"36f8a9e6-c2b1-407a-8bd0-421b7119307e","other_account_secondary_routing_scheme":"IBAN","other_account_secondary_routing_address":"DE89370400440532013000","other_branch_routing_scheme":"OBP","other_branch_routing_address":"12f8a9e6-c2b1-407a-8bd0-421b7119307e"},"value":{"currency":"EUR","amount":"0"},"description":"This an optional field. Maximum length is 2000. It can be any characters here.","charge_policy":"SHARED","future_date":"20200127"},"success_response_body":{"id":"4050046c-63b3-4868-8a22-14b4181d33a6","type":"SANDBOX_TAN","from":{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"details":{"to_sandbox_tan":{"bank_id":"String","account_id":"String"},"to_sepa":{"iban":"String"},"to_counterparty":{"counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh"},"to_simple":{"otherBankRoutingScheme":"BIC","otherBankRoutingAddress":"GENODEM1GLS","otherBranchRoutingScheme":"BRANCH-CODE","otherBranchRoutingAddress":"DERBY6","otherAccountRoutingScheme":"IBAN","otherAccountRoutingAddress":"DE91 1000 0000 0123 4567 89","otherAccountSecondaryRoutingScheme":"IBAN","otherAccountSecondaryRoutingAddress":"DE91 1000 0000 0123 4567 89"},"to_transfer_to_phone":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"mobile_phone_number":"+44 07972 444 876"}},"to_transfer_to_atm":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"legal_name":"Eveline Tripman","date_of_birth":"20181230","mobile_phone_number":"+44 07972 444 876","kyc_document":{"type":"String","number":"String"}}},"to_transfer_to_account":{"value":{"currency":"EUR","amount":"0"},"description":"String","transfer_type":"String","future_date":"20181230","to":{"name":"String","bank_code":"String","branch_number":"String","account":{"number":"String","iban":"String"}}},"to_sepa_credit_transfers":{"debtorAccount":{"iban":"12345"},"instructedAmount":{"currency":"EUR","amount":"0"},"creditorAccount":{"iban":"54321"},"creditorName":"John Miles"},"value":{"currency":"EUR","amount":"100"},"description":"This an optional field. Maximum length is 2000. It can be any characters here."},"transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"],"status":"COMPLETED","start_date":"1100-01-01T00:00:00Z","end_date":"1100-01-01T00:00:00Z","challenges":[{"id":"2fg8a7e4-6d02-40e3-a129-0b2bf89de8ub","user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1","allowed_attempts":3,"challenge_type":"OBP_TRANSACTION_REQUEST_CHALLENGE","link":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/TRANSACTION_REQUEST_TYPE/transaction-requests/TRANSACTION_REQUEST_ID/challenge"}],"charge":{"summary":"Rent the flat","value":{"currency":"EUR","amount":"0"}}},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30111: Invalid Bank Id. The BANK_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-30110: Invalid Account Id. The ACCOUNT_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-10001: Incorrect json format.","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-30003: Account not found. Please specify a valid value for ACCOUNT_ID.","OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID. ","OBP-40002: Insufficient authorisation to create TransactionRequest. The Transaction Request could not be created because the login user doesn't have access to the view of the from account or the consumer doesn't have the access to the view of the from account or the login user does not have the `CanCreateAnyTransactionRequest` role or the view does not have the permission canaddtransactionrequesttoanyaccount.","OBP-40001: Invalid value for TRANSACTION_REQUEST_TYPE","OBP-10001: Incorrect json format.","OBP-10002: Invalid Number. Could not convert value to a number.","OBP-40008: Can't send a payment with a value of 0 or less.","OBP-40003: Transaction Request Currency must be the same as From Account Currency.","OBP-00003: Transaction Requests is disabled in this API instance.","OBP-50000: Unknown Error."],"tags":["Transaction-Request","Payment Initiation Service (PIS)","PSD2"],"typed_request_body":{"type":"object","properties":{"description":{"type":"string"},"future_date":{"type":"string"},"to":{"type":"object","properties":{"description":{"type":"string"},"other_bank_routing_scheme":{"type":"string"},"other_account_secondary_routing_address":{"type":"string"},"name":{"type":"string"},"other_bank_routing_address":{"type":"string"},"other_account_routing_address":{"type":"string"},"other_branch_routing_scheme":{"type":"string"},"other_account_secondary_routing_scheme":{"type":"string"},"other_account_routing_scheme":{"type":"string"},"other_branch_routing_address":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"charge_policy":{"type":"string"}}},"typed_success_response_body":{"type":"object","properties":{"type":{"type":"string"},"challenges":{"type":"array","items":{"type":"object","properties":{"challenge_type":{"type":"string"},"link":{"type":"string"},"id":{"type":"string"},"allowed_attempts":{"type":"integer"},"user_id":{"type":"string"}}}},"status":{"type":"string"},"end_date":{"type":"string","format":"date-time"},"charge":{"type":"object","properties":{"summary":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"transaction_ids":{"type":"array","items":{"type":"string"}},"from":{"type":"object","properties":{"bank_id":{"type":"string"},"account_id":{"type":"string"}}},"details":{"type":"object","properties":{"description":{"type":"string"},"to_sandbox_tan":{"type":"object","properties":{"account_id":{"type":"string"},"bank_id":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to_transfer_to_phone":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"to":{"type":"object","properties":{"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa":{"type":"object","properties":{"iban":{"type":"string"}}},"to_simple":{"type":"object","properties":{"otherBankRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingAddress":{"type":"string"},"otherBranchRoutingScheme":{"type":"string"},"otherAccountRoutingScheme":{"type":"string"},"otherAccountRoutingAddress":{"type":"string"},"otherBankRoutingScheme":{"type":"string"},"otherBranchRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingScheme":{"type":"string"}}},"to_counterparty":{"type":"object","properties":{"counterparty_id":{"type":"string"}}},"to_transfer_to_account":{"type":"object","properties":{"to":{"type":"object","properties":{"name":{"type":"string"},"account":{"type":"object","properties":{"number":{"type":"string"},"iban":{"type":"string"}}},"bank_code":{"type":"string"},"branch_number":{"type":"string"}}},"transfer_type":{"type":"string"},"description":{"type":"string"},"future_date":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa_credit_transfers":{"type":"object","properties":{"instructedAmount":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"debtorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorName":{"type":"string"}}},"to_transfer_to_atm":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to":{"type":"object","properties":{"date_of_birth":{"type":"string"},"kyc_document":{"type":"object","properties":{"type":{"type":"string"},"number":{"type":"string"}}},"legal_name":{"type":"string"},"mobile_phone_number":{"type":"string"}}}}}}},"start_date":{"type":"string","format":"date-time"},"id":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/SIMPLE/transaction-requests","connector_methods":[]},{"operation_id":"OBPv4.0.0-getBankAccountBalances","implemented_by":{"version":"OBPv4.0.0","function":"getBankAccountBalances"},"request_verb":"GET","request_url":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/balances","summary":"Get Account Balances","description":"Get the Balances for one Account of the current User at one bank.
\nAuthentication is Mandatory
\nURL Parameters:
\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nBANK_ID: gh.29.uk
\nJSON response body fields:
\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n\n\namount: 10.12
\nbalances: balances
\nbank_id: gh.29.uk
\ncurrency: EUR
\nlabel: My Account
\nscheme: scheme value
\ntype:
\n","description_markdown":"Get the Balances for one Account of the current User at one bank.\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**account_routings**](/glossary#account_routings): \n\n\n\n[**address**](/glossary#address): \n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**balances**](/glossary#): balances\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**label**](/glossary#): My Account\n\n\n\n[**scheme**](/glossary#scheme): scheme value\n\n\n\n[**type**](/glossary#type): \n\n\n","success_response_body":{"account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0","bank_id":"gh.29.uk","account_routings":[{"scheme":"accountNumber","address":"123456"}],"label":"My Account","balances":[{"type":"","currency":"EUR","amount":"10"}]},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-30065: Cannot find account access.","OBP-50000: Unknown Error."],"tags":["Account","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"bank_id":{"type":"string"},"label":{"type":"string"},"balances":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"amount":{"type":"string"},"currency":{"type":"string"}}}},"account_routings":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string"},"address":{"type":"string"}}}},"account_id":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts/ACCOUNT_ID/balances","connector_methods":[]},{"operation_id":"OBPv4.0.0-getConsents","implemented_by":{"version":"OBPv4.0.0","function":"getConsents"},"request_verb":"GET","request_url":"/obp/v4.0.0/banks/BANK_ID/my/consents","summary":"Get Consents","description":"This endpoint gets the Consents that the current User created.
\nAuthentication is Mandatory
\nURL Parameters:
\nBANK_ID: gh.29.uk
\nJSON response body fields:
\napi_standard: api_standard
\n\n\n\njwt:
\n\n","description_markdown":"This endpoint gets the Consents that the current User created.\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**api_standard**](/glossary#): api_standard\n\n\n\n[**api_version**](/glossary#api_version): \n\n\n\n[**consent_id**](/glossary#consent_id): \n\n\n\n[**consents**](/glossary#consents): \n\n\n\n[**jwt**](/glossary#jwt): \n\n\n\n[**status**](/glossary#status): \n\n\n","success_response_body":{"consents":[{"consent_id":"9d429899-24f5-42c8-8565-943ffa6a7945","jwt":"eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOltdLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIyMWUxYzhjYy1mOTE4LTRlYWMtYjhlMy01ZTVlZWM2YjNiNGIiLCJhdWQiOiJlanpuazUwNWQxMzJyeW9tbmhieDFxbXRvaHVyYnNiYjBraWphanNrIiwibmJmIjoxNTUzNTU0ODk5LCJpc3MiOiJodHRwczpcL1wvd3d3Lm9wZW5iYW5rcHJvamVjdC5jb20iLCJleHAiOjE1NTM1NTg0OTksImlhdCI6MTU1MzU1NDg5OSwianRpIjoiMDlmODhkNWYtZWNlNi00Mzk4LThlOTktNjYxMWZhMWNkYmQ1Iiwidmlld3MiOlt7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAxIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifSx7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAyIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifV19.8cc7cBEf2NyQvJoukBCmDLT7LXYcuzTcSYLqSpbxLp4","status":"INITIATED","api_standard":"Berlin Group","api_version":"v1.3"}]},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-50000: Unknown Error."],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"consents":{"type":"array","items":{"type":"object","properties":{"api_standard":{"type":"string"},"consent_id":{"type":"string"},"status":{"type":"string"},"jwt":{"type":"string"},"api_version":{"type":"string"}}}}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/my/consents","connector_methods":[]},{"operation_id":"OBPv3.0.0-corePrivateAccountsAllBanks","implemented_by":{"version":"OBPv3.0.0","function":"corePrivateAccountsAllBanks"},"request_verb":"GET","request_url":"/obp/v3.0.0/my/accounts","summary":"Get Accounts at all Banks (private)","description":"Returns the list of accounts containing private views for the user.
\nEach account lists the views available to the user.
optional request parameters:
\nwhole url example:
\n/my/accounts?account_type_filter=330,CURRENT+PLUS&account_type_filter_operation=INCLUDE
Authentication is Mandatory
\nJSON response body fields:
\n\naccount_type: AC
\n\n\nbank_id: gh.29.uk
\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\nis_public: true
\nlabel: My Account
\nscheme: scheme value
\n\n\n","description_markdown":"Returns the list of accounts containing private views for the user.\nEach account lists the views available to the user.\n\n\noptional request parameters:\n\n* account_type_filter: one or many accountType value, split by comma\n* account_type_filter_operation: the filter type of account_type_filter, value must be INCLUDE or EXCLUDE\n\nwhole url example:\n/my/accounts?account_type_filter=330,CURRENT+PLUS&account_type_filter_operation=INCLUDE\n \n\nAuthentication is Mandatory\n\n\n**JSON response body fields:**\n\n\n\n[**account_routings**](/glossary#account_routings): \n\n\n\n[**account_type**](/glossary#): AC\n\n\n\n[**accounts**](/glossary#accounts): \n\n\n\n[**address**](/glossary#address): \n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**is_public**](/glossary#is_public): true\n\n\n\n[**label**](/glossary#): My Account\n\n\n\n[**scheme**](/glossary#scheme): scheme value\n\n\n\n[**short_name**](/glossary#short_name): \n\n\n\n[**views**](/glossary#views): \n\n\n","success_response_body":{"accounts":[{"id":"5995d6a2-01b3-423c-a173-5481df49bdaf","label":"String","bank_id":"gh.29.uk","account_type":"330","account_routings":[{"scheme":"AccountNumber","address":"4930396"}],"views":[{"id":"owner","short_name":"Owner","description":"This view is for the owner for the account.","is_public":false}]}]},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-50000: Unknown Error."],"tags":["Account","Account Information Service (AIS)","PrivateData","PSD2"],"typed_success_response_body":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"object","properties":{"views":{"type":"array","items":{"type":"object","properties":{"short_name":{"type":"string"},"description":{"type":"string"},"is_public":{"type":"boolean"},"id":{"type":"string"}}}},"account_type":{"type":"string"},"bank_id":{"type":"string"},"id":{"type":"string"},"label":{"type":"string"},"account_routings":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string"},"address":{"type":"string"}}}}}}}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/my/accounts","connector_methods":[]},{"operation_id":"OBPv4.0.0-getCounterpartiesForAnyAccount","implemented_by":{"version":"OBPv4.0.0","function":"getCounterpartiesForAnyAccount"},"request_verb":"GET","request_url":"/obp/v4.0.0/management/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/counterparties","summary":"Get Counterparties for any account (Explicit)","description":"Get the Counterparties (Explicit) for any account .
\nAuthentication is Mandatory
\nURL Parameters:
\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nBANK_ID: gh.29.uk
\nVIEW_ID: owner
\nJSON response body fields:
\n\n\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\ncurrency: EUR
\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\nis_beneficiary: true
\nkey: CustomerNumber
\nname: ACCOUNT_MANAGEMENT_FEE
\nother_account_routing_address:
\n\nother_account_secondary_routing_address:
\nother_account_secondary_routing_scheme:
\n\n\n\n\n\n\n\nvalue: 5987953
\n","description_markdown":"Get the Counterparties (Explicit) for any account .\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[VIEW_ID](/glossary#this_view_id): owner\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**bespoke**](/glossary#bespoke): \n\n\n\n[**counterparties**](/glossary#counterparties): \n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**created_by_user_id**](/glossary#created_by_user_id): \n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**is_beneficiary**](/glossary#): true\n\n\n\n[**key**](/glossary#): CustomerNumber\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**other_account_routing_address**](/glossary#other_account_routing_address): \n\n\n\n[**other_account_routing_scheme**](/glossary#other_account_routing_scheme): \n\n\n\n[**other_account_secondary_routing_address**](/glossary#other_account_secondary_routing_address): \n\n\n\n[**other_account_secondary_routing_scheme**](/glossary#other_account_secondary_routing_scheme): \n\n\n\n[**other_bank_routing_address**](/glossary#other_bank_routing_address): \n\n\n\n[**other_bank_routing_scheme**](/glossary#other_bank_routing_scheme): \n\n\n\n[**other_branch_routing_address**](/glossary#other_branch_routing_address): \n\n\n\n[**other_branch_routing_scheme**](/glossary#other_branch_routing_scheme): \n\n\n\n[**this_account_id**](/glossary#this_account_id): \n\n\n\n[**this_bank_id**](/glossary#this_bank_id): \n\n\n\n[**this_view_id**](/glossary#this_view_id): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n","success_response_body":{"counterparties":[{"name":"CounterpartyName","description":"My landlord","currency":"EUR","created_by_user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1","this_bank_id":"gh.29.uk","this_account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0","this_view_id":"owner","counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh","other_bank_routing_scheme":"OBP","other_bank_routing_address":"gh.29.uk","other_branch_routing_scheme":"OBP","other_branch_routing_address":"12f8a9e6-c2b1-407a-8bd0-421b7119307e","other_account_routing_scheme":"OBP","other_account_routing_address":"36f8a9e6-c2b1-407a-8bd0-421b7119307e","other_account_secondary_routing_scheme":"IBAN","other_account_secondary_routing_address":"DE89370400440532013000","is_beneficiary":true,"bespoke":[{"key":"englishName","value":"english Name"}]}]},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID. ","OBP-50000: Unknown Error.","OBP-20006: User is missing one or more roles: "],"tags":["Counterparty","Payment Initiation Service (PIS)","PSD2","Account"],"typed_success_response_body":{"type":"object","properties":{"counterparties":{"type":"array","items":{"type":"object","properties":{"bespoke":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"key":{"type":"string"}}}},"created_by_user_id":{"type":"string"},"name":{"type":"string"},"this_bank_id":{"type":"string"},"other_bank_routing_scheme":{"type":"string"},"currency":{"type":"string"},"other_account_secondary_routing_address":{"type":"string"},"counterparty_id":{"type":"string"},"description":{"type":"string"},"other_bank_routing_address":{"type":"string"},"other_account_routing_address":{"type":"string"},"other_branch_routing_scheme":{"type":"string"},"this_account_id":{"type":"string"},"other_account_secondary_routing_scheme":{"type":"string"},"is_beneficiary":{"type":"boolean"},"other_account_routing_scheme":{"type":"string"},"other_branch_routing_address":{"type":"string"},"this_view_id":{"type":"string"}}}}}},"roles":[{"role":"CanGetCounterparties","requires_bank_id":true},{"role":"CanGetCounterpartiesAtAnyBank","requires_bank_id":false}],"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/management/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/counterparties","connector_methods":[]},{"operation_id":"OBPv3.1.0-createConsentEmail","implemented_by":{"version":"OBPv3.1.0","function":"createConsentEmail"},"request_verb":"POST","request_url":"/obp/v3.1.0/banks/BANK_ID/my/consents/EMAIL","summary":"Create Consent (EMAIL)","description":"This endpoint starts the process of creating a Consent.
\nThe Consent is created in an INITIATED state.
\nA One Time Password (OTP) (AKA security challenge) is sent Out of Band (OOB) to the User via the transport defined in SCA_METHOD
\nSCA_METHOD is typically "SMS","EMAIL" or "IMPLICIT". "EMAIL" is used for testing purposes. OBP mapped mode "IMPLICIT" is "EMAIL".
\nOther mode, bank can decide it in the connector method 'getConsentImplicitSCA'.
When the Consent is created, OBP (or a backend system) stores the challenge so it can be checked later against the value supplied by the User with the Answer Consent Challenge endpoint.
\nAn OBP Consent allows the holder of the Consent to call one or more endpoints.
\nConsents must be created and authorisied using SCA (Strong Customer Authentication).
\nThat is, Consents can be created by an authorised User via the OBP REST API but they must be confirmed via an out of band (OOB) mechanism such as a code sent to a mobile phone.
\nEach Consent has one of the following states: INITIATED, ACCEPTED, REJECTED, REVOKED, RECEIVED, VALID, REVOKEDBYPSU, EXPIRED, TERMINATEDBYTPP, AUTHORISED, AWAITINGAUTHORISATION.
\nEach Consent is bound to a consumer i.e. you need to identify yourself over request header value Consumer-Key.
\nFor example:
\nGET /obp/v4.0.0/users/current HTTP/1.1
\nHost: 127.0.0.1:8080
\nConsent-JWT: eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOlt7InJvbGVfbmFtZSI6IkNhbkdldEFueVVzZXIiLCJiYW5rX2lkIjoiIn
\n1dLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIzNDc1MDEzZi03YmY5LTQyNj
\nEtOWUxYy0xZTdlNWZjZTJlN2UiLCJhdWQiOiI4MTVhMGVmMS00YjZhLTQyMDUtYjExMi1lNDVmZDZmNGQzYWQiLCJuYmYiOjE1ODA3NDE2NjcsIml
\nzcyI6Imh0dHA6XC9cLzEyNy4wLjAuMTo4MDgwIiwiZXhwIjoxNTgwNzQ1MjY3LCJpYXQiOjE1ODA3NDE2NjcsImp0aSI6ImJkYzVjZTk5LTE2ZTY
\ntNDM4Yi1hNjllLTU3MTAzN2RhMTg3OCIsInZpZXdzIjpbXX0.L3fEEEhdCVr3qnmyRKBBUaIQ7dk1VjiFaEBW8hUNjfg
Consumer-Key: ejznk505d132ryomnhbx1qmtohurbsbb0kijajsk
\ncache-control: no-cache
Maximum time to live of the token is specified over props value consents.max_time_to_live. In case isn't defined default value is 3600 seconds.
\nExample of POST JSON:
\n{
\n"everything": false,
\n"views": [
\n{
\n"bank_id": "GENODEM1GLS",
\n"account_id": "8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0",
\n"view_id": "owner"
\n}
\n],
\n"entitlements": [
\n{
\n"bank_id": "GENODEM1GLS",
\n"role_name": "CanGetCustomer"
\n}
\n],
\n"consumer_id": "7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
\n"email": "eveline@example.com",
\n"valid_from": "2020-02-07T08:43:34Z",
\n"time_to_live": 3600
\n}
\nPlease note that only optional fields are: consumer_id, valid_from and time_to_live.
\nIn case you omit they the default values are used:
\nconsumer_id = consumer of current user
\nvalid_from = current time
\ntime_to_live = consents.max_time_to_live
Authentication is Mandatory
\nExample 1:
\n{
\n"everything": true,
\n"views": [],
\n"entitlements": [],
\n"consumer_id": "7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
\n"phone_number": "+49 170 1234567"
\n}
Please note that consumer_id is optional field
\nExample 2:
\n{
\n"everything": true,
\n"views": [],
\n"entitlements": [],
\n"phone_number": "+49 170 1234567"
\n}
Please note if everything=false you need to explicitly specify views and entitlements
\nExample 3:
\n{
\n"everything": false,
\n"views": [
\n{
\n"bank_id": "GENODEM1GLS",
\n"account_id": "8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0",
\n"view_id": "owner"
\n}
\n],
\n"entitlements": [
\n{
\n"bank_id": "GENODEM1GLS",
\n"role_name": "CanGetCustomer"
\n}
\n],
\n"consumer_id": "7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
\n"phone_number": "+49 170 1234567"
\n}
URL Parameters:
\nBANK_ID: gh.29.uk
\n\nJSON request body fields:
\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nbank_id: gh.29.uk
\n\n\n\n\nview_id: owner
\n\nconsumer_id: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\nvalid_from: 2020-01-27
\nJSON response body fields:
\n\njwt:
\n\n","description_markdown":"This endpoint starts the process of creating a Consent.\n\nThe Consent is created in an INITIATED state.\n\nA One Time Password (OTP) (AKA security challenge) is sent Out of Band (OOB) to the User via the transport defined in SCA_METHOD\nSCA_METHOD is typically \"SMS\",\"EMAIL\" or \"IMPLICIT\". \"EMAIL\" is used for testing purposes. OBP mapped mode \"IMPLICIT\" is \"EMAIL\".\nOther mode, bank can decide it in the connector method 'getConsentImplicitSCA'.\n\nWhen the Consent is created, OBP (or a backend system) stores the challenge so it can be checked later against the value supplied by the User with the Answer Consent Challenge endpoint.\n\n\n\nAn OBP Consent allows the holder of the Consent to call one or more endpoints.\n\nConsents must be created and authorisied using SCA (Strong Customer Authentication).\n\nThat is, Consents can be created by an authorised User via the OBP REST API but they must be confirmed via an out of band (OOB) mechanism such as a code sent to a mobile phone.\n\nEach Consent has one of the following states: INITIATED, ACCEPTED, REJECTED, REVOKED, RECEIVED, VALID, REVOKEDBYPSU, EXPIRED, TERMINATEDBYTPP, AUTHORISED, AWAITINGAUTHORISATION.\n\nEach Consent is bound to a consumer i.e. you need to identify yourself over request header value Consumer-Key. \nFor example:\nGET /obp/v4.0.0/users/current HTTP/1.1\nHost: 127.0.0.1:8080\nConsent-JWT: eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOlt7InJvbGVfbmFtZSI6IkNhbkdldEFueVVzZXIiLCJiYW5rX2lkIjoiIn\n1dLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIzNDc1MDEzZi03YmY5LTQyNj\nEtOWUxYy0xZTdlNWZjZTJlN2UiLCJhdWQiOiI4MTVhMGVmMS00YjZhLTQyMDUtYjExMi1lNDVmZDZmNGQzYWQiLCJuYmYiOjE1ODA3NDE2NjcsIml\nzcyI6Imh0dHA6XC9cLzEyNy4wLjAuMTo4MDgwIiwiZXhwIjoxNTgwNzQ1MjY3LCJpYXQiOjE1ODA3NDE2NjcsImp0aSI6ImJkYzVjZTk5LTE2ZTY\ntNDM4Yi1hNjllLTU3MTAzN2RhMTg3OCIsInZpZXdzIjpbXX0.L3fEEEhdCVr3qnmyRKBBUaIQ7dk1VjiFaEBW8hUNjfg\n\nConsumer-Key: ejznk505d132ryomnhbx1qmtohurbsbb0kijajsk\ncache-control: no-cache\n\nMaximum time to live of the token is specified over props value consents.max_time_to_live. In case isn't defined default value is 3600 seconds.\n\nExample of POST JSON:\n{\n \"everything\": false,\n \"views\": [\n {\n \"bank_id\": \"GENODEM1GLS\",\n \"account_id\": \"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\",\n \"view_id\": \"owner\"\n }\n ],\n \"entitlements\": [\n {\n \"bank_id\": \"GENODEM1GLS\",\n \"role_name\": \"CanGetCustomer\"\n }\n ],\n \"consumer_id\": \"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\",\n \"email\": \"eveline@example.com\",\n \"valid_from\": \"2020-02-07T08:43:34Z\",\n \"time_to_live\": 3600\n}\nPlease note that only optional fields are: consumer_id, valid_from and time_to_live. \nIn case you omit they the default values are used:\nconsumer_id = consumer of current user\nvalid_from = current time\ntime_to_live = consents.max_time_to_live\n\n \n\nAuthentication is Mandatory\n\nExample 1: \n{\n \"everything\": true,\n \"views\": [],\n \"entitlements\": [],\n \"consumer_id\": \"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\",\n \"phone_number\": \"+49 170 1234567\"\n}\n\nPlease note that consumer_id is optional field\nExample 2:\n{\n \"everything\": true,\n \"views\": [],\n \"entitlements\": [],\n \"phone_number\": \"+49 170 1234567\"\n}\n\nPlease note if everything=false you need to explicitly specify views and entitlements\nExample 3:\n{\n \"everything\": false,\n \"views\": [\n {\n \"bank_id\": \"GENODEM1GLS\",\n \"account_id\": \"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\",\n \"view_id\": \"owner\"\n }\n ],\n \"entitlements\": [\n {\n \"bank_id\": \"GENODEM1GLS\",\n \"role_name\": \"CanGetCustomer\"\n }\n ],\n \"consumer_id\": \"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\",\n \"phone_number\": \"+49 170 1234567\"\n}\n\n\n**URL Parameters:**\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[EMAIL](/glossary#): felixsmith@example.com\n\n\n\n\n\n**JSON request body fields:**\n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**email**](/glossary#): felixsmith@example.com\n\n\n\n[**entitlements**](/glossary#entitlements): \n\n\n\n[**everything**](/glossary#everything): \n\n\n\n[**role_name**](/glossary#role_name): \n\n\n\n[**view_id**](/glossary#): owner\n\n\n\n[**views**](/glossary#views): \n\n\n\n[consumer_id](/glossary#): 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[time_to_live](/glossary#time_to_live): \n\n\n\n[valid_from](/glossary#valid_from): 2020-01-27\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**consent_id**](/glossary#consent_id): \n\n\n\n[**jwt**](/glossary#jwt): \n\n\n\n[**status**](/glossary#status): \n\n\n","example_request_body":{"everything":false,"views":[{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0","view_id":"owner"}],"entitlements":[{"bank_id":"gh.29.uk","role_name":"CanGetCustomer"}],"consumer_id":"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh","email":"felixsmith@example.com","valid_from":"2024-03-26T11:02:48Z","time_to_live":3600},"success_response_body":{"consent_id":"9d429899-24f5-42c8-8565-943ffa6a7945","jwt":"eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOltdLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIyMWUxYzhjYy1mOTE4LTRlYWMtYjhlMy01ZTVlZWM2YjNiNGIiLCJhdWQiOiJlanpuazUwNWQxMzJyeW9tbmhieDFxbXRvaHVyYnNiYjBraWphanNrIiwibmJmIjoxNTUzNTU0ODk5LCJpc3MiOiJodHRwczpcL1wvd3d3Lm9wZW5iYW5rcHJvamVjdC5jb20iLCJleHAiOjE1NTM1NTg0OTksImlhdCI6MTU1MzU1NDg5OSwianRpIjoiMDlmODhkNWYtZWNlNi00Mzk4LThlOTktNjYxMWZhMWNkYmQ1Iiwidmlld3MiOlt7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAxIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifSx7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAyIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifV19.8cc7cBEf2NyQvJoukBCmDLT7LXYcuzTcSYLqSpbxLp4","status":"INITIATED"},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-10001: Incorrect json format.","OBP-35009: Only SMS, EMAIL and IMPLICIT are supported as SCA methods. ","OBP-35013: Consents can only contain Roles that you already have access to.","OBP-35014: Consents can only contain Views that you already have access to.","OBP-30019: Consumer not found. Please specify a valid value for CONSUMER_ID.","OBP-20058: Consumer is disabled.","OBP-50200: Connector cannot return the data we requested.","OBP-50000: Unknown Error."],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_request_body":{"type":"object","properties":{"email":{"type":"string"},"entitlements":{"type":"array","items":{"type":"object","properties":{"bank_id":{"type":"string"},"role_name":{"type":"string"}}}},"everything":{"type":"boolean"},"valid_from":{"type":"string","format":"date-time"},"views":{"type":"array","items":{"type":"object","properties":{"bank_id":{"type":"string"},"view_id":{"type":"string"},"account_id":{"type":"string"}}}},"consumer_id":{"type":"string"},"time_to_live":{"type":"integer"}}},"typed_success_response_body":{"type":"object","properties":{"consent_id":{"type":"string"},"status":{"type":"string"},"jwt":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/my/consents/EMAIL","connector_methods":[]},{"operation_id":"OBPv3.0.0-getPrivateAccountIdsbyBankId","implemented_by":{"version":"OBPv3.0.0","function":"getPrivateAccountIdsbyBankId"},"request_verb":"GET","request_url":"/obp/v3.0.0/banks/BANK_ID/accounts/account_ids/private","summary":"Get Accounts at Bank (IDs only)","description":"Returns only the list of accounts ids at BANK_ID that the user has access to.
\nEach account must have at least one private View.
\nFor each account the API returns its account ID.
\nIf you want to see more information on the Views, use the Account Detail call.
\noptional request parameters:
\nwhole url example:
\n/banks/BANK_ID/accounts/account_ids/private?account_type_filter=330,CURRENT+PLUS&account_type_filter_operation=INCLUDE
Authentication is Mandatory
\nURL Parameters:
\nBANK_ID: gh.29.uk
\nJSON response body fields:
\n\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\n","description_markdown":"Returns only the list of accounts ids at BANK_ID that the user has access to.\n\nEach account must have at least one private View.\n\nFor each account the API returns its account ID.\n\nIf you want to see more information on the Views, use the Account Detail call.\n\n\noptional request parameters:\n\n* account_type_filter: one or many accountType value, split by comma\n* account_type_filter_operation: the filter type of account_type_filter, value must be INCLUDE or EXCLUDE\n\nwhole url example:\n/banks/BANK_ID/accounts/account_ids/private?account_type_filter=330,CURRENT+PLUS&account_type_filter_operation=INCLUDE\n \n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**accounts**](/glossary#accounts): \n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n","success_response_body":{"accounts":[{"id":"5995d6a2-01b3-423c-a173-5481df49bdaf"}]},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-50000: Unknown Error."],"tags":["Account","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}}}}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts/account_ids/private","connector_methods":[]},{"operation_id":"OBPv5.0.0-createConsentByConsentRequestIdSms","implemented_by":{"version":"OBPv5.0.0","function":"createConsentByConsentRequestIdSms"},"request_verb":"POST","request_url":"/obp/v5.0.0/consumer/consent-requests/CONSENT_REQUEST_ID/SMS/consents","summary":"Create Consent By CONSENT_REQUEST_ID (SMS)","description":"This endpoint continues the process of creating a Consent. It starts the SCA flow which changes the status of the consent from INITIATED to ACCEPTED or REJECTED.
\nPlease note that the Consent cannot elevate the privileges logged in user already have.
Authentication is Mandatory
\nURL Parameters:
\nCONSENT_REQUEST_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nSMS:
\nJSON request body fields:
\nJSON response body fields:
\n\njwt:
\n\nconsent_request_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n","description_markdown":"This endpoint continues the process of creating a Consent. It starts the SCA flow which changes the status of the consent from INITIATED to ACCEPTED or REJECTED.\nPlease note that the Consent cannot elevate the privileges logged in user already have. \n\n\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[CONSENT_REQUEST_ID](/glossary#consent_request_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[SMS](/glossary#sms): \n\n\n\n\n\n**JSON request body fields:**\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**consent_id**](/glossary#consent_id): \n\n\n\n[**jwt**](/glossary#jwt): \n\n\n\n[**status**](/glossary#status): \n\n\n\n[consent_request_id](/glossary#consent_request_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n","success_response_body":{"consent_id":"9d429899-24f5-42c8-8565-943ffa6a7945","jwt":"eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOltdLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIyMWUxYzhjYy1mOTE4LTRlYWMtYjhlMy01ZTVlZWM2YjNiNGIiLCJhdWQiOiJlanpuazUwNWQxMzJyeW9tbmhieDFxbXRvaHVyYnNiYjBraWphanNrIiwibmJmIjoxNTUzNTU0ODk5LCJpc3MiOiJodHRwczpcL1wvd3d3Lm9wZW5iYW5rcHJvamVjdC5jb20iLCJleHAiOjE1NTM1NTg0OTksImlhdCI6MTU1MzU1NDg5OSwianRpIjoiMDlmODhkNWYtZWNlNi00Mzk4LThlOTktNjYxMWZhMWNkYmQ1Iiwidmlld3MiOlt7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAxIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifSx7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAyIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifV19.8cc7cBEf2NyQvJoukBCmDLT7LXYcuzTcSYLqSpbxLp4","status":"INITIATED","consent_request_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-10001: Incorrect json format.","OBP-35029: The CONSENT_REQUEST_ID is invalid. ","OBP-35009: Only SMS, EMAIL and IMPLICIT are supported as SCA methods. ","OBP-35013: Consents can only contain Roles that you already have access to.","OBP-35014: Consents can only contain Views that you already have access to.","OBP-30019: Consumer not found. Please specify a valid value for CONSUMER_ID.","OBP-20058: Consumer is disabled.","OBP-00010: Missing props value at this API instance - ","OBP-35010: SMS server is not working or SMS server can not send the message to the phone number:","OBP-50200: Connector cannot return the data we requested.","OBP-50000: Unknown Error."],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"consent_request_id":{"type":"string"},"consent_id":{"type":"string"},"status":{"type":"string"},"jwt":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/consumer/consent-requests/CONSENT_REQUEST_ID/SMS/consents","connector_methods":[]},{"operation_id":"OBPv5.0.0-getConsentRequest","implemented_by":{"version":"OBPv5.0.0","function":"getConsentRequest"},"request_verb":"GET","request_url":"/obp/v5.0.0/consumer/consent-requests/CONSENT_REQUEST_ID","summary":"Get Consent Request","description":"Authentication is Optional
\nURL Parameters:
\nCONSENT_REQUEST_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nJSON response body fields:
\nconsent_request_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nconsumer_id: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
\npayload: payload
\n","description_markdown":"Authentication is Optional\n\n\n**URL Parameters:**\n\n[CONSENT_REQUEST_ID](/glossary#consent_request_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**consent_request_id**](/glossary#consent_request_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**consumer_id**](/glossary#): 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**payload**](/glossary#payload): payload\n\n\n","success_response_body":{"consent_request_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0","payload":{"everything":false,"account_access":[{"account_routing":{"scheme":"AccountNumber","address":"4930396"},"view_id":"owner"}],"phone_number":"+44 07972 444 876","valid_from":"2022-06-14T12:42:00Z","time_to_live":3600},"consumer_id":"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh"},"error_response_bodies":["OBP-10001: Incorrect json format.","OBP-35020: You exceeded max value of time to live of consents.","OBP-20306: PEM Encoded Certificate cannot be found at request header.","OBP-20300: PEM Encoded Certificate issue.","OBP-50200: Connector cannot return the data we requested.","OBP-50000: Unknown Error."],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"consumer_id":{"type":"string"},"payload":{"type":"object","properties":{"phone_number":{"type":"string"},"everything":{"type":"boolean"},"valid_from":{"type":"string"},"time_to_live":{"type":"integer"},"account_access":{"type":"array","items":{"type":"object","properties":{"account_routing":{"type":"object","properties":{"scheme":{"type":"string"},"address":{"type":"string"}}},"view_id":{"type":"string"}}}}}},"consent_request_id":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/consumer/consent-requests/CONSENT_REQUEST_ID","connector_methods":[]},{"operation_id":"OBPv5.0.0-createConsentRequest","implemented_by":{"version":"OBPv5.0.0","function":"createConsentRequest"},"request_verb":"POST","request_url":"/obp/v5.0.0/consumer/consent-requests","summary":"Create Consent Request","description":"Client Authentication (mandatory)
\nIt is used when applications request an access token to access their own resources, not on behalf of a user.
\nThe client needs to authenticate themselves for this request.
\nIn case of public client we use client_id and private kew to obtain access token, otherwise we use client_id and client_secret.
\nThe obtained access token is used in the HTTP Bearer auth header of our request.
Example:
\nAuthorization: Bearer eXtneO-THbQtn3zvK_kQtXXfvOZyZFdBCItlPDbR2Bk.dOWqtXCtFX-tqGTVR0YrIjvAolPIVg7GZ-jz83y6nA0
Authentication is Optional
\nJSON request body fields:
\naccount_access: account_access
\n\n\nbank_id: gh.29.uk
\n\n\nscheme: scheme value
\nview_id: owner
\nbank_id: gh.29.uk
\nconsumer_id: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\n\n\n\nvalid_from: 2020-01-27
\nJSON response body fields:
\nconsent_request_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nconsumer_id: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
\npayload: payload
\n","description_markdown":"Client Authentication (mandatory)\n\nIt is used when applications request an access token to access their own resources, not on behalf of a user.\n\nThe client needs to authenticate themselves for this request.\nIn case of public client we use client_id and private kew to obtain access token, otherwise we use client_id and client_secret.\nThe obtained access token is used in the HTTP Bearer auth header of our request.\n\nExample:\nAuthorization: Bearer eXtneO-THbQtn3zvK_kQtXXfvOZyZFdBCItlPDbR2Bk.dOWqtXCtFX-tqGTVR0YrIjvAolPIVg7GZ-jz83y6nA0\n\n\n\nAuthentication is Optional\n\n\n**JSON request body fields:**\n\n\n\n[**account_access**](/glossary#): account_access\n\n\n\n[**account_routing**](/glossary#account_routing): \n\n\n\n[**address**](/glossary#address): \n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**everything**](/glossary#everything): \n\n\n\n[**role_name**](/glossary#role_name): \n\n\n\n[**scheme**](/glossary#scheme): scheme value\n\n\n\n[**view_id**](/glossary#): owner\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[consumer_id](/glossary#): 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[email](/glossary#): felixsmith@example.com\n\n\n\n[entitlements](/glossary#entitlements): \n\n\n\n[phone_number](/glossary#phone_number): \n\n\n\n[time_to_live](/glossary#time_to_live): \n\n\n\n[valid_from](/glossary#valid_from): 2020-01-27\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**consent_request_id**](/glossary#consent_request_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**consumer_id**](/glossary#): 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**payload**](/glossary#payload): payload\n\n\n","example_request_body":{"everything":false,"account_access":[{"account_routing":{"scheme":"AccountNumber","address":"4930396"},"view_id":"owner"}],"entitlements":[{"bank_id":"gh.29.uk","role_name":"CanGetCustomer"}],"consumer_id":"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh","email":"felixsmith@example.com","phone_number":"+44 07972 444 876","valid_from":"2024-03-26T11:02:48Z","time_to_live":3600},"success_response_body":{"consent_request_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0","payload":{"everything":false,"account_access":[{"account_routing":{"scheme":"AccountNumber","address":"4930396"},"view_id":"owner"}],"phone_number":"+44 07972 444 876","valid_from":"2022-06-14T12:42:00Z","time_to_live":3600},"consumer_id":"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh"},"error_response_bodies":["OBP-10001: Incorrect json format.","OBP-35020: You exceeded max value of time to live of consents.","OBP-20306: PEM Encoded Certificate cannot be found at request header.","OBP-20300: PEM Encoded Certificate issue.","OBP-50200: Connector cannot return the data we requested.","OBP-50000: Unknown Error."],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_request_body":{"type":"object","properties":{"account_access":{"type":"array","items":{"type":"object","properties":{"view_id":{"type":"string"},"account_routing":{"type":"object","properties":{"scheme":{"type":"string"},"address":{"type":"string"}}}}}},"everything":{"type":"boolean"},"phone_number":{"type":"string"},"email":{"type":"string"},"consumer_id":{"type":"string"},"time_to_live":{"type":"integer"},"entitlements":{"type":"array","items":{"type":"object","properties":{"bank_id":{"type":"string"},"role_name":{"type":"string"}}}},"valid_from":{"type":"string","format":"date-time"}}},"typed_success_response_body":{"type":"object","properties":{"consumer_id":{"type":"string"},"payload":{"type":"object","properties":{"phone_number":{"type":"string"},"everything":{"type":"boolean"},"valid_from":{"type":"string"},"time_to_live":{"type":"integer"},"account_access":{"type":"array","items":{"type":"object","properties":{"account_routing":{"type":"object","properties":{"scheme":{"type":"string"},"address":{"type":"string"}}},"view_id":{"type":"string"}}}}}},"consent_request_id":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/consumer/consent-requests","connector_methods":[]},{"operation_id":"OBPv3.1.0-createConsentSms","implemented_by":{"version":"OBPv3.1.0","function":"createConsentSms"},"request_verb":"POST","request_url":"/obp/v3.1.0/banks/BANK_ID/my/consents/SMS","summary":"Create Consent (SMS)","description":"This endpoint starts the process of creating a Consent.
\nThe Consent is created in an INITIATED state.
\nA One Time Password (OTP) (AKA security challenge) is sent Out of Band (OOB) to the User via the transport defined in SCA_METHOD
\nSCA_METHOD is typically "SMS","EMAIL" or "IMPLICIT". "EMAIL" is used for testing purposes. OBP mapped mode "IMPLICIT" is "EMAIL".
\nOther mode, bank can decide it in the connector method 'getConsentImplicitSCA'.
When the Consent is created, OBP (or a backend system) stores the challenge so it can be checked later against the value supplied by the User with the Answer Consent Challenge endpoint.
\nAn OBP Consent allows the holder of the Consent to call one or more endpoints.
\nConsents must be created and authorisied using SCA (Strong Customer Authentication).
\nThat is, Consents can be created by an authorised User via the OBP REST API but they must be confirmed via an out of band (OOB) mechanism such as a code sent to a mobile phone.
\nEach Consent has one of the following states: INITIATED, ACCEPTED, REJECTED, REVOKED, RECEIVED, VALID, REVOKEDBYPSU, EXPIRED, TERMINATEDBYTPP, AUTHORISED, AWAITINGAUTHORISATION.
\nEach Consent is bound to a consumer i.e. you need to identify yourself over request header value Consumer-Key.
\nFor example:
\nGET /obp/v4.0.0/users/current HTTP/1.1
\nHost: 127.0.0.1:8080
\nConsent-JWT: eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOlt7InJvbGVfbmFtZSI6IkNhbkdldEFueVVzZXIiLCJiYW5rX2lkIjoiIn
\n1dLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIzNDc1MDEzZi03YmY5LTQyNj
\nEtOWUxYy0xZTdlNWZjZTJlN2UiLCJhdWQiOiI4MTVhMGVmMS00YjZhLTQyMDUtYjExMi1lNDVmZDZmNGQzYWQiLCJuYmYiOjE1ODA3NDE2NjcsIml
\nzcyI6Imh0dHA6XC9cLzEyNy4wLjAuMTo4MDgwIiwiZXhwIjoxNTgwNzQ1MjY3LCJpYXQiOjE1ODA3NDE2NjcsImp0aSI6ImJkYzVjZTk5LTE2ZTY
\ntNDM4Yi1hNjllLTU3MTAzN2RhMTg3OCIsInZpZXdzIjpbXX0.L3fEEEhdCVr3qnmyRKBBUaIQ7dk1VjiFaEBW8hUNjfg
Consumer-Key: ejznk505d132ryomnhbx1qmtohurbsbb0kijajsk
\ncache-control: no-cache
Maximum time to live of the token is specified over props value consents.max_time_to_live. In case isn't defined default value is 3600 seconds.
\nExample of POST JSON:
\n{
\n"everything": false,
\n"views": [
\n{
\n"bank_id": "GENODEM1GLS",
\n"account_id": "8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0",
\n"view_id": "owner"
\n}
\n],
\n"entitlements": [
\n{
\n"bank_id": "GENODEM1GLS",
\n"role_name": "CanGetCustomer"
\n}
\n],
\n"consumer_id": "7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
\n"email": "eveline@example.com",
\n"valid_from": "2020-02-07T08:43:34Z",
\n"time_to_live": 3600
\n}
\nPlease note that only optional fields are: consumer_id, valid_from and time_to_live.
\nIn case you omit they the default values are used:
\nconsumer_id = consumer of current user
\nvalid_from = current time
\ntime_to_live = consents.max_time_to_live
Authentication is Mandatory
\nExample 1:
\n{
\n"everything": true,
\n"views": [],
\n"entitlements": [],
\n"consumer_id": "7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
\n"email": "eveline@example.com"
\n}
Please note that consumer_id is optional field
\nExample 2:
\n{
\n"everything": true,
\n"views": [],
\n"entitlements": [],
\n"email": "eveline@example.com"
\n}
Please note if everything=false you need to explicitly specify views and entitlements
\nExample 3:
\n{
\n"everything": false,
\n"views": [
\n{
\n"bank_id": "GENODEM1GLS",
\n"account_id": "8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0",
\n"view_id": "owner"
\n}
\n],
\n"entitlements": [
\n{
\n"bank_id": "GENODEM1GLS",
\n"role_name": "CanGetCustomer"
\n}
\n],
\n"consumer_id": "7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
\n"email": "eveline@example.com"
\n}
URL Parameters:
\nBANK_ID: gh.29.uk
\nSMS:
\nJSON request body fields:
\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nbank_id: gh.29.uk
\n\n\n\n\nview_id: owner
\n\nconsumer_id: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\nvalid_from: 2020-01-27
\nJSON response body fields:
\n\njwt:
\n\n","description_markdown":"This endpoint starts the process of creating a Consent.\n\nThe Consent is created in an INITIATED state.\n\nA One Time Password (OTP) (AKA security challenge) is sent Out of Band (OOB) to the User via the transport defined in SCA_METHOD\nSCA_METHOD is typically \"SMS\",\"EMAIL\" or \"IMPLICIT\". \"EMAIL\" is used for testing purposes. OBP mapped mode \"IMPLICIT\" is \"EMAIL\".\nOther mode, bank can decide it in the connector method 'getConsentImplicitSCA'.\n\nWhen the Consent is created, OBP (or a backend system) stores the challenge so it can be checked later against the value supplied by the User with the Answer Consent Challenge endpoint.\n\n\n\nAn OBP Consent allows the holder of the Consent to call one or more endpoints.\n\nConsents must be created and authorisied using SCA (Strong Customer Authentication).\n\nThat is, Consents can be created by an authorised User via the OBP REST API but they must be confirmed via an out of band (OOB) mechanism such as a code sent to a mobile phone.\n\nEach Consent has one of the following states: INITIATED, ACCEPTED, REJECTED, REVOKED, RECEIVED, VALID, REVOKEDBYPSU, EXPIRED, TERMINATEDBYTPP, AUTHORISED, AWAITINGAUTHORISATION.\n\nEach Consent is bound to a consumer i.e. you need to identify yourself over request header value Consumer-Key. \nFor example:\nGET /obp/v4.0.0/users/current HTTP/1.1\nHost: 127.0.0.1:8080\nConsent-JWT: eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOlt7InJvbGVfbmFtZSI6IkNhbkdldEFueVVzZXIiLCJiYW5rX2lkIjoiIn\n1dLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIzNDc1MDEzZi03YmY5LTQyNj\nEtOWUxYy0xZTdlNWZjZTJlN2UiLCJhdWQiOiI4MTVhMGVmMS00YjZhLTQyMDUtYjExMi1lNDVmZDZmNGQzYWQiLCJuYmYiOjE1ODA3NDE2NjcsIml\nzcyI6Imh0dHA6XC9cLzEyNy4wLjAuMTo4MDgwIiwiZXhwIjoxNTgwNzQ1MjY3LCJpYXQiOjE1ODA3NDE2NjcsImp0aSI6ImJkYzVjZTk5LTE2ZTY\ntNDM4Yi1hNjllLTU3MTAzN2RhMTg3OCIsInZpZXdzIjpbXX0.L3fEEEhdCVr3qnmyRKBBUaIQ7dk1VjiFaEBW8hUNjfg\n\nConsumer-Key: ejznk505d132ryomnhbx1qmtohurbsbb0kijajsk\ncache-control: no-cache\n\nMaximum time to live of the token is specified over props value consents.max_time_to_live. In case isn't defined default value is 3600 seconds.\n\nExample of POST JSON:\n{\n \"everything\": false,\n \"views\": [\n {\n \"bank_id\": \"GENODEM1GLS\",\n \"account_id\": \"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\",\n \"view_id\": \"owner\"\n }\n ],\n \"entitlements\": [\n {\n \"bank_id\": \"GENODEM1GLS\",\n \"role_name\": \"CanGetCustomer\"\n }\n ],\n \"consumer_id\": \"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\",\n \"email\": \"eveline@example.com\",\n \"valid_from\": \"2020-02-07T08:43:34Z\",\n \"time_to_live\": 3600\n}\nPlease note that only optional fields are: consumer_id, valid_from and time_to_live. \nIn case you omit they the default values are used:\nconsumer_id = consumer of current user\nvalid_from = current time\ntime_to_live = consents.max_time_to_live\n\n \n\nAuthentication is Mandatory\n\nExample 1: \n{\n \"everything\": true,\n \"views\": [],\n \"entitlements\": [],\n \"consumer_id\": \"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\",\n \"email\": \"eveline@example.com\"\n}\n\nPlease note that consumer_id is optional field\nExample 2:\n{\n \"everything\": true,\n \"views\": [],\n \"entitlements\": [],\n \"email\": \"eveline@example.com\"\n}\n\nPlease note if everything=false you need to explicitly specify views and entitlements\nExample 3:\n{\n \"everything\": false,\n \"views\": [\n {\n \"bank_id\": \"GENODEM1GLS\",\n \"account_id\": \"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\",\n \"view_id\": \"owner\"\n }\n ],\n \"entitlements\": [\n {\n \"bank_id\": \"GENODEM1GLS\",\n \"role_name\": \"CanGetCustomer\"\n }\n ],\n \"consumer_id\": \"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\",\n \"email\": \"eveline@example.com\"\n}\n\n\n**URL Parameters:**\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[SMS](/glossary#sms): \n\n\n\n\n\n**JSON request body fields:**\n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**entitlements**](/glossary#entitlements): \n\n\n\n[**everything**](/glossary#everything): \n\n\n\n[**phone_number**](/glossary#phone_number): \n\n\n\n[**role_name**](/glossary#role_name): \n\n\n\n[**view_id**](/glossary#): owner\n\n\n\n[**views**](/glossary#views): \n\n\n\n[consumer_id](/glossary#): 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[time_to_live](/glossary#time_to_live): \n\n\n\n[valid_from](/glossary#valid_from): 2020-01-27\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**consent_id**](/glossary#consent_id): \n\n\n\n[**jwt**](/glossary#jwt): \n\n\n\n[**status**](/glossary#status): \n\n\n","example_request_body":{"everything":false,"views":[{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0","view_id":"owner"}],"entitlements":[{"bank_id":"gh.29.uk","role_name":"CanGetCustomer"}],"consumer_id":"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh","phone_number":"+44 07972 444 876","valid_from":"2024-03-26T11:02:48Z","time_to_live":3600},"success_response_body":{"consent_id":"9d429899-24f5-42c8-8565-943ffa6a7945","jwt":"eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOltdLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIyMWUxYzhjYy1mOTE4LTRlYWMtYjhlMy01ZTVlZWM2YjNiNGIiLCJhdWQiOiJlanpuazUwNWQxMzJyeW9tbmhieDFxbXRvaHVyYnNiYjBraWphanNrIiwibmJmIjoxNTUzNTU0ODk5LCJpc3MiOiJodHRwczpcL1wvd3d3Lm9wZW5iYW5rcHJvamVjdC5jb20iLCJleHAiOjE1NTM1NTg0OTksImlhdCI6MTU1MzU1NDg5OSwianRpIjoiMDlmODhkNWYtZWNlNi00Mzk4LThlOTktNjYxMWZhMWNkYmQ1Iiwidmlld3MiOlt7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAxIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifSx7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAyIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifV19.8cc7cBEf2NyQvJoukBCmDLT7LXYcuzTcSYLqSpbxLp4","status":"INITIATED"},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-10001: Incorrect json format.","OBP-35009: Only SMS, EMAIL and IMPLICIT are supported as SCA methods. ","OBP-35013: Consents can only contain Roles that you already have access to.","OBP-35014: Consents can only contain Views that you already have access to.","OBP-30019: Consumer not found. Please specify a valid value for CONSUMER_ID.","OBP-20058: Consumer is disabled.","OBP-00010: Missing props value at this API instance - ","OBP-35010: SMS server is not working or SMS server can not send the message to the phone number:","OBP-50200: Connector cannot return the data we requested.","OBP-50000: Unknown Error."],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_request_body":{"type":"object","properties":{"valid_from":{"type":"string","format":"date-time"},"entitlements":{"type":"array","items":{"type":"object","properties":{"bank_id":{"type":"string"},"role_name":{"type":"string"}}}},"phone_number":{"type":"string"},"everything":{"type":"boolean"},"views":{"type":"array","items":{"type":"object","properties":{"bank_id":{"type":"string"},"view_id":{"type":"string"},"account_id":{"type":"string"}}}},"consumer_id":{"type":"string"},"time_to_live":{"type":"integer"}}},"typed_success_response_body":{"type":"object","properties":{"consent_id":{"type":"string"},"status":{"type":"string"},"jwt":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/my/consents/SMS","connector_methods":[]},{"operation_id":"OBPv2.1.0-createTransactionRequestSandboxTan","implemented_by":{"version":"OBPv2.1.0","function":"createTransactionRequestSandboxTan"},"request_verb":"POST","request_url":"/obp/v2.1.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/SANDBOX_TAN/transaction-requests","summary":"Create Transaction Request (SANDBOX_TAN)","description":"When using SANDBOX_TAN, the payee is set in the request body.
\nMoney goes into the BANK_ID and ACCOUNT_ID specified in the request body.
\nInitiate a Payment via creating a Transaction Request.
\nIn OBP, a transaction request
may or may not result in a transaction
. However, a transaction
only has one possible state: completed.
A Transaction Request
can have one of several states.
Transactions
are modeled on items in a bank statement that represent the movement of money.
Transaction Requests
are requests to move money which may or may not succeeed and thus result in a Transaction
.
A Transaction Request
might create a security challenge that needs to be answered before the Transaction Request
proceeds.
Transaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).
\nTransaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response.
\nThis provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.
The payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.
\nIn sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to SANDBOX_TAN. See getTransactionRequestTypesSupportedByBank for all supported types.
\nIn sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.
\nIf a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.
\nYou can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.
\nThe following static FX rates are available in sandbox mode:
\n{
\n"XAF":{
\n"XAF":1.0,
\n"HKD":0.0135503,
\n"AUD":0.00228226,
\n"KRW":1.87975,
\n"JOD":0.00127784,
\n"GBP":0.00131092,
\n"MXN":0.0396,
\n"AED":0.00601555,
\n"INR":0.110241,
\n"XBT":2.9074795E-8,
\n"JPY":0.185328,
\n"USD":0.00163773,
\n"ILS":0.00641333,
\n"EUR":0.00152449
\n},
\n"HKD":{
\n"XAF":73.8049,
\n"HKD":1.0,
\n"AUD":0.178137,
\n"KRW":143.424,
\n"JOD":0.0903452,
\n"GBP":0.0985443,
\n"MXN":2.8067,
\n"AED":0.467977,
\n"INR":9.09325,
\n"XBT":2.164242461E-6,
\n"JPY":14.0867,
\n"USD":0.127427,
\n"ILS":0.460862,
\n"EUR":0.112495
\n},
\n"AUD":{
\n"XAF":438.162,
\n"HKD":5.61346,
\n"AUD":1.0,
\n"KRW":895.304,
\n"JOD":0.556152,
\n"GBP":0.609788,
\n"MXN":16.0826,
\n"AED":2.88368,
\n"INR":50.4238,
\n"XBT":1.2284055924E-5,
\n"JPY":87.0936,
\n"USD":0.785256,
\n"ILS":2.83558,
\n"EUR":0.667969
\n},
\n"KRW":{
\n"XAF":0.531986,
\n"HKD":0.00697233,
\n"AUD":0.00111694,
\n"KRW":1.0,
\n"JOD":6.30634E-4,
\n"GBP":6.97389E-4,
\n"MXN":0.0183,
\n"AED":0.00320019,
\n"INR":0.0586469,
\n"XBT":1.4234725E-8,
\n"JPY":0.0985917,
\n"USD":8.7125E-4,
\n"ILS":0.00316552,
\n"EUR":8.11008E-4
\n},
\n"JOD":{
\n"XAF":782.572,
\n"HKD":11.0687,
\n"AUD":1.63992,
\n"KRW":1585.68,
\n"JOD":1.0,
\n"GBP":1.06757,
\n"MXN":30.8336,
\n"AED":5.18231,
\n"INR":90.1236,
\n"XBT":2.3803244006E-5,
\n"JPY":156.304,
\n"USD":1.41112,
\n"ILS":5.02018,
\n"EUR":0.237707
\n},
\n"GBP":{
\n"XAF":762.826,
\n"HKD":10.1468,
\n"AUD":1.63992,
\n"KRW":1433.92,
\n"JOD":0.936707,
\n"GBP":1.0,
\n"MXN":29.242,
\n"AED":4.58882,
\n"INR":84.095,
\n"XBT":2.2756409956E-5,
\n"JPY":141.373,
\n"USD":1.2493,
\n"ILS":4.7002,
\n"EUR":1.16278
\n},
\n"MXN":{
\n"XAF":25.189,
\n"HKD":0.3562,
\n"AUD":0.0621,
\n"KRW":54.4512,
\n"JOD":0.0324,
\n"GBP":0.0341,
\n"MXN":1.0,
\n"AED":0.1688,
\n"INR":3.3513,
\n"XBT":8.1112586E-7,
\n"JPY":4.8687,
\n"USD":0.0459,
\n"ILS":0.1541,
\n"EUR":0.0384
\n},
\n"AED":{
\n"XAF":166.236,
\n"HKD":2.13685,
\n"AUD":0.346779,
\n"KRW":312.482,
\n"JOD":0.1930565,
\n"GBP":0.217921,
\n"MXN":5.9217,
\n"AED":1.0,
\n"INR":18.3255,
\n"XBT":4.603349217E-6,
\n"JPY":30.8081,
\n"USD":0.27225,
\n"ILS":0.968033,
\n"EUR":0.253425
\n},
\n"INR":{
\n"XAF":9.07101,
\n"HKD":0.109972,
\n"AUD":0.0198319,
\n"KRW":17.0512,
\n"JOD":0.0110959,
\n"GBP":0.0118913,
\n"MXN":0.2983,
\n"AED":0.0545671,
\n"INR":1.0,
\n"XBT":2.2689396E-7,
\n"JPY":1.68111,
\n"USD":0.0148559,
\n"ILS":0.0556764,
\n"EUR":0.0138287
\n},
\n"XBT":{
\n"XAF":3.4353824E7,
\n"HKD":460448.9,
\n"AUD":81168.603,
\n"KRW":7.0131575E7,
\n"JOD":41960.111,
\n"GBP":44188.118,
\n"MXN":1230503.3,
\n"AED":217414.47,
\n"INR":4407607.74,
\n"XBT":1.0,
\n"JPY":6805170.8,
\n"USD":59245.918,
\n"ILS":182981.21,
\n"EUR":52436.431
\n},
\n"JPY":{
\n"XAF":5.39585,
\n"HKD":0.0709891,
\n"AUD":0.0114819,
\n"KRW":10.1428,
\n"JOD":0.00639777,
\n"GBP":0.0070735,
\n"MXN":0.2053,
\n"AED":0.032459,
\n"INR":0.594846,
\n"XBT":1.47171931E-7,
\n"JPY":1.0,
\n"USD":0.00883695,
\n"ILS":0.0320926,
\n"EUR":0.00822592
\n},
\n"USD":{
\n"XAF":610.601,
\n"HKD":7.84766,
\n"AUD":1.27347,
\n"KRW":1147.78,
\n"JOD":0.708659,
\n"GBP":0.800446,
\n"MXN":21.748,
\n"AED":3.6731,
\n"INR":67.3135,
\n"XBT":1.69154E-5,
\n"JPY":113.161,
\n"USD":1.0,
\n"ILS":3.55495,
\n"EUR":0.930886
\n},
\n"ILS":{
\n"XAF":155.925,
\n"HKD":2.16985,
\n"AUD":0.352661,
\n"KRW":315.903,
\n"JOD":0.199196,
\n"GBP":0.212763,
\n"MXN":6.4871,
\n"AED":1.03302,
\n"INR":17.9609,
\n"XBT":5.452272147E-6,
\n"JPY":31.1599,
\n"USD":0.281298,
\n"ILS":1.0,
\n"EUR":1.19318
\n},
\n"EUR":{
\n"XAF":655.957,
\n"HKD":8.88926,
\n"AUD":1.49707,
\n"KRW":1233.03,
\n"JOD":0.838098,
\n"GBP":0.860011,
\n"MXN":26.0359,
\n"AED":3.94594,
\n"INR":72.3136,
\n"XBT":1.9087905636E-5,
\n"JPY":121.567,
\n"USD":1.07428,
\n"ILS":4.20494,
\n"EUR":1.0
\n}
\n}
Transaction Requests satisfy PSD2 requirements thus:
\n1) A transaction can be initiated by a third party application.
\n2) The customer is informed of the charge that will incurred.
\n3) The call supports delegated authentication (OAuth)
\nSee this python code for a complete example of this flow.
\nThere is further documentation here
\nAuthentication is Mandatory
\nURL Parameters:
\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nBANK_ID: gh.29.uk
\n\nVIEW_ID: owner
\nJSON request body fields:
\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\namount: 10.12
\nbank_id: gh.29.uk
\ncurrency: EUR
\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\nto:
\nvalue: 5987953
\nJSON response body fields:
\n\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n\namount: 10.12
\nbank_code: CGHZ
\nbank_id: gh.29.uk
\n\n\n\n\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\n\ncurrency: EUR
\ndate_of_birth: 2018-03-09
\n\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\n\n\nfrom:
\nfuture_date: 20200127
\niban: DE91 1000 0000 0123 4567 89
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\ninstructedAmount: 100
\n\nlegal_name: Eveline Tripman
\nmessage: 123456
\nmobile_phone_number: +49 30 901820
\nname: ACCOUNT_MANAGEMENT_FEE
\n\n\notherAccountRoutingAddress: otherAccountRoutingAddress
\notherAccountRoutingScheme: otherAccountRoutingScheme
\notherAccountSecondaryRoutingAddress: otherAccountSecondaryRoutingAddress
\notherAccountSecondaryRoutingScheme: otherAccountSecondaryRoutingScheme
\notherBankRoutingAddress: otherBankRoutingAddress
\notherBankRoutingScheme: otherBankRoutingScheme
\notherBranchRoutingAddress: otherBranchRoutingAddress
\notherBranchRoutingScheme: otherBranchRoutingScheme
\nstart_date: 2020-01-27
\n\n\nto:
\n\n\ntype:
\nvalue: 5987953
\n\n\n\n\nto_simple: to_simple
\n\n\n\n","description_markdown":"When using SANDBOX_TAN, the payee is set in the request body.\n\nMoney goes into the BANK_ID and ACCOUNT_ID specified in the request body.\n\nInitiate a Payment via creating a Transaction Request.\n\nIn OBP, a `transaction request` may or may not result in a `transaction`. However, a `transaction` only has one possible state: completed.\n\nA `Transaction Request` can have one of several states.\n\n`Transactions` are modeled on items in a bank statement that represent the movement of money.\n\n`Transaction Requests` are requests to move money which may or may not succeeed and thus result in a `Transaction`.\n\nA `Transaction Request` might create a security challenge that needs to be answered before the `Transaction Request` proceeds.\n\nTransaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).\n\nTransaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response.\nThis provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.\n\nThe payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.\n\nIn sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to SANDBOX_TAN. See getTransactionRequestTypesSupportedByBank for all supported types.\n\nIn sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.\n\nIf a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.\n\nYou can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.\n\nThe following static FX rates are available in sandbox mode:\n\n{\n \"XAF\":{\n \"XAF\":1.0,\n \"HKD\":0.0135503,\n \"AUD\":0.00228226,\n \"KRW\":1.87975,\n \"JOD\":0.00127784,\n \"GBP\":0.00131092,\n \"MXN\":0.0396,\n \"AED\":0.00601555,\n \"INR\":0.110241,\n \"XBT\":2.9074795E-8,\n \"JPY\":0.185328,\n \"USD\":0.00163773,\n \"ILS\":0.00641333,\n \"EUR\":0.00152449\n },\n \"HKD\":{\n \"XAF\":73.8049,\n \"HKD\":1.0,\n \"AUD\":0.178137,\n \"KRW\":143.424,\n \"JOD\":0.0903452,\n \"GBP\":0.0985443,\n \"MXN\":2.8067,\n \"AED\":0.467977,\n \"INR\":9.09325,\n \"XBT\":2.164242461E-6,\n \"JPY\":14.0867,\n \"USD\":0.127427,\n \"ILS\":0.460862,\n \"EUR\":0.112495\n },\n \"AUD\":{\n \"XAF\":438.162,\n \"HKD\":5.61346,\n \"AUD\":1.0,\n \"KRW\":895.304,\n \"JOD\":0.556152,\n \"GBP\":0.609788,\n \"MXN\":16.0826,\n \"AED\":2.88368,\n \"INR\":50.4238,\n \"XBT\":1.2284055924E-5,\n \"JPY\":87.0936,\n \"USD\":0.785256,\n \"ILS\":2.83558,\n \"EUR\":0.667969\n },\n \"KRW\":{\n \"XAF\":0.531986,\n \"HKD\":0.00697233,\n \"AUD\":0.00111694,\n \"KRW\":1.0,\n \"JOD\":6.30634E-4,\n \"GBP\":6.97389E-4,\n \"MXN\":0.0183,\n \"AED\":0.00320019,\n \"INR\":0.0586469,\n \"XBT\":1.4234725E-8,\n \"JPY\":0.0985917,\n \"USD\":8.7125E-4,\n \"ILS\":0.00316552,\n \"EUR\":8.11008E-4\n },\n \"JOD\":{\n \"XAF\":782.572,\n \"HKD\":11.0687,\n \"AUD\":1.63992,\n \"KRW\":1585.68,\n \"JOD\":1.0,\n \"GBP\":1.06757,\n \"MXN\":30.8336,\n \"AED\":5.18231,\n \"INR\":90.1236,\n \"XBT\":2.3803244006E-5,\n \"JPY\":156.304,\n \"USD\":1.41112,\n \"ILS\":5.02018,\n \"EUR\":0.237707\n },\n \"GBP\":{\n \"XAF\":762.826,\n \"HKD\":10.1468,\n \"AUD\":1.63992,\n \"KRW\":1433.92,\n \"JOD\":0.936707,\n \"GBP\":1.0,\n \"MXN\":29.242,\n \"AED\":4.58882,\n \"INR\":84.095,\n \"XBT\":2.2756409956E-5,\n \"JPY\":141.373,\n \"USD\":1.2493,\n \"ILS\":4.7002,\n \"EUR\":1.16278\n },\n \"MXN\":{\n \"XAF\":25.189,\n \"HKD\":0.3562,\n \"AUD\":0.0621,\n \"KRW\":54.4512,\n \"JOD\":0.0324,\n \"GBP\":0.0341,\n \"MXN\":1.0,\n \"AED\":0.1688,\n \"INR\":3.3513,\n \"XBT\":8.1112586E-7,\n \"JPY\":4.8687,\n \"USD\":0.0459,\n \"ILS\":0.1541,\n \"EUR\":0.0384\n },\n \"AED\":{\n \"XAF\":166.236,\n \"HKD\":2.13685,\n \"AUD\":0.346779,\n \"KRW\":312.482,\n \"JOD\":0.1930565,\n \"GBP\":0.217921,\n \"MXN\":5.9217,\n \"AED\":1.0,\n \"INR\":18.3255,\n \"XBT\":4.603349217E-6,\n \"JPY\":30.8081,\n \"USD\":0.27225,\n \"ILS\":0.968033,\n \"EUR\":0.253425\n },\n \"INR\":{\n \"XAF\":9.07101,\n \"HKD\":0.109972,\n \"AUD\":0.0198319,\n \"KRW\":17.0512,\n \"JOD\":0.0110959,\n \"GBP\":0.0118913,\n \"MXN\":0.2983,\n \"AED\":0.0545671,\n \"INR\":1.0,\n \"XBT\":2.2689396E-7,\n \"JPY\":1.68111,\n \"USD\":0.0148559,\n \"ILS\":0.0556764,\n \"EUR\":0.0138287\n },\n \"XBT\":{\n \"XAF\":3.4353824E7,\n \"HKD\":460448.9,\n \"AUD\":81168.603,\n \"KRW\":7.0131575E7,\n \"JOD\":41960.111,\n \"GBP\":44188.118,\n \"MXN\":1230503.3,\n \"AED\":217414.47,\n \"INR\":4407607.74,\n \"XBT\":1.0,\n \"JPY\":6805170.8,\n \"USD\":59245.918,\n \"ILS\":182981.21,\n \"EUR\":52436.431\n },\n \"JPY\":{\n \"XAF\":5.39585,\n \"HKD\":0.0709891,\n \"AUD\":0.0114819,\n \"KRW\":10.1428,\n \"JOD\":0.00639777,\n \"GBP\":0.0070735,\n \"MXN\":0.2053,\n \"AED\":0.032459,\n \"INR\":0.594846,\n \"XBT\":1.47171931E-7,\n \"JPY\":1.0,\n \"USD\":0.00883695,\n \"ILS\":0.0320926,\n \"EUR\":0.00822592\n },\n \"USD\":{\n \"XAF\":610.601,\n \"HKD\":7.84766,\n \"AUD\":1.27347,\n \"KRW\":1147.78,\n \"JOD\":0.708659,\n \"GBP\":0.800446,\n \"MXN\":21.748,\n \"AED\":3.6731,\n \"INR\":67.3135,\n \"XBT\":1.69154E-5,\n \"JPY\":113.161,\n \"USD\":1.0,\n \"ILS\":3.55495,\n \"EUR\":0.930886\n },\n \"ILS\":{\n \"XAF\":155.925,\n \"HKD\":2.16985,\n \"AUD\":0.352661,\n \"KRW\":315.903,\n \"JOD\":0.199196,\n \"GBP\":0.212763,\n \"MXN\":6.4871,\n \"AED\":1.03302,\n \"INR\":17.9609,\n \"XBT\":5.452272147E-6,\n \"JPY\":31.1599,\n \"USD\":0.281298,\n \"ILS\":1.0,\n \"EUR\":1.19318\n },\n \"EUR\":{\n \"XAF\":655.957,\n \"HKD\":8.88926,\n \"AUD\":1.49707,\n \"KRW\":1233.03,\n \"JOD\":0.838098,\n \"GBP\":0.860011,\n \"MXN\":26.0359,\n \"AED\":3.94594,\n \"INR\":72.3136,\n \"XBT\":1.9087905636E-5,\n \"JPY\":121.567,\n \"USD\":1.07428,\n \"ILS\":4.20494,\n \"EUR\":1.0\n }\n}\n\n\nTransaction Requests satisfy PSD2 requirements thus:\n\n1) A transaction can be initiated by a third party application.\n\n2) The customer is informed of the charge that will incurred.\n\n3) The call supports delegated authentication (OAuth)\n\nSee [this python code](https://github.com/OpenBankProject/Hello-OBP-DirectLogin-Python/blob/master/hello_payments.py) for a complete example of this flow.\n\nThere is further documentation [here](https://github.com/OpenBankProject/OBP-API/wiki/Transaction-Requests)\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[SANDBOX_TAN](/glossary#sandbox_tan): \n\n\n\n[VIEW_ID](/glossary#this_view_id): owner\n\n\n\n\n\n**JSON request body fields:**\n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**to**](/glossary#to): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account**](/glossary#Account): \n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**allowed_attempts**](/glossary#allowed_attempts): 5\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**bank_code**](/glossary#bank_code): CGHZ\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**branch_number**](/glossary#branch_number): \n\n\n\n[**challenge**](/glossary#challenge): \n\n\n\n[**challenge_type**](/glossary#challenge_type): \n\n\n\n[**charge**](/glossary#charge): \n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**creditorAccount**](/glossary#creditoraccount): \n\n\n\n[**creditorName**](/glossary#creditorname): \n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**date_of_birth**](/glossary#): 2018-03-09\n\n\n\n[**debtorAccount**](/glossary#debtoraccount): \n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**details**](/glossary#details): \n\n\n\n[**end_date**](/glossary#end_date): \n\n\n\n[**from**](/glossary#from): \n\n\n\n[**future_date**](/glossary#future_date): 20200127\n\n\n\n[**iban**](/glossary#): DE91 1000 0000 0123 4567 89\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**instructedAmount**](/glossary#instructedamount): 100\n\n\n\n[**kyc_document**](/glossary#kyc_document): \n\n\n\n[**legal_name**](/glossary#): Eveline Tripman\n\n\n\n[**message**](/glossary#message): 123456\n\n\n\n[**mobile_phone_number**](/glossary#mobile_phone_number): +49 30 901820\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**nickname**](/glossary#nickname): \n\n\n\n[**number**](/glossary#number): \n\n\n\n[**otherAccountRoutingAddress**](/glossary#): otherAccountRoutingAddress\n\n\n\n[**otherAccountRoutingScheme**](/glossary#): otherAccountRoutingScheme\n\n\n\n[**otherAccountSecondaryRoutingAddress**](/glossary#): otherAccountSecondaryRoutingAddress\n\n\n\n[**otherAccountSecondaryRoutingScheme**](/glossary#): otherAccountSecondaryRoutingScheme\n\n\n\n[**otherBankRoutingAddress**](/glossary#): otherBankRoutingAddress\n\n\n\n[**otherBankRoutingScheme**](/glossary#): otherBankRoutingScheme\n\n\n\n[**otherBranchRoutingAddress**](/glossary#): otherBranchRoutingAddress\n\n\n\n[**otherBranchRoutingScheme**](/glossary#): otherBranchRoutingScheme\n\n\n\n[**start_date**](/glossary#): 2020-01-27\n\n\n\n[**status**](/glossary#status): \n\n\n\n[**summary**](/glossary#summary): \n\n\n\n[**to**](/glossary#to): \n\n\n\n[**transaction_ids**](/glossary#transaction_ids): \n\n\n\n[**transfer_type**](/glossary#transfer_type): \n\n\n\n[**type**](/glossary#type): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[to_counterparty](/glossary#to_counterparty): \n\n\n\n[to_sandbox_tan](/glossary#to_sandbox_tan): \n\n\n\n[to_sepa](/glossary#to_sepa): \n\n\n\n[to_sepa_credit_transfers](/glossary#to_sepa_credit_transfers): \n\n\n\n[to_simple](/glossary#): to_simple\n\n\n\n[to_transfer_to_account](/glossary#to_transfer_to_account): \n\n\n\n[to_transfer_to_atm](/glossary#to_transfer_to_atm): \n\n\n\n[to_transfer_to_phone](/glossary#to_transfer_to_phone): \n\n\n","example_request_body":{"to":{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"value":{"currency":"EUR","amount":"0"},"description":"this is for work"},"success_response_body":{"id":"4050046c-63b3-4868-8a22-14b4181d33a6","type":"SANDBOX_TAN","from":{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"details":{"to_sandbox_tan":{"bank_id":"String","account_id":"String"},"to_sepa":{"iban":"String"},"to_counterparty":{"counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh"},"to_simple":{"otherBankRoutingScheme":"BIC","otherBankRoutingAddress":"GENODEM1GLS","otherBranchRoutingScheme":"BRANCH-CODE","otherBranchRoutingAddress":"DERBY6","otherAccountRoutingScheme":"IBAN","otherAccountRoutingAddress":"DE91 1000 0000 0123 4567 89","otherAccountSecondaryRoutingScheme":"IBAN","otherAccountSecondaryRoutingAddress":"DE91 1000 0000 0123 4567 89"},"to_transfer_to_phone":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"mobile_phone_number":"+44 07972 444 876"}},"to_transfer_to_atm":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"legal_name":"Eveline Tripman","date_of_birth":"20181230","mobile_phone_number":"+44 07972 444 876","kyc_document":{"type":"String","number":"String"}}},"to_transfer_to_account":{"value":{"currency":"EUR","amount":"0"},"description":"String","transfer_type":"String","future_date":"20181230","to":{"name":"String","bank_code":"String","branch_number":"String","account":{"number":"String","iban":"String"}}},"to_sepa_credit_transfers":{"debtorAccount":{"iban":"12345"},"instructedAmount":{"currency":"EUR","amount":"0"},"creditorAccount":{"iban":"54321"},"creditorName":"John Miles"},"value":{"currency":"EUR","amount":"100"},"description":"This an optional field. Maximum length is 2000. It can be any characters here."},"transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"],"status":"COMPLETED","start_date":"1100-01-01T00:00:00Z","end_date":"1100-01-01T00:00:00Z","challenge":{"id":"be1a183d-b301-4b83-b855-5eeffdd3526f","allowed_attempts":3,"challenge_type":"SANDBOX_TAN"},"charge":{"summary":"Rent the flat","value":{"currency":"EUR","amount":"0"}}},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-20001: User not logged in. Authentication is required!","OBP-30111: Invalid Bank Id. The BANK_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-30110: Invalid Account Id. The ACCOUNT_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-10001: Incorrect json format.","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-30003: Account not found. Please specify a valid value for ACCOUNT_ID.","OBP-30005: View not found for Account. Please specify a valid value for VIEW_ID","OBP-40002: Insufficient authorisation to create TransactionRequest. The Transaction Request could not be created because the login user doesn't have access to the view of the from account or the consumer doesn't have the access to the view of the from account or the login user does not have the `CanCreateAnyTransactionRequest` role or the view does not have the permission canaddtransactionrequesttoanyaccount.","OBP-20017: Current user does not have access to the view. Please specify a valid value for VIEW_ID.","OBP-40001: Invalid value for TRANSACTION_REQUEST_TYPE","OBP-10001: Incorrect json format.","OBP-10002: Invalid Number. Could not convert value to a number.","OBP-40008: Can't send a payment with a value of 0 or less.","OBP-40003: Transaction Request Currency must be the same as From Account Currency.","OBP-00003: Transaction Requests is disabled in this API instance.","OBP-50000: Unknown Error."],"tags":["Transaction-Request","Payment Initiation Service (PIS)","PSD2"],"typed_request_body":{"type":"object","properties":{"to":{"type":"object","properties":{"bank_id":{"type":"string"},"account_id":{"type":"string"}}},"description":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"typed_success_response_body":{"type":"object","properties":{"type":{"type":"string"},"challenge":{"type":"object","properties":{"challenge_type":{"type":"string"},"allowed_attempts":{"type":"integer"},"id":{"type":"string"}}},"status":{"type":"string"},"end_date":{"type":"string","format":"date-time"},"charge":{"type":"object","properties":{"summary":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"transaction_ids":{"type":"array","items":{"type":"string"}},"from":{"type":"object","properties":{"bank_id":{"type":"string"},"account_id":{"type":"string"}}},"details":{"type":"object","properties":{"description":{"type":"string"},"to_sandbox_tan":{"type":"object","properties":{"account_id":{"type":"string"},"bank_id":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to_transfer_to_phone":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"to":{"type":"object","properties":{"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa":{"type":"object","properties":{"iban":{"type":"string"}}},"to_simple":{"type":"object","properties":{"otherBankRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingAddress":{"type":"string"},"otherBranchRoutingScheme":{"type":"string"},"otherAccountRoutingScheme":{"type":"string"},"otherAccountRoutingAddress":{"type":"string"},"otherBankRoutingScheme":{"type":"string"},"otherBranchRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingScheme":{"type":"string"}}},"to_counterparty":{"type":"object","properties":{"counterparty_id":{"type":"string"}}},"to_transfer_to_account":{"type":"object","properties":{"to":{"type":"object","properties":{"name":{"type":"string"},"account":{"type":"object","properties":{"number":{"type":"string"},"iban":{"type":"string"}}},"bank_code":{"type":"string"},"branch_number":{"type":"string"}}},"transfer_type":{"type":"string"},"description":{"type":"string"},"future_date":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa_credit_transfers":{"type":"object","properties":{"instructedAmount":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"debtorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorName":{"type":"string"}}},"to_transfer_to_atm":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to":{"type":"object","properties":{"date_of_birth":{"type":"string"},"kyc_document":{"type":"object","properties":{"type":{"type":"string"},"number":{"type":"string"}}},"legal_name":{"type":"string"},"mobile_phone_number":{"type":"string"}}}}}}},"start_date":{"type":"string","format":"date-time"},"id":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/SANDBOX_TAN/transaction-requests","connector_methods":[]},{"operation_id":"OBPv4.0.0-answerTransactionRequestChallenge","implemented_by":{"version":"OBPv4.0.0","function":"answerTransactionRequestChallenge"},"request_verb":"POST","request_url":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/TRANSACTION_REQUEST_TYPE/transaction-requests/TRANSACTION_REQUEST_ID/challenge","summary":"Answer Transaction Request Challenge","description":"In Sandbox mode, any string that can be converted to a positive integer will be accepted as an answer.
\nThis endpoint totally depends on createTransactionRequest, it need get the following data from createTransactionRequest response body.
\n1)TRANSACTION_REQUEST_TYPE
: is the same as createTransactionRequest request URL .
2)TRANSACTION_REQUEST_ID
: is the id
field in createTransactionRequest response body.
3) id
: is challenge.id
field in createTransactionRequest response body.
4) answer
: must be 123
in case that Strong Customer Authentication method for OTP challenge is dummy.
\nFor instance: SANDBOX_TAN_OTP_INSTRUCTION_TRANSPORT=dummy
\nPossible values are dummy,email and sms
\nIn kafka mode, the answer can be got by phone message or other SCA methods.
Note that each Transaction Request Type can have its own OTP_INSTRUCTION_TRANSPORT method.
\nOTP_INSTRUCTION_TRANSPORT methods are set in Props. See sample.props.template for instructions.
Single or Multiple authorisations
\nOBP allows single or multi party authorisations.
\nSingle party authorisation:
\nIn the case that only one person needs to authorise i.e. answer a security challenge we have the following change of state of a transaction request
:
\nINITIATED => COMPLETED
Multiparty authorisation:
\nIn the case that multiple parties (n persons) need to authorise a transaction request i.e. answer security challenges, we have the followings state flow for a transaction request
:
\nINITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED
The security challenge is bound to a user i.e. in the case of a correct answer but the user is different than expected the challenge will fail.
\nRule for calculating number of security challenges:
\nIf Product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges
\n(one for every user that has a View where permission "can_add_transaction_request_to_any_account"=true)
\nIn the case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute, the default number of security challenges created is one.
Authentication is Mandatory
\nURL Parameters:
\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nBANK_ID: gh.29.uk
\nTRANSACTION_REQUEST_ID: 8138a7e4-6d02-40e3-a129-0b2bf89de9f1
\nTRANSACTION_REQUEST_TYPE: SEPA
\nVIEW_ID: owner
\nJSON request body fields:
\n\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\nadditional_information: additional_information
\nreason_code: reason_code
\nJSON response body fields:
\n\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n\namount: 10.12
\nbank_code: CGHZ
\nbank_id: gh.29.uk
\n\n\n\n\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\n\ncurrency: EUR
\ndate_of_birth: 2018-03-09
\n\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\n\n\nfrom:
\nfuture_date: 20200127
\niban: DE91 1000 0000 0123 4567 89
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\ninstructedAmount: 100
\n\nlegal_name: Eveline Tripman
\nmessage: 123456
\nmobile_phone_number: +49 30 901820
\nname: ACCOUNT_MANAGEMENT_FEE
\n\n\notherAccountRoutingAddress: otherAccountRoutingAddress
\notherAccountRoutingScheme: otherAccountRoutingScheme
\notherAccountSecondaryRoutingAddress: otherAccountSecondaryRoutingAddress
\notherAccountSecondaryRoutingScheme: otherAccountSecondaryRoutingScheme
\notherBankRoutingAddress: otherBankRoutingAddress
\notherBankRoutingScheme: otherBankRoutingScheme
\notherBranchRoutingAddress: otherBranchRoutingAddress
\notherBranchRoutingScheme: otherBranchRoutingScheme
\nstart_date: 2020-01-27
\n\n\nto:
\n\n\ntype:
\nvalue: 5987953
\n\n\n\n\nto_simple: to_simple
\n\n\n\n","description_markdown":"In Sandbox mode, any string that can be converted to a positive integer will be accepted as an answer.\n\nThis endpoint totally depends on createTransactionRequest, it need get the following data from createTransactionRequest response body.\n\n1)`TRANSACTION_REQUEST_TYPE` : is the same as createTransactionRequest request URL .\n\n2)`TRANSACTION_REQUEST_ID` : is the `id` field in createTransactionRequest response body.\n\n3) `id` : is `challenge.id` field in createTransactionRequest response body.\n\n4) `answer` : must be `123` in case that Strong Customer Authentication method for OTP challenge is dummy.\n For instance: SANDBOX_TAN_OTP_INSTRUCTION_TRANSPORT=dummy\n Possible values are dummy,email and sms\n In kafka mode, the answer can be got by phone message or other SCA methods.\n\nNote that each Transaction Request Type can have its own OTP_INSTRUCTION_TRANSPORT method.\nOTP_INSTRUCTION_TRANSPORT methods are set in Props. See sample.props.template for instructions.\n\nSingle or Multiple authorisations\n\nOBP allows single or multi party authorisations.\n\nSingle party authorisation:\n\nIn the case that only one person needs to authorise i.e. answer a security challenge we have the following change of state of a `transaction request`:\n INITIATED => COMPLETED\n\n\nMultiparty authorisation:\n\nIn the case that multiple parties (n persons) need to authorise a transaction request i.e. answer security challenges, we have the followings state flow for a `transaction request`:\n INITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED\n\nThe security challenge is bound to a user i.e. in the case of a correct answer but the user is different than expected the challenge will fail.\n\nRule for calculating number of security challenges:\nIf Product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges\n(one for every user that has a View where permission \"can_add_transaction_request_to_any_account\"=true)\nIn the case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute, the default number of security challenges created is one.\n\n \n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[TRANSACTION_REQUEST_ID](/glossary#): 8138a7e4-6d02-40e3-a129-0b2bf89de9f1\n\n\n\n[TRANSACTION_REQUEST_TYPE](/glossary#): SEPA\n\n\n\n[VIEW_ID](/glossary#this_view_id): owner\n\n\n\n\n\n**JSON request body fields:**\n\n\n\n[**answer**](/glossary#answer): \n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[additional_information](/glossary#): additional_information\n\n\n\n[reason_code](/glossary#): reason_code\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account**](/glossary#Account): \n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**allowed_attempts**](/glossary#allowed_attempts): 5\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**bank_code**](/glossary#bank_code): CGHZ\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**branch_number**](/glossary#branch_number): \n\n\n\n[**challenge**](/glossary#challenge): \n\n\n\n[**challenge_type**](/glossary#challenge_type): \n\n\n\n[**charge**](/glossary#charge): \n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**creditorAccount**](/glossary#creditoraccount): \n\n\n\n[**creditorName**](/glossary#creditorname): \n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**date_of_birth**](/glossary#): 2018-03-09\n\n\n\n[**debtorAccount**](/glossary#debtoraccount): \n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**details**](/glossary#details): \n\n\n\n[**end_date**](/glossary#end_date): \n\n\n\n[**from**](/glossary#from): \n\n\n\n[**future_date**](/glossary#future_date): 20200127\n\n\n\n[**iban**](/glossary#): DE91 1000 0000 0123 4567 89\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**instructedAmount**](/glossary#instructedamount): 100\n\n\n\n[**kyc_document**](/glossary#kyc_document): \n\n\n\n[**legal_name**](/glossary#): Eveline Tripman\n\n\n\n[**message**](/glossary#message): 123456\n\n\n\n[**mobile_phone_number**](/glossary#mobile_phone_number): +49 30 901820\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**nickname**](/glossary#nickname): \n\n\n\n[**number**](/glossary#number): \n\n\n\n[**otherAccountRoutingAddress**](/glossary#): otherAccountRoutingAddress\n\n\n\n[**otherAccountRoutingScheme**](/glossary#): otherAccountRoutingScheme\n\n\n\n[**otherAccountSecondaryRoutingAddress**](/glossary#): otherAccountSecondaryRoutingAddress\n\n\n\n[**otherAccountSecondaryRoutingScheme**](/glossary#): otherAccountSecondaryRoutingScheme\n\n\n\n[**otherBankRoutingAddress**](/glossary#): otherBankRoutingAddress\n\n\n\n[**otherBankRoutingScheme**](/glossary#): otherBankRoutingScheme\n\n\n\n[**otherBranchRoutingAddress**](/glossary#): otherBranchRoutingAddress\n\n\n\n[**otherBranchRoutingScheme**](/glossary#): otherBranchRoutingScheme\n\n\n\n[**start_date**](/glossary#): 2020-01-27\n\n\n\n[**status**](/glossary#status): \n\n\n\n[**summary**](/glossary#summary): \n\n\n\n[**to**](/glossary#to): \n\n\n\n[**transaction_ids**](/glossary#transaction_ids): \n\n\n\n[**transfer_type**](/glossary#transfer_type): \n\n\n\n[**type**](/glossary#type): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[to_counterparty](/glossary#to_counterparty): \n\n\n\n[to_sandbox_tan](/glossary#to_sandbox_tan): \n\n\n\n[to_sepa](/glossary#to_sepa): \n\n\n\n[to_sepa_credit_transfers](/glossary#to_sepa_credit_transfers): \n\n\n\n[to_simple](/glossary#): to_simple\n\n\n\n[to_transfer_to_account](/glossary#to_transfer_to_account): \n\n\n\n[to_transfer_to_atm](/glossary#to_transfer_to_atm): \n\n\n\n[to_transfer_to_phone](/glossary#to_transfer_to_phone): \n\n\n","example_request_body":{"id":"This is challenge.id, you can get it from `Create Transaction Request.` response, only is useful if status ==`INITIATED` there.","answer":"123","reason_code":"[Optional] Reason code for REJECT answer (e.g. 'CUST')","additional_information":"[Optional] Additional description for REJECT answer"},"success_response_body":{"id":"4050046c-63b3-4868-8a22-14b4181d33a6","type":"SANDBOX_TAN","from":{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"details":{"to_sandbox_tan":{"bank_id":"String","account_id":"String"},"to_sepa":{"iban":"String"},"to_counterparty":{"counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh"},"to_simple":{"otherBankRoutingScheme":"BIC","otherBankRoutingAddress":"GENODEM1GLS","otherBranchRoutingScheme":"BRANCH-CODE","otherBranchRoutingAddress":"DERBY6","otherAccountRoutingScheme":"IBAN","otherAccountRoutingAddress":"DE91 1000 0000 0123 4567 89","otherAccountSecondaryRoutingScheme":"IBAN","otherAccountSecondaryRoutingAddress":"DE91 1000 0000 0123 4567 89"},"to_transfer_to_phone":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"mobile_phone_number":"+44 07972 444 876"}},"to_transfer_to_atm":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"legal_name":"Eveline Tripman","date_of_birth":"20181230","mobile_phone_number":"+44 07972 444 876","kyc_document":{"type":"String","number":"String"}}},"to_transfer_to_account":{"value":{"currency":"EUR","amount":"0"},"description":"String","transfer_type":"String","future_date":"20181230","to":{"name":"String","bank_code":"String","branch_number":"String","account":{"number":"String","iban":"String"}}},"to_sepa_credit_transfers":{"debtorAccount":{"iban":"12345"},"instructedAmount":{"currency":"EUR","amount":"0"},"creditorAccount":{"iban":"54321"},"creditorName":"John Miles"},"value":{"currency":"EUR","amount":"100"},"description":"This an optional field. Maximum length is 2000. It can be any characters here."},"transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"],"status":"COMPLETED","start_date":"1100-01-01T00:00:00Z","end_date":"1100-01-01T00:00:00Z","challenge":{"id":"be1a183d-b301-4b83-b855-5eeffdd3526f","allowed_attempts":3,"challenge_type":"SANDBOX_TAN"},"charge":{"summary":"Rent the flat","value":{"currency":"EUR","amount":"0"}}},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30111: Invalid Bank Id. The BANK_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-30110: Invalid Account Id. The ACCOUNT_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-10001: Incorrect json format.","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID. ","OBP-40011: Transaction Request Status is not INITIATED.","OBP-40009: The TRANSACTION_REQUEST_TYPE has changed.","OBP-40014: Sorry, you've used up your allowed attempts. ","OBP-00003: Transaction Requests is disabled in this API instance.","OBP-50000: Unknown Error."],"tags":["Transaction-Request","Payment Initiation Service (PIS)","PSD2"],"typed_request_body":{"type":"object","properties":{"additional_information":{"type":"string"},"answer":{"type":"string"},"reason_code":{"type":"string"},"id":{"type":"string"}}},"typed_success_response_body":{"type":"object","properties":{"type":{"type":"string"},"challenge":{"type":"object","properties":{"challenge_type":{"type":"string"},"allowed_attempts":{"type":"integer"},"id":{"type":"string"}}},"status":{"type":"string"},"end_date":{"type":"string","format":"date-time"},"charge":{"type":"object","properties":{"summary":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"transaction_ids":{"type":"array","items":{"type":"string"}},"from":{"type":"object","properties":{"bank_id":{"type":"string"},"account_id":{"type":"string"}}},"details":{"type":"object","properties":{"description":{"type":"string"},"to_sandbox_tan":{"type":"object","properties":{"account_id":{"type":"string"},"bank_id":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to_transfer_to_phone":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"to":{"type":"object","properties":{"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa":{"type":"object","properties":{"iban":{"type":"string"}}},"to_simple":{"type":"object","properties":{"otherBankRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingAddress":{"type":"string"},"otherBranchRoutingScheme":{"type":"string"},"otherAccountRoutingScheme":{"type":"string"},"otherAccountRoutingAddress":{"type":"string"},"otherBankRoutingScheme":{"type":"string"},"otherBranchRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingScheme":{"type":"string"}}},"to_counterparty":{"type":"object","properties":{"counterparty_id":{"type":"string"}}},"to_transfer_to_account":{"type":"object","properties":{"to":{"type":"object","properties":{"name":{"type":"string"},"account":{"type":"object","properties":{"number":{"type":"string"},"iban":{"type":"string"}}},"bank_code":{"type":"string"},"branch_number":{"type":"string"}}},"transfer_type":{"type":"string"},"description":{"type":"string"},"future_date":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa_credit_transfers":{"type":"object","properties":{"instructedAmount":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"debtorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorName":{"type":"string"}}},"to_transfer_to_atm":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to":{"type":"object","properties":{"date_of_birth":{"type":"string"},"kyc_document":{"type":"object","properties":{"type":{"type":"string"},"number":{"type":"string"}}},"legal_name":{"type":"string"},"mobile_phone_number":{"type":"string"}}}}}}},"start_date":{"type":"string","format":"date-time"},"id":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/TRANSACTION_REQUEST_TYPE/transaction-requests/TRANSACTION_REQUEST_ID/challenge","connector_methods":[]},{"operation_id":"OBPv3.0.0-privateAccountsAtOneBank","implemented_by":{"version":"OBPv3.0.0","function":"privateAccountsAtOneBank"},"request_verb":"GET","request_url":"/obp/v3.0.0/banks/BANK_ID/accounts/private","summary":"Get Accounts at Bank (Minimal)","description":"Returns the minimal list of private accounts at BANK_ID that the user has access to.
\nFor each account, the API returns the ID, routing addresses and the views available to the current user.
If you want to see more information on the Views, use the Account Detail call.
\noptional request parameters:
\nwhole url example:
\n/banks/BANK_ID/accounts/private?account_type_filter=330,CURRENT+PLUS&account_type_filter_operation=INCLUDE
Authentication is Mandatory
\nURL Parameters:
\nBANK_ID: gh.29.uk
\nJSON response body fields:
\n\naccount_type: AC
\n\n\nbank_id: gh.29.uk
\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\nis_public: true
\nlabel: My Account
\nscheme: scheme value
\n\n\n","description_markdown":"Returns the minimal list of private accounts at BANK_ID that the user has access to.\nFor each account, the API returns the ID, routing addresses and the views available to the current user.\n\nIf you want to see more information on the Views, use the Account Detail call.\n\n\noptional request parameters:\n\n* account_type_filter: one or many accountType value, split by comma\n* account_type_filter_operation: the filter type of account_type_filter, value must be INCLUDE or EXCLUDE\n\nwhole url example:\n/banks/BANK_ID/accounts/private?account_type_filter=330,CURRENT+PLUS&account_type_filter_operation=INCLUDE\n \n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account_routings**](/glossary#account_routings): \n\n\n\n[**account_type**](/glossary#): AC\n\n\n\n[**accounts**](/glossary#accounts): \n\n\n\n[**address**](/glossary#address): \n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**is_public**](/glossary#is_public): true\n\n\n\n[**label**](/glossary#): My Account\n\n\n\n[**scheme**](/glossary#scheme): scheme value\n\n\n\n[**short_name**](/glossary#short_name): \n\n\n\n[**views**](/glossary#views): \n\n\n","success_response_body":{"accounts":[{"id":"5995d6a2-01b3-423c-a173-5481df49bdaf","label":"String","bank_id":"gh.29.uk","account_type":"330","account_routings":[{"scheme":"AccountNumber","address":"4930396"}],"views":[{"id":"owner","short_name":"Owner","description":"This view is for the owner for the account.","is_public":false}]}]},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-50000: Unknown Error."],"tags":["Account","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"object","properties":{"views":{"type":"array","items":{"type":"object","properties":{"short_name":{"type":"string"},"description":{"type":"string"},"is_public":{"type":"boolean"},"id":{"type":"string"}}}},"account_type":{"type":"string"},"bank_id":{"type":"string"},"id":{"type":"string"},"label":{"type":"string"},"account_routings":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string"},"address":{"type":"string"}}}}}}}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts/private","connector_methods":[]},{"operation_id":"OBPv4.0.0-getTransactionRequest","implemented_by":{"version":"OBPv4.0.0","function":"getTransactionRequest"},"request_verb":"GET","request_url":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-requests/TRANSACTION_REQUEST_ID","summary":"Get Transaction Request","description":"Returns transaction request for transaction specified by TRANSACTION_REQUEST_ID and for account specified by ACCOUNT_ID at bank specified by BANK_ID.
\nThe VIEW_ID specified must be 'owner' and the user must have access to this view.
\nVersion 2.0.0 now returns charge information.
\nTransaction Requests serve to initiate transactions that may or may not proceed. They contain information including:
\nPSD2 Context: PSD2 requires transparency of charges to the customer.
\nThis endpoint provides the charge that would be applied if the Transaction Request proceeds - and a record of that charge there after.
\nThe customer can proceed with the Transaction by answering the security challenge.
Authentication is Mandatory
\nURL Parameters:
\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nBANK_ID: gh.29.uk
\nTRANSACTION_REQUEST_ID: 8138a7e4-6d02-40e3-a129-0b2bf89de9f1
\nVIEW_ID: owner
\nJSON response body fields:
\n\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n\namount: 10.12
\nbank_code: CGHZ
\nbank_id: gh.29.uk
\n\n\n\n\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\n\ncurrency: EUR
\ndate_of_birth: 2018-03-09
\n\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\n\n\nfrom:
\nfuture_date: 20200127
\niban: DE91 1000 0000 0123 4567 89
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\ninstructedAmount: 100
\n\nlegal_name: Eveline Tripman
\nmessage: 123456
\nmobile_phone_number: +49 30 901820
\nname: ACCOUNT_MANAGEMENT_FEE
\n\n\notherAccountRoutingAddress: otherAccountRoutingAddress
\notherAccountRoutingScheme: otherAccountRoutingScheme
\notherAccountSecondaryRoutingAddress: otherAccountSecondaryRoutingAddress
\notherAccountSecondaryRoutingScheme: otherAccountSecondaryRoutingScheme
\notherBankRoutingAddress: otherBankRoutingAddress
\notherBankRoutingScheme: otherBankRoutingScheme
\notherBranchRoutingAddress: otherBranchRoutingAddress
\notherBranchRoutingScheme: otherBranchRoutingScheme
\nstart_date: 2020-01-27
\n\n\nto:
\n\n\ntype:
\nvalue: 5987953
\n\n\n\n\nto_simple: to_simple
\n\n\n\n","description_markdown":"Returns transaction request for transaction specified by TRANSACTION_REQUEST_ID and for account specified by ACCOUNT_ID at bank specified by BANK_ID.\n\nThe VIEW_ID specified must be 'owner' and the user must have access to this view.\n\nVersion 2.0.0 now returns charge information.\n\nTransaction Requests serve to initiate transactions that may or may not proceed. They contain information including:\n\n* Transaction Request Id\n* Type\n* Status (INITIATED, COMPLETED)\n* Challenge (in order to confirm the request)\n* From Bank / Account\n* Details including Currency, Value, Description and other initiation information specific to each type. (Could potentialy include a list of future transactions.)\n* Related Transactions\n\nPSD2 Context: PSD2 requires transparency of charges to the customer.\nThis endpoint provides the charge that would be applied if the Transaction Request proceeds - and a record of that charge there after.\nThe customer can proceed with the Transaction by answering the security challenge.\n\n \n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[TRANSACTION_REQUEST_ID](/glossary#): 8138a7e4-6d02-40e3-a129-0b2bf89de9f1\n\n\n\n[VIEW_ID](/glossary#this_view_id): owner\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account**](/glossary#Account): \n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**allowed_attempts**](/glossary#allowed_attempts): 5\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**bank_code**](/glossary#bank_code): CGHZ\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**branch_number**](/glossary#branch_number): \n\n\n\n[**challenge**](/glossary#challenge): \n\n\n\n[**challenge_type**](/glossary#challenge_type): \n\n\n\n[**charge**](/glossary#charge): \n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**creditorAccount**](/glossary#creditoraccount): \n\n\n\n[**creditorName**](/glossary#creditorname): \n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**date_of_birth**](/glossary#): 2018-03-09\n\n\n\n[**debtorAccount**](/glossary#debtoraccount): \n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**details**](/glossary#details): \n\n\n\n[**end_date**](/glossary#end_date): \n\n\n\n[**from**](/glossary#from): \n\n\n\n[**future_date**](/glossary#future_date): 20200127\n\n\n\n[**iban**](/glossary#): DE91 1000 0000 0123 4567 89\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**instructedAmount**](/glossary#instructedamount): 100\n\n\n\n[**kyc_document**](/glossary#kyc_document): \n\n\n\n[**legal_name**](/glossary#): Eveline Tripman\n\n\n\n[**message**](/glossary#message): 123456\n\n\n\n[**mobile_phone_number**](/glossary#mobile_phone_number): +49 30 901820\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**nickname**](/glossary#nickname): \n\n\n\n[**number**](/glossary#number): \n\n\n\n[**otherAccountRoutingAddress**](/glossary#): otherAccountRoutingAddress\n\n\n\n[**otherAccountRoutingScheme**](/glossary#): otherAccountRoutingScheme\n\n\n\n[**otherAccountSecondaryRoutingAddress**](/glossary#): otherAccountSecondaryRoutingAddress\n\n\n\n[**otherAccountSecondaryRoutingScheme**](/glossary#): otherAccountSecondaryRoutingScheme\n\n\n\n[**otherBankRoutingAddress**](/glossary#): otherBankRoutingAddress\n\n\n\n[**otherBankRoutingScheme**](/glossary#): otherBankRoutingScheme\n\n\n\n[**otherBranchRoutingAddress**](/glossary#): otherBranchRoutingAddress\n\n\n\n[**otherBranchRoutingScheme**](/glossary#): otherBranchRoutingScheme\n\n\n\n[**start_date**](/glossary#): 2020-01-27\n\n\n\n[**status**](/glossary#status): \n\n\n\n[**summary**](/glossary#summary): \n\n\n\n[**to**](/glossary#to): \n\n\n\n[**transaction_ids**](/glossary#transaction_ids): \n\n\n\n[**transfer_type**](/glossary#transfer_type): \n\n\n\n[**type**](/glossary#type): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[to_counterparty](/glossary#to_counterparty): \n\n\n\n[to_sandbox_tan](/glossary#to_sandbox_tan): \n\n\n\n[to_sepa](/glossary#to_sepa): \n\n\n\n[to_sepa_credit_transfers](/glossary#to_sepa_credit_transfers): \n\n\n\n[to_simple](/glossary#): to_simple\n\n\n\n[to_transfer_to_account](/glossary#to_transfer_to_account): \n\n\n\n[to_transfer_to_atm](/glossary#to_transfer_to_atm): \n\n\n\n[to_transfer_to_phone](/glossary#to_transfer_to_phone): \n\n\n","success_response_body":{"id":"4050046c-63b3-4868-8a22-14b4181d33a6","type":"SANDBOX_TAN","from":{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"details":{"to_sandbox_tan":{"bank_id":"String","account_id":"String"},"to_sepa":{"iban":"String"},"to_counterparty":{"counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh"},"to_simple":{"otherBankRoutingScheme":"BIC","otherBankRoutingAddress":"GENODEM1GLS","otherBranchRoutingScheme":"BRANCH-CODE","otherBranchRoutingAddress":"DERBY6","otherAccountRoutingScheme":"IBAN","otherAccountRoutingAddress":"DE91 1000 0000 0123 4567 89","otherAccountSecondaryRoutingScheme":"IBAN","otherAccountSecondaryRoutingAddress":"DE91 1000 0000 0123 4567 89"},"to_transfer_to_phone":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"mobile_phone_number":"+44 07972 444 876"}},"to_transfer_to_atm":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"legal_name":"Eveline Tripman","date_of_birth":"20181230","mobile_phone_number":"+44 07972 444 876","kyc_document":{"type":"String","number":"String"}}},"to_transfer_to_account":{"value":{"currency":"EUR","amount":"0"},"description":"String","transfer_type":"String","future_date":"20181230","to":{"name":"String","bank_code":"String","branch_number":"String","account":{"number":"String","iban":"String"}}},"to_sepa_credit_transfers":{"debtorAccount":{"iban":"12345"},"instructedAmount":{"currency":"EUR","amount":"0"},"creditorAccount":{"iban":"54321"},"creditorName":"John Miles"},"value":{"currency":"EUR","amount":"100"},"description":"This an optional field. Maximum length is 2000. It can be any characters here."},"transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"],"status":"COMPLETED","start_date":"1100-01-01T00:00:00Z","end_date":"1100-01-01T00:00:00Z","challenge":{"id":"be1a183d-b301-4b83-b855-5eeffdd3526f","allowed_attempts":3,"challenge_type":"SANDBOX_TAN"},"charge":{"summary":"Rent the flat","value":{"currency":"EUR","amount":"0"}}},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID. ","OBP-20017: Current user does not have access to the view. Please specify a valid value for VIEW_ID.","OBP-60010: Get Transaction Requests Exception. ","OBP-50000: Unknown Error."],"tags":["Transaction-Request","Payment Initiation Service (PIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"type":{"type":"string"},"challenge":{"type":"object","properties":{"challenge_type":{"type":"string"},"allowed_attempts":{"type":"integer"},"id":{"type":"string"}}},"status":{"type":"string"},"end_date":{"type":"string","format":"date-time"},"charge":{"type":"object","properties":{"summary":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"transaction_ids":{"type":"array","items":{"type":"string"}},"from":{"type":"object","properties":{"bank_id":{"type":"string"},"account_id":{"type":"string"}}},"details":{"type":"object","properties":{"description":{"type":"string"},"to_sandbox_tan":{"type":"object","properties":{"account_id":{"type":"string"},"bank_id":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to_transfer_to_phone":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"to":{"type":"object","properties":{"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa":{"type":"object","properties":{"iban":{"type":"string"}}},"to_simple":{"type":"object","properties":{"otherBankRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingAddress":{"type":"string"},"otherBranchRoutingScheme":{"type":"string"},"otherAccountRoutingScheme":{"type":"string"},"otherAccountRoutingAddress":{"type":"string"},"otherBankRoutingScheme":{"type":"string"},"otherBranchRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingScheme":{"type":"string"}}},"to_counterparty":{"type":"object","properties":{"counterparty_id":{"type":"string"}}},"to_transfer_to_account":{"type":"object","properties":{"to":{"type":"object","properties":{"name":{"type":"string"},"account":{"type":"object","properties":{"number":{"type":"string"},"iban":{"type":"string"}}},"bank_code":{"type":"string"},"branch_number":{"type":"string"}}},"transfer_type":{"type":"string"},"description":{"type":"string"},"future_date":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa_credit_transfers":{"type":"object","properties":{"instructedAmount":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"debtorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorName":{"type":"string"}}},"to_transfer_to_atm":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to":{"type":"object","properties":{"date_of_birth":{"type":"string"},"kyc_document":{"type":"object","properties":{"type":{"type":"string"},"number":{"type":"string"}}},"legal_name":{"type":"string"},"mobile_phone_number":{"type":"string"}}}}}}},"start_date":{"type":"string","format":"date-time"},"id":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-requests/TRANSACTION_REQUEST_ID","connector_methods":[]},{"operation_id":"OBPv4.0.0-createTransactionRequestRefund","implemented_by":{"version":"OBPv4.0.0","function":"createTransactionRequestRefund"},"request_verb":"POST","request_url":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/REFUND/transaction-requests","summary":"Create Transaction Request (REFUND)","description":"Either the from
or the to
field must be filled. Those fields refers to the information about the party that will be refunded.
In case the from
object is used, it means that the refund comes from the part that sent you a transaction.
\nIn the from
object, you have two choices :
\n- Use bank_id
and account_id
fields if the other account is registered on the OBP-API
\n- Use the counterparty_id
field in case the counterparty account is out of the OBP-API
In case the to
object is used, it means you send a request to a counterparty to ask for a refund on a previous transaction you sent.
\n(This case is not managed by the OBP-API and require an external adapter)
Initiate a Payment via creating a Transaction Request.
\nIn OBP, a transaction request
may or may not result in a transaction
. However, a transaction
only has one possible state: completed.
A Transaction Request
can have one of several states: INITIATED, NEXT_CHALLENGE_PENDING etc.
Transactions
are modeled on items in a bank statement that represent the movement of money.
Transaction Requests
are requests to move money which may or may not succeed and thus result in a Transaction
.
A Transaction Request
might create a security challenge that needs to be answered before the Transaction Request
proceeds.
\nIn case 1 person needs to answer security challenge we have next flow of state of an transaction request
:
\nINITIATED => COMPLETED
\nIn case n persons needs to answer security challenge we have next flow of state of an transaction request
:
\nINITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED
The security challenge is bound to a user i.e. in case of right answer and the user is different than expected one the challenge will fail.
\nRule for calculating number of security challenges:
\nIf product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges
\n(one for every user that has a View where permission "can_add_transaction_request_to_any_account"=true)
\nIn case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute default value is 1.
Transaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).
\nTransaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response.
\nThis provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.
The payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.
\nIn sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to ACCOUNT. See getTransactionRequestTypesSupportedByBank for all supported types.
\nIn sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.
\nIf a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.
\nYou can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.
\nThe following static FX rates are available in sandbox mode:
\n\nTransaction Requests satisfy PSD2 requirements thus:
\n1) A transaction can be initiated by a third party application.
\n2) The customer is informed of the charge that will incurred.
\n3) The call supports delegated authentication (OAuth)
\nSee this python code for a complete example of this flow.
\nThere is further documentation here
\nAuthentication is Mandatory
\nURL Parameters:
\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nBANK_ID: gh.29.uk
\nREFUND: REFUND
\nVIEW_ID: owner
\nJSON request body fields:
\namount: 10.12
\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\ncurrency: EUR
\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\nreason_code: reason_code
\nrefund: refund
\ntransaction_id: 2fg8a7e4-6d02-40e3-a129-0b2bf89de8ub
\nvalue: 5987953
\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nbank_id: gh.29.uk
\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\nfrom:
\nto:
\nJSON response body fields:
\n\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n\namount: 10.12
\nbank_code: CGHZ
\nbank_id: gh.29.uk
\n\n\nchallenges: challenges
\n\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\n\ncurrency: EUR
\ndate_of_birth: 2018-03-09
\n\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\n\n\nfrom:
\nfuture_date: 20200127
\niban: DE91 1000 0000 0123 4567 89
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\ninstructedAmount: 100
\n\nlegal_name: Eveline Tripman
\nlink:
\nmessage: 123456
\nmobile_phone_number: +49 30 901820
\nname: ACCOUNT_MANAGEMENT_FEE
\n\n\notherAccountRoutingAddress: otherAccountRoutingAddress
\notherAccountRoutingScheme: otherAccountRoutingScheme
\notherAccountSecondaryRoutingAddress: otherAccountSecondaryRoutingAddress
\notherAccountSecondaryRoutingScheme: otherAccountSecondaryRoutingScheme
\notherBankRoutingAddress: otherBankRoutingAddress
\notherBankRoutingScheme: otherBankRoutingScheme
\notherBranchRoutingAddress: otherBranchRoutingAddress
\notherBranchRoutingScheme: otherBranchRoutingScheme
\nstart_date: 2020-01-27
\n\n\nto:
\n\n\ntype:
\nuser_id: 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
\nvalue: 5987953
\n\n\n\n\nto_simple: to_simple
\n\n\n\n","description_markdown":"Either the `from` or the `to` field must be filled. Those fields refers to the information about the party that will be refunded.\n\nIn case the `from` object is used, it means that the refund comes from the part that sent you a transaction.\nIn the `from` object, you have two choices :\n- Use `bank_id` and `account_id` fields if the other account is registered on the OBP-API\n- Use the `counterparty_id` field in case the counterparty account is out of the OBP-API\n\nIn case the `to` object is used, it means you send a request to a counterparty to ask for a refund on a previous transaction you sent.\n(This case is not managed by the OBP-API and require an external adapter)\n\n\nInitiate a Payment via creating a Transaction Request.\n\nIn OBP, a `transaction request` may or may not result in a `transaction`. However, a `transaction` only has one possible state: completed.\n\nA `Transaction Request` can have one of several states: INITIATED, NEXT_CHALLENGE_PENDING etc.\n\n`Transactions` are modeled on items in a bank statement that represent the movement of money.\n\n`Transaction Requests` are requests to move money which may or may not succeed and thus result in a `Transaction`.\n\nA `Transaction Request` might create a security challenge that needs to be answered before the `Transaction Request` proceeds.\nIn case 1 person needs to answer security challenge we have next flow of state of an `transaction request`:\n INITIATED => COMPLETED\nIn case n persons needs to answer security challenge we have next flow of state of an `transaction request`:\n INITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED\n\nThe security challenge is bound to a user i.e. in case of right answer and the user is different than expected one the challenge will fail.\n\nRule for calculating number of security challenges:\nIf product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges\n(one for every user that has a View where permission \"can_add_transaction_request_to_any_account\"=true)\nIn case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute default value is 1.\n\nTransaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).\n\nTransaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response.\nThis provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.\n\nThe payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.\n\nIn sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to ACCOUNT. See getTransactionRequestTypesSupportedByBank for all supported types.\n\nIn sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.\n\nIf a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.\n\nYou can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.\n\nThe following static FX rates are available in sandbox mode:\n\nhttps://apiexplorer-ii-sandbox.openbankproject.com//more?version=OBPv4.0.0&list-all-banks=false&core=&psd2=&obwg=#OBPv2_2_0-getCurrentFxRate\n\n\nTransaction Requests satisfy PSD2 requirements thus:\n\n1) A transaction can be initiated by a third party application.\n\n2) The customer is informed of the charge that will incurred.\n\n3) The call supports delegated authentication (OAuth)\n\nSee [this python code](https://github.com/OpenBankProject/Hello-OBP-DirectLogin-Python/blob/master/hello_payments.py) for a complete example of this flow.\n\nThere is further documentation [here](https://github.com/OpenBankProject/OBP-API/wiki/Transaction-Requests)\n\n\n\n \n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[REFUND](/glossary#): REFUND\n\n\n\n[VIEW_ID](/glossary#this_view_id): owner\n\n\n\n\n\n**JSON request body fields:**\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**reason_code**](/glossary#): reason_code\n\n\n\n[**refund**](/glossary#): refund\n\n\n\n[**transaction_id**](/glossary#): 2fg8a7e4-6d02-40e3-a129-0b2bf89de8ub\n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[account_id](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[bank_id](/glossary#): gh.29.uk\n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[from](/glossary#from): \n\n\n\n[to](/glossary#to): \n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account**](/glossary#Account): \n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**allowed_attempts**](/glossary#allowed_attempts): 5\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**bank_code**](/glossary#bank_code): CGHZ\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**branch_number**](/glossary#branch_number): \n\n\n\n[**challenge_type**](/glossary#challenge_type): \n\n\n\n[**challenges**](/glossary#): challenges\n\n\n\n[**charge**](/glossary#charge): \n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**creditorAccount**](/glossary#creditoraccount): \n\n\n\n[**creditorName**](/glossary#creditorname): \n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**date_of_birth**](/glossary#): 2018-03-09\n\n\n\n[**debtorAccount**](/glossary#debtoraccount): \n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**details**](/glossary#details): \n\n\n\n[**end_date**](/glossary#end_date): \n\n\n\n[**from**](/glossary#from): \n\n\n\n[**future_date**](/glossary#future_date): 20200127\n\n\n\n[**iban**](/glossary#): DE91 1000 0000 0123 4567 89\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**instructedAmount**](/glossary#instructedamount): 100\n\n\n\n[**kyc_document**](/glossary#kyc_document): \n\n\n\n[**legal_name**](/glossary#): Eveline Tripman\n\n\n\n[**link**](/glossary#link): \n\n\n\n[**message**](/glossary#message): 123456\n\n\n\n[**mobile_phone_number**](/glossary#mobile_phone_number): +49 30 901820\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**nickname**](/glossary#nickname): \n\n\n\n[**number**](/glossary#number): \n\n\n\n[**otherAccountRoutingAddress**](/glossary#): otherAccountRoutingAddress\n\n\n\n[**otherAccountRoutingScheme**](/glossary#): otherAccountRoutingScheme\n\n\n\n[**otherAccountSecondaryRoutingAddress**](/glossary#): otherAccountSecondaryRoutingAddress\n\n\n\n[**otherAccountSecondaryRoutingScheme**](/glossary#): otherAccountSecondaryRoutingScheme\n\n\n\n[**otherBankRoutingAddress**](/glossary#): otherBankRoutingAddress\n\n\n\n[**otherBankRoutingScheme**](/glossary#): otherBankRoutingScheme\n\n\n\n[**otherBranchRoutingAddress**](/glossary#): otherBranchRoutingAddress\n\n\n\n[**otherBranchRoutingScheme**](/glossary#): otherBranchRoutingScheme\n\n\n\n[**start_date**](/glossary#): 2020-01-27\n\n\n\n[**status**](/glossary#status): \n\n\n\n[**summary**](/glossary#summary): \n\n\n\n[**to**](/glossary#to): \n\n\n\n[**transaction_ids**](/glossary#transaction_ids): \n\n\n\n[**transfer_type**](/glossary#transfer_type): \n\n\n\n[**type**](/glossary#type): \n\n\n\n[**user_id**](/glossary#): 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1\n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[to_counterparty](/glossary#to_counterparty): \n\n\n\n[to_sandbox_tan](/glossary#to_sandbox_tan): \n\n\n\n[to_sepa](/glossary#to_sepa): \n\n\n\n[to_sepa_credit_transfers](/glossary#to_sepa_credit_transfers): \n\n\n\n[to_simple](/glossary#): to_simple\n\n\n\n[to_transfer_to_account](/glossary#to_transfer_to_account): \n\n\n\n[to_transfer_to_atm](/glossary#to_transfer_to_atm): \n\n\n\n[to_transfer_to_phone](/glossary#to_transfer_to_phone): \n\n\n","example_request_body":{"to":{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0","counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh"},"from":{"counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh"},"value":{"currency":"EUR","amount":"0"},"description":"A refund description. ","refund":{"transaction_id":"2fg8a7e4-6d02-40e3-a129-0b2bf89de8ub","reason_code":"CUST"}},"success_response_body":{"id":"4050046c-63b3-4868-8a22-14b4181d33a6","type":"SANDBOX_TAN","from":{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"details":{"to_sandbox_tan":{"bank_id":"String","account_id":"String"},"to_sepa":{"iban":"String"},"to_counterparty":{"counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh"},"to_simple":{"otherBankRoutingScheme":"BIC","otherBankRoutingAddress":"GENODEM1GLS","otherBranchRoutingScheme":"BRANCH-CODE","otherBranchRoutingAddress":"DERBY6","otherAccountRoutingScheme":"IBAN","otherAccountRoutingAddress":"DE91 1000 0000 0123 4567 89","otherAccountSecondaryRoutingScheme":"IBAN","otherAccountSecondaryRoutingAddress":"DE91 1000 0000 0123 4567 89"},"to_transfer_to_phone":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"mobile_phone_number":"+44 07972 444 876"}},"to_transfer_to_atm":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"legal_name":"Eveline Tripman","date_of_birth":"20181230","mobile_phone_number":"+44 07972 444 876","kyc_document":{"type":"String","number":"String"}}},"to_transfer_to_account":{"value":{"currency":"EUR","amount":"0"},"description":"String","transfer_type":"String","future_date":"20181230","to":{"name":"String","bank_code":"String","branch_number":"String","account":{"number":"String","iban":"String"}}},"to_sepa_credit_transfers":{"debtorAccount":{"iban":"12345"},"instructedAmount":{"currency":"EUR","amount":"0"},"creditorAccount":{"iban":"54321"},"creditorName":"John Miles"},"value":{"currency":"EUR","amount":"100"},"description":"This an optional field. Maximum length is 2000. It can be any characters here."},"transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"],"status":"COMPLETED","start_date":"1100-01-01T00:00:00Z","end_date":"1100-01-01T00:00:00Z","challenges":[{"id":"2fg8a7e4-6d02-40e3-a129-0b2bf89de8ub","user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1","allowed_attempts":3,"challenge_type":"OBP_TRANSACTION_REQUEST_CHALLENGE","link":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/TRANSACTION_REQUEST_TYPE/transaction-requests/TRANSACTION_REQUEST_ID/challenge"}],"charge":{"summary":"Rent the flat","value":{"currency":"EUR","amount":"0"}}},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30111: Invalid Bank Id. The BANK_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-30110: Invalid Account Id. The ACCOUNT_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-10001: Incorrect json format.","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-30003: Account not found. Please specify a valid value for ACCOUNT_ID.","OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID. ","OBP-40002: Insufficient authorisation to create TransactionRequest. The Transaction Request could not be created because the login user doesn't have access to the view of the from account or the consumer doesn't have the access to the view of the from account or the login user does not have the `CanCreateAnyTransactionRequest` role or the view does not have the permission canaddtransactionrequesttoanyaccount.","OBP-40001: Invalid value for TRANSACTION_REQUEST_TYPE","OBP-10001: Incorrect json format.","OBP-10002: Invalid Number. Could not convert value to a number.","OBP-40008: Can't send a payment with a value of 0 or less.","OBP-40003: Transaction Request Currency must be the same as From Account Currency.","OBP-00003: Transaction Requests is disabled in this API instance.","OBP-50000: Unknown Error."],"tags":["Transaction-Request","Payment Initiation Service (PIS)","PSD2"],"typed_request_body":{"type":"object","properties":{"description":{"type":"string"},"to":{"type":"object","properties":{"bank_id":{"type":"string"},"account_id":{"type":"string"},"counterparty_id":{"type":"string"}}},"from":{"type":"object","properties":{"counterparty_id":{"type":"string"}}},"refund":{"type":"object","properties":{"reason_code":{"type":"string"},"transaction_id":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"typed_success_response_body":{"type":"object","properties":{"type":{"type":"string"},"challenges":{"type":"array","items":{"type":"object","properties":{"challenge_type":{"type":"string"},"link":{"type":"string"},"id":{"type":"string"},"allowed_attempts":{"type":"integer"},"user_id":{"type":"string"}}}},"status":{"type":"string"},"end_date":{"type":"string","format":"date-time"},"charge":{"type":"object","properties":{"summary":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"transaction_ids":{"type":"array","items":{"type":"string"}},"from":{"type":"object","properties":{"bank_id":{"type":"string"},"account_id":{"type":"string"}}},"details":{"type":"object","properties":{"description":{"type":"string"},"to_sandbox_tan":{"type":"object","properties":{"account_id":{"type":"string"},"bank_id":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to_transfer_to_phone":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"to":{"type":"object","properties":{"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa":{"type":"object","properties":{"iban":{"type":"string"}}},"to_simple":{"type":"object","properties":{"otherBankRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingAddress":{"type":"string"},"otherBranchRoutingScheme":{"type":"string"},"otherAccountRoutingScheme":{"type":"string"},"otherAccountRoutingAddress":{"type":"string"},"otherBankRoutingScheme":{"type":"string"},"otherBranchRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingScheme":{"type":"string"}}},"to_counterparty":{"type":"object","properties":{"counterparty_id":{"type":"string"}}},"to_transfer_to_account":{"type":"object","properties":{"to":{"type":"object","properties":{"name":{"type":"string"},"account":{"type":"object","properties":{"number":{"type":"string"},"iban":{"type":"string"}}},"bank_code":{"type":"string"},"branch_number":{"type":"string"}}},"transfer_type":{"type":"string"},"description":{"type":"string"},"future_date":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa_credit_transfers":{"type":"object","properties":{"instructedAmount":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"debtorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorName":{"type":"string"}}},"to_transfer_to_atm":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to":{"type":"object","properties":{"date_of_birth":{"type":"string"},"kyc_document":{"type":"object","properties":{"type":{"type":"string"},"number":{"type":"string"}}},"legal_name":{"type":"string"},"mobile_phone_number":{"type":"string"}}}}}}},"start_date":{"type":"string","format":"date-time"},"id":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/REFUND/transaction-requests","connector_methods":[]},{"operation_id":"OBPv5.0.0-createConsentByConsentRequestIdImplicit","implemented_by":{"version":"OBPv5.0.0","function":"createConsentByConsentRequestIdImplicit"},"request_verb":"POST","request_url":"/obp/v5.0.0/consumer/consent-requests/CONSENT_REQUEST_ID/IMPLICIT/consents","summary":"Create Consent By CONSENT_REQUEST_ID (IMPLICIT)","description":"This endpoint continues the process of creating a Consent. It starts the SCA flow which changes the status of the consent from INITIATED to ACCEPTED or REJECTED.
\nPlease note that the Consent cannot elevate the privileges logged in user already have.
Authentication is Mandatory
\nURL Parameters:
\nCONSENT_REQUEST_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nIMPLICIT: IMPLICIT
\nJSON request body fields:
\nJSON response body fields:
\n\njwt:
\n\nconsent_request_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n","description_markdown":"This endpoint continues the process of creating a Consent. It starts the SCA flow which changes the status of the consent from INITIATED to ACCEPTED or REJECTED.\nPlease note that the Consent cannot elevate the privileges logged in user already have. \n\n\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[CONSENT_REQUEST_ID](/glossary#consent_request_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[IMPLICIT](/glossary#): IMPLICIT\n\n\n\n\n\n**JSON request body fields:**\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**consent_id**](/glossary#consent_id): \n\n\n\n[**jwt**](/glossary#jwt): \n\n\n\n[**status**](/glossary#status): \n\n\n\n[consent_request_id](/glossary#consent_request_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n","success_response_body":{"consent_id":"9d429899-24f5-42c8-8565-943ffa6a7945","jwt":"eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOltdLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIyMWUxYzhjYy1mOTE4LTRlYWMtYjhlMy01ZTVlZWM2YjNiNGIiLCJhdWQiOiJlanpuazUwNWQxMzJyeW9tbmhieDFxbXRvaHVyYnNiYjBraWphanNrIiwibmJmIjoxNTUzNTU0ODk5LCJpc3MiOiJodHRwczpcL1wvd3d3Lm9wZW5iYW5rcHJvamVjdC5jb20iLCJleHAiOjE1NTM1NTg0OTksImlhdCI6MTU1MzU1NDg5OSwianRpIjoiMDlmODhkNWYtZWNlNi00Mzk4LThlOTktNjYxMWZhMWNkYmQ1Iiwidmlld3MiOlt7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAxIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifSx7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAyIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifV19.8cc7cBEf2NyQvJoukBCmDLT7LXYcuzTcSYLqSpbxLp4","status":"INITIATED","consent_request_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-10001: Incorrect json format.","OBP-35029: The CONSENT_REQUEST_ID is invalid. ","OBP-35009: Only SMS, EMAIL and IMPLICIT are supported as SCA methods. ","OBP-35013: Consents can only contain Roles that you already have access to.","OBP-35014: Consents can only contain Views that you already have access to.","OBP-30019: Consumer not found. Please specify a valid value for CONSUMER_ID.","OBP-20058: Consumer is disabled.","OBP-00010: Missing props value at this API instance - ","OBP-35010: SMS server is not working or SMS server can not send the message to the phone number:","OBP-50200: Connector cannot return the data we requested.","OBP-50000: Unknown Error."],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"consent_request_id":{"type":"string"},"consent_id":{"type":"string"},"status":{"type":"string"},"jwt":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/consumer/consent-requests/CONSENT_REQUEST_ID/IMPLICIT/consents","connector_methods":[]},{"operation_id":"OBPv5.1.0-revokeConsentAtBank","implemented_by":{"version":"OBPv5.1.0","function":"revokeConsentAtBank"},"request_verb":"DELETE","request_url":"/obp/v5.1.0/banks/BANK_ID/consents/CONSENT_ID","summary":"Revoke Consent at Bank","description":"Revoke Consent specified by CONSENT_ID
\nThere are a few reasons you might need to revoke an application’s access to a user’s account:
\n- The user explicitly wishes to revoke the application’s access
\n- You as the service provider have determined an application is compromised or malicious, and want to disable it
\n- etc.
OBP as a resource server stores access tokens in a database, then it is relatively easy to revoke some token that belongs to a particular user.
\nThe status of the token is changed to "REVOKED" so the next time the revoked client makes a request, their token will fail to validate.
Authentication is Mandatory
\nURL Parameters:
\nBANK_ID: gh.29.uk
\n\nJSON response body fields:
\n\njwt:
\n\n","description_markdown":"Revoke Consent specified by CONSENT_ID\n\nThere are a few reasons you might need to revoke an application’s access to a user’s account:\n - The user explicitly wishes to revoke the application’s access\n - You as the service provider have determined an application is compromised or malicious, and want to disable it\n - etc.\n\nOBP as a resource server stores access tokens in a database, then it is relatively easy to revoke some token that belongs to a particular user.\nThe status of the token is changed to \"REVOKED\" so the next time the revoked client makes a request, their token will fail to validate.\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[CONSENT_ID](/glossary#consent_id): \n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**consent_id**](/glossary#consent_id): \n\n\n\n[**jwt**](/glossary#jwt): \n\n\n\n[**status**](/glossary#status): \n\n\n","success_response_body":{"consent_id":"9d429899-24f5-42c8-8565-943ffa6a7945","jwt":"eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOltdLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIyMWUxYzhjYy1mOTE4LTRlYWMtYjhlMy01ZTVlZWM2YjNiNGIiLCJhdWQiOiJlanpuazUwNWQxMzJyeW9tbmhieDFxbXRvaHVyYnNiYjBraWphanNrIiwibmJmIjoxNTUzNTU0ODk5LCJpc3MiOiJodHRwczpcL1wvd3d3Lm9wZW5iYW5rcHJvamVjdC5jb20iLCJleHAiOjE1NTM1NTg0OTksImlhdCI6MTU1MzU1NDg5OSwianRpIjoiMDlmODhkNWYtZWNlNi00Mzk4LThlOTktNjYxMWZhMWNkYmQ1Iiwidmlld3MiOlt7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAxIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifSx7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAyIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifV19.8cc7cBEf2NyQvJoukBCmDLT7LXYcuzTcSYLqSpbxLp4","status":"REJECTED"},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-50000: Unknown Error.","OBP-20006: User is missing one or more roles: "],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"status":{"type":"string"},"consent_id":{"type":"string"},"jwt":{"type":"string"}}},"roles":[{"role":"CanRevokeConsentAtBank","requires_bank_id":true}],"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/consents/CONSENT_ID","connector_methods":[]},{"operation_id":"OBPv4.0.0-createTransactionRequestSepa","implemented_by":{"version":"OBPv4.0.0","function":"createTransactionRequestSepa"},"request_verb":"POST","request_url":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/SEPA/transaction-requests","summary":"Create Transaction Request (SEPA)","description":"Special instructions for SEPA:
\nWhen using a SEPA Transaction Request, you specify the IBAN of a Counterparty in the body of the request.
\nThe routing details (IBAN) of the counterparty will be forwarded to the core banking system for the transfer.
Initiate a Payment via creating a Transaction Request.
\nIn OBP, a transaction request
may or may not result in a transaction
. However, a transaction
only has one possible state: completed.
A Transaction Request
can have one of several states: INITIATED, NEXT_CHALLENGE_PENDING etc.
Transactions
are modeled on items in a bank statement that represent the movement of money.
Transaction Requests
are requests to move money which may or may not succeed and thus result in a Transaction
.
A Transaction Request
might create a security challenge that needs to be answered before the Transaction Request
proceeds.
\nIn case 1 person needs to answer security challenge we have next flow of state of an transaction request
:
\nINITIATED => COMPLETED
\nIn case n persons needs to answer security challenge we have next flow of state of an transaction request
:
\nINITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED
The security challenge is bound to a user i.e. in case of right answer and the user is different than expected one the challenge will fail.
\nRule for calculating number of security challenges:
\nIf product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges
\n(one for every user that has a View where permission "can_add_transaction_request_to_any_account"=true)
\nIn case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute default value is 1.
Transaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).
\nTransaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response.
\nThis provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.
The payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.
\nIn sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to ACCOUNT. See getTransactionRequestTypesSupportedByBank for all supported types.
\nIn sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.
\nIf a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.
\nYou can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.
\nThe following static FX rates are available in sandbox mode:
\n\nTransaction Requests satisfy PSD2 requirements thus:
\n1) A transaction can be initiated by a third party application.
\n2) The customer is informed of the charge that will incurred.
\n3) The call supports delegated authentication (OAuth)
\nSee this python code for a complete example of this flow.
\nThere is further documentation here
\nAuthentication is Mandatory
\nURL Parameters:
\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nBANK_ID: gh.29.uk
\nSEPA:
\nVIEW_ID: owner
\nJSON request body fields:
\namount: 10.12
\ncharge_policy: SHARED
\ncode: 125
\ncurrency: EUR
\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\niban: DE91 1000 0000 0123 4567 89
\nto:
\nvalue: 5987953
\namount: 10.12
\ncurrency: EUR
\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\n\nfuture_date: 20200127
\n\nJSON response body fields:
\n\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n\namount: 10.12
\nbank_code: CGHZ
\nbank_id: gh.29.uk
\n\n\nchallenges: challenges
\n\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\n\ncurrency: EUR
\ndate_of_birth: 2018-03-09
\n\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\n\n\nfrom:
\nfuture_date: 20200127
\niban: DE91 1000 0000 0123 4567 89
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\ninstructedAmount: 100
\n\nlegal_name: Eveline Tripman
\nlink:
\nmessage: 123456
\nmobile_phone_number: +49 30 901820
\nname: ACCOUNT_MANAGEMENT_FEE
\n\n\notherAccountRoutingAddress: otherAccountRoutingAddress
\notherAccountRoutingScheme: otherAccountRoutingScheme
\notherAccountSecondaryRoutingAddress: otherAccountSecondaryRoutingAddress
\notherAccountSecondaryRoutingScheme: otherAccountSecondaryRoutingScheme
\notherBankRoutingAddress: otherBankRoutingAddress
\notherBankRoutingScheme: otherBankRoutingScheme
\notherBranchRoutingAddress: otherBranchRoutingAddress
\notherBranchRoutingScheme: otherBranchRoutingScheme
\nstart_date: 2020-01-27
\n\n\nto:
\n\n\ntype:
\nuser_id: 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
\nvalue: 5987953
\n\n\n\n\nto_simple: to_simple
\n\n\n\n","description_markdown":"Special instructions for SEPA:\n\nWhen using a SEPA Transaction Request, you specify the IBAN of a Counterparty in the body of the request.\nThe routing details (IBAN) of the counterparty will be forwarded to the core banking system for the transfer.\n\nInitiate a Payment via creating a Transaction Request.\n\nIn OBP, a `transaction request` may or may not result in a `transaction`. However, a `transaction` only has one possible state: completed.\n\nA `Transaction Request` can have one of several states: INITIATED, NEXT_CHALLENGE_PENDING etc.\n\n`Transactions` are modeled on items in a bank statement that represent the movement of money.\n\n`Transaction Requests` are requests to move money which may or may not succeed and thus result in a `Transaction`.\n\nA `Transaction Request` might create a security challenge that needs to be answered before the `Transaction Request` proceeds.\nIn case 1 person needs to answer security challenge we have next flow of state of an `transaction request`:\n INITIATED => COMPLETED\nIn case n persons needs to answer security challenge we have next flow of state of an `transaction request`:\n INITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED\n\nThe security challenge is bound to a user i.e. in case of right answer and the user is different than expected one the challenge will fail.\n\nRule for calculating number of security challenges:\nIf product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges\n(one for every user that has a View where permission \"can_add_transaction_request_to_any_account\"=true)\nIn case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute default value is 1.\n\nTransaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).\n\nTransaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response.\nThis provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.\n\nThe payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.\n\nIn sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to ACCOUNT. See getTransactionRequestTypesSupportedByBank for all supported types.\n\nIn sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.\n\nIf a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.\n\nYou can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.\n\nThe following static FX rates are available in sandbox mode:\n\nhttps://apiexplorer-ii-sandbox.openbankproject.com//more?version=OBPv4.0.0&list-all-banks=false&core=&psd2=&obwg=#OBPv2_2_0-getCurrentFxRate\n\n\nTransaction Requests satisfy PSD2 requirements thus:\n\n1) A transaction can be initiated by a third party application.\n\n2) The customer is informed of the charge that will incurred.\n\n3) The call supports delegated authentication (OAuth)\n\nSee [this python code](https://github.com/OpenBankProject/Hello-OBP-DirectLogin-Python/blob/master/hello_payments.py) for a complete example of this flow.\n\nThere is further documentation [here](https://github.com/OpenBankProject/OBP-API/wiki/Transaction-Requests)\n\n\n\n \n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[SEPA](/glossary#sepa): \n\n\n\n[VIEW_ID](/glossary#this_view_id): owner\n\n\n\n\n\n**JSON request body fields:**\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**charge_policy**](/glossary#): SHARED\n\n\n\n[**code**](/glossary#code): 125\n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**iban**](/glossary#): DE91 1000 0000 0123 4567 89\n\n\n\n[**to**](/glossary#to): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[document_number](/glossary#document_number): \n\n\n\n[future_date](/glossary#future_date): 20200127\n\n\n\n[reasons](/glossary#reasons): \n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account**](/glossary#Account): \n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**allowed_attempts**](/glossary#allowed_attempts): 5\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**bank_code**](/glossary#bank_code): CGHZ\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**branch_number**](/glossary#branch_number): \n\n\n\n[**challenge_type**](/glossary#challenge_type): \n\n\n\n[**challenges**](/glossary#): challenges\n\n\n\n[**charge**](/glossary#charge): \n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**creditorAccount**](/glossary#creditoraccount): \n\n\n\n[**creditorName**](/glossary#creditorname): \n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**date_of_birth**](/glossary#): 2018-03-09\n\n\n\n[**debtorAccount**](/glossary#debtoraccount): \n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**details**](/glossary#details): \n\n\n\n[**end_date**](/glossary#end_date): \n\n\n\n[**from**](/glossary#from): \n\n\n\n[**future_date**](/glossary#future_date): 20200127\n\n\n\n[**iban**](/glossary#): DE91 1000 0000 0123 4567 89\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**instructedAmount**](/glossary#instructedamount): 100\n\n\n\n[**kyc_document**](/glossary#kyc_document): \n\n\n\n[**legal_name**](/glossary#): Eveline Tripman\n\n\n\n[**link**](/glossary#link): \n\n\n\n[**message**](/glossary#message): 123456\n\n\n\n[**mobile_phone_number**](/glossary#mobile_phone_number): +49 30 901820\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**nickname**](/glossary#nickname): \n\n\n\n[**number**](/glossary#number): \n\n\n\n[**otherAccountRoutingAddress**](/glossary#): otherAccountRoutingAddress\n\n\n\n[**otherAccountRoutingScheme**](/glossary#): otherAccountRoutingScheme\n\n\n\n[**otherAccountSecondaryRoutingAddress**](/glossary#): otherAccountSecondaryRoutingAddress\n\n\n\n[**otherAccountSecondaryRoutingScheme**](/glossary#): otherAccountSecondaryRoutingScheme\n\n\n\n[**otherBankRoutingAddress**](/glossary#): otherBankRoutingAddress\n\n\n\n[**otherBankRoutingScheme**](/glossary#): otherBankRoutingScheme\n\n\n\n[**otherBranchRoutingAddress**](/glossary#): otherBranchRoutingAddress\n\n\n\n[**otherBranchRoutingScheme**](/glossary#): otherBranchRoutingScheme\n\n\n\n[**start_date**](/glossary#): 2020-01-27\n\n\n\n[**status**](/glossary#status): \n\n\n\n[**summary**](/glossary#summary): \n\n\n\n[**to**](/glossary#to): \n\n\n\n[**transaction_ids**](/glossary#transaction_ids): \n\n\n\n[**transfer_type**](/glossary#transfer_type): \n\n\n\n[**type**](/glossary#type): \n\n\n\n[**user_id**](/glossary#): 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1\n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[to_counterparty](/glossary#to_counterparty): \n\n\n\n[to_sandbox_tan](/glossary#to_sandbox_tan): \n\n\n\n[to_sepa](/glossary#to_sepa): \n\n\n\n[to_sepa_credit_transfers](/glossary#to_sepa_credit_transfers): \n\n\n\n[to_simple](/glossary#): to_simple\n\n\n\n[to_transfer_to_account](/glossary#to_transfer_to_account): \n\n\n\n[to_transfer_to_atm](/glossary#to_transfer_to_atm): \n\n\n\n[to_transfer_to_phone](/glossary#to_transfer_to_phone): \n\n\n","example_request_body":{"value":{"currency":"EUR","amount":"0"},"to":{"iban":"123"},"description":"This is a SEPA Transaction Request","charge_policy":"SHARED","future_date":"20200127","reasons":[{"code":"410","document_number":"2020/154","amount":"100","currency":"EUR","description":"SEPA payment"}]},"success_response_body":{"id":"4050046c-63b3-4868-8a22-14b4181d33a6","type":"SANDBOX_TAN","from":{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"details":{"to_sandbox_tan":{"bank_id":"String","account_id":"String"},"to_sepa":{"iban":"String"},"to_counterparty":{"counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh"},"to_simple":{"otherBankRoutingScheme":"BIC","otherBankRoutingAddress":"GENODEM1GLS","otherBranchRoutingScheme":"BRANCH-CODE","otherBranchRoutingAddress":"DERBY6","otherAccountRoutingScheme":"IBAN","otherAccountRoutingAddress":"DE91 1000 0000 0123 4567 89","otherAccountSecondaryRoutingScheme":"IBAN","otherAccountSecondaryRoutingAddress":"DE91 1000 0000 0123 4567 89"},"to_transfer_to_phone":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"mobile_phone_number":"+44 07972 444 876"}},"to_transfer_to_atm":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"legal_name":"Eveline Tripman","date_of_birth":"20181230","mobile_phone_number":"+44 07972 444 876","kyc_document":{"type":"String","number":"String"}}},"to_transfer_to_account":{"value":{"currency":"EUR","amount":"0"},"description":"String","transfer_type":"String","future_date":"20181230","to":{"name":"String","bank_code":"String","branch_number":"String","account":{"number":"String","iban":"String"}}},"to_sepa_credit_transfers":{"debtorAccount":{"iban":"12345"},"instructedAmount":{"currency":"EUR","amount":"0"},"creditorAccount":{"iban":"54321"},"creditorName":"John Miles"},"value":{"currency":"EUR","amount":"100"},"description":"This an optional field. Maximum length is 2000. It can be any characters here."},"transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"],"status":"COMPLETED","start_date":"1100-01-01T00:00:00Z","end_date":"1100-01-01T00:00:00Z","challenges":[{"id":"2fg8a7e4-6d02-40e3-a129-0b2bf89de8ub","user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1","allowed_attempts":3,"challenge_type":"OBP_TRANSACTION_REQUEST_CHALLENGE","link":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/TRANSACTION_REQUEST_TYPE/transaction-requests/TRANSACTION_REQUEST_ID/challenge"}],"charge":{"summary":"Rent the flat","value":{"currency":"EUR","amount":"0"}}},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30111: Invalid Bank Id. The BANK_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-30110: Invalid Account Id. The ACCOUNT_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-10001: Incorrect json format.","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-30003: Account not found. Please specify a valid value for ACCOUNT_ID.","OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID. ","OBP-40002: Insufficient authorisation to create TransactionRequest. The Transaction Request could not be created because the login user doesn't have access to the view of the from account or the consumer doesn't have the access to the view of the from account or the login user does not have the `CanCreateAnyTransactionRequest` role or the view does not have the permission canaddtransactionrequesttoanyaccount.","OBP-40001: Invalid value for TRANSACTION_REQUEST_TYPE","OBP-10001: Incorrect json format.","OBP-10002: Invalid Number. Could not convert value to a number.","OBP-40008: Can't send a payment with a value of 0 or less.","OBP-40003: Transaction Request Currency must be the same as From Account Currency.","OBP-00003: Transaction Requests is disabled in this API instance.","OBP-50000: Unknown Error."],"tags":["Transaction-Request","Payment Initiation Service (PIS)","PSD2"],"typed_request_body":{"type":"object","properties":{"future_date":{"type":"string"},"reasons":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"code":{"type":"string"},"amount":{"type":"string"},"document_number":{"type":"string"},"currency":{"type":"string"}}}},"to":{"type":"object","properties":{"iban":{"type":"string"}}},"description":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"charge_policy":{"type":"string"}}},"typed_success_response_body":{"type":"object","properties":{"type":{"type":"string"},"challenges":{"type":"array","items":{"type":"object","properties":{"challenge_type":{"type":"string"},"link":{"type":"string"},"id":{"type":"string"},"allowed_attempts":{"type":"integer"},"user_id":{"type":"string"}}}},"status":{"type":"string"},"end_date":{"type":"string","format":"date-time"},"charge":{"type":"object","properties":{"summary":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"transaction_ids":{"type":"array","items":{"type":"string"}},"from":{"type":"object","properties":{"bank_id":{"type":"string"},"account_id":{"type":"string"}}},"details":{"type":"object","properties":{"description":{"type":"string"},"to_sandbox_tan":{"type":"object","properties":{"account_id":{"type":"string"},"bank_id":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to_transfer_to_phone":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"to":{"type":"object","properties":{"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa":{"type":"object","properties":{"iban":{"type":"string"}}},"to_simple":{"type":"object","properties":{"otherBankRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingAddress":{"type":"string"},"otherBranchRoutingScheme":{"type":"string"},"otherAccountRoutingScheme":{"type":"string"},"otherAccountRoutingAddress":{"type":"string"},"otherBankRoutingScheme":{"type":"string"},"otherBranchRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingScheme":{"type":"string"}}},"to_counterparty":{"type":"object","properties":{"counterparty_id":{"type":"string"}}},"to_transfer_to_account":{"type":"object","properties":{"to":{"type":"object","properties":{"name":{"type":"string"},"account":{"type":"object","properties":{"number":{"type":"string"},"iban":{"type":"string"}}},"bank_code":{"type":"string"},"branch_number":{"type":"string"}}},"transfer_type":{"type":"string"},"description":{"type":"string"},"future_date":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa_credit_transfers":{"type":"object","properties":{"instructedAmount":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"debtorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorName":{"type":"string"}}},"to_transfer_to_atm":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to":{"type":"object","properties":{"date_of_birth":{"type":"string"},"kyc_document":{"type":"object","properties":{"type":{"type":"string"},"number":{"type":"string"}}},"legal_name":{"type":"string"},"mobile_phone_number":{"type":"string"}}}}}}},"start_date":{"type":"string","format":"date-time"},"id":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/SEPA/transaction-requests","connector_methods":[]},{"operation_id":"OBPv3.1.0-revokeConsent","implemented_by":{"version":"OBPv3.1.0","function":"revokeConsent"},"request_verb":"GET","request_url":"/obp/v3.1.0/banks/BANK_ID/my/consents/CONSENT_ID/revoke","summary":"Revoke Consent","description":"Revoke Consent for current user specified by CONSENT_ID
\nThere are a few reasons you might need to revoke an application’s access to a user’s account:
\n- The user explicitly wishes to revoke the application’s access
\n- You as the service provider have determined an application is compromised or malicious, and want to disable it
\n- etc.
Please note that this endpoint only supports the case:: "The user explicitly wishes to revoke the application’s access"
\nOBP as a resource server stores access tokens in a database, then it is relatively easy to revoke some token that belongs to a particular user.
\nThe status of the token is changed to "REVOKED" so the next time the revoked client makes a request, their token will fail to validate.
Authentication is Mandatory
\nURL Parameters:
\nBANK_ID: gh.29.uk
\n\nJSON response body fields:
\n\njwt:
\n\n","description_markdown":"Revoke Consent for current user specified by CONSENT_ID\n\nThere are a few reasons you might need to revoke an application’s access to a user’s account:\n - The user explicitly wishes to revoke the application’s access\n - You as the service provider have determined an application is compromised or malicious, and want to disable it\n - etc.\n\nPlease note that this endpoint only supports the case:: \"The user explicitly wishes to revoke the application’s access\"\n\nOBP as a resource server stores access tokens in a database, then it is relatively easy to revoke some token that belongs to a particular user.\nThe status of the token is changed to \"REVOKED\" so the next time the revoked client makes a request, their token will fail to validate.\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[CONSENT_ID](/glossary#consent_id): \n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**consent_id**](/glossary#consent_id): \n\n\n\n[**jwt**](/glossary#jwt): \n\n\n\n[**status**](/glossary#status): \n\n\n","success_response_body":{"consent_id":"9d429899-24f5-42c8-8565-943ffa6a7945","jwt":"eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOltdLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIyMWUxYzhjYy1mOTE4LTRlYWMtYjhlMy01ZTVlZWM2YjNiNGIiLCJhdWQiOiJlanpuazUwNWQxMzJyeW9tbmhieDFxbXRvaHVyYnNiYjBraWphanNrIiwibmJmIjoxNTUzNTU0ODk5LCJpc3MiOiJodHRwczpcL1wvd3d3Lm9wZW5iYW5rcHJvamVjdC5jb20iLCJleHAiOjE1NTM1NTg0OTksImlhdCI6MTU1MzU1NDg5OSwianRpIjoiMDlmODhkNWYtZWNlNi00Mzk4LThlOTktNjYxMWZhMWNkYmQ1Iiwidmlld3MiOlt7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAxIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifSx7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAyIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifV19.8cc7cBEf2NyQvJoukBCmDLT7LXYcuzTcSYLqSpbxLp4","status":"REJECTED"},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-50000: Unknown Error."],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"status":{"type":"string"},"consent_id":{"type":"string"},"jwt":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/my/consents/CONSENT_ID/revoke","connector_methods":[]},{"operation_id":"OBPv4.0.0-getCoreAccountById","implemented_by":{"version":"OBPv4.0.0","function":"getCoreAccountById"},"request_verb":"GET","request_url":"/obp/v4.0.0/my/banks/BANK_ID/accounts/ACCOUNT_ID/account","summary":"Get Account by Id (Core)","description":"Information returned about the account specified by ACCOUNT_ID:
\nThis call returns the owner view and requires access to that view.
\nAuthentication is Mandatory
\nURL Parameters:
\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nBANK_ID: gh.29.uk
\nJSON response body fields:
\n\n\namount: 10.12
\nbalance: 10
\nbank_id: gh.29.uk
\ncurrency: EUR
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\nlabel: My Account
\n\nproduct_code: 1234BW
\nscheme: scheme value
\n\n","description_markdown":"Information returned about the account specified by ACCOUNT_ID:\n\n* Number - The human readable account number given by the bank that identifies the account.\n* Label - A label given by the owner of the account\n* Owners - Users that own this account\n* Type - The type of account\n* Balance - Currency and Value\n* Account Routings - A list that might include IBAN or national account identifiers\n* Account Rules - A list that might include Overdraft and other bank specific rules\n* Tags - A list of Tags assigned to this account\n\nThis call returns the owner view and requires access to that view.\n\n\n\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account_routings**](/glossary#account_routings): \n\n\n\n[**address**](/glossary#address): \n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**balance**](/glossary#balance): 10\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**label**](/glossary#): My Account\n\n\n\n[**number**](/glossary#number): \n\n\n\n[**product_code**](/glossary#product_code): 1234BW\n\n\n\n[**scheme**](/glossary#scheme): scheme value\n\n\n\n[**views_basic**](/glossary#views_basic): \n\n\n","success_response_body":{"id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0","bank_id":"gh.29.uk","label":"My Account","number":"546387432","product_code":"AC","balance":{"currency":"EUR","amount":"0"},"account_routings":[{"scheme":"AccountNumber","address":"4930396"}],"views_basic":["owner"]},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID. ","OBP-50000: Unknown Error."],"tags":["Account","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"views_basic":{"type":"array","items":{"type":"string"}},"bank_id":{"type":"string"},"label":{"type":"string"},"balance":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"product_code":{"type":"string"},"account_routings":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string"},"address":{"type":"string"}}}},"id":{"type":"string"},"number":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/my/banks/BANK_ID/accounts/ACCOUNT_ID/account","connector_methods":[]},{"operation_id":"OBPv4.0.0-getSettlementAccounts","implemented_by":{"version":"OBPv4.0.0","function":"getSettlementAccounts"},"request_verb":"GET","request_url":"/obp/v4.0.0/banks/BANK_ID/settlement-accounts","summary":"Get Settlement accounts at Bank","description":"Get settlement accounts on this API instance
\nReturns a list of settlement accounts at this Bank
Note: a settlement account is considered as a bank account.
\nSo you can update it and add account attributes to it using the regular account endpoints
Authentication is Mandatory
\nURL Parameters:
\nBANK_ID: gh.29.uk
\nJSON response body fields:
\n\n\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n\n\namount: 10.12
\nbalance: 10
\nbranch_id: DERBY6
\ncurrency: EUR
\nlabel: My Account
\nname: ACCOUNT_MANAGEMENT_FEE
\npayment_system: SEPA
\nproduct_code: 1234BW
\nscheme: scheme value
\n\ntype:
\nvalue: 5987953
\nproduct_instance_code: product_instance_code
\n","description_markdown":"Get settlement accounts on this API instance\nReturns a list of settlement accounts at this Bank\n\nNote: a settlement account is considered as a bank account.\nSo you can update it and add account attributes to it using the regular account endpoints\n\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account_attribute_id**](/glossary#account_attribute_id): \n\n\n\n[**account_attributes**](/glossary#account_attributes): \n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**account_routings**](/glossary#account_routings): \n\n\n\n[**address**](/glossary#address): \n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**balance**](/glossary#balance): 10\n\n\n\n[**branch_id**](/glossary#): DERBY6\n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**label**](/glossary#): My Account\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**payment_system**](/glossary#): SEPA\n\n\n\n[**product_code**](/glossary#product_code): 1234BW\n\n\n\n[**scheme**](/glossary#scheme): scheme value\n\n\n\n[**settlement_accounts**](/glossary#settlement_accounts): \n\n\n\n[**type**](/glossary#type): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[product_instance_code](/glossary#): product_instance_code\n\n\n","success_response_body":{"settlement_accounts":[{"account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0","payment_system":"SEPA","balance":{"currency":"EUR","amount":"0"},"label":"My Account","branch_id":"DERBY6","account_routings":[{"scheme":"AccountNumber","address":"4930396"}],"account_attributes":[{"product_code":"1234BW","account_attribute_id":"613c83ea-80f9-4560-8404-b9cd4ec42a7f","name":"OVERDRAFT_START_DATE","type":"DATE_WITH_DAY","value":"2012-04-23","product_instance_code":"LKJL98769F"}]}]},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-20006: User is missing one or more roles: ","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-50000: Unknown Error."],"tags":["Bank","PSD2"],"typed_success_response_body":{"type":"object","properties":{"settlement_accounts":{"type":"array","items":{"type":"object","properties":{"payment_system":{"type":"string"},"label":{"type":"string"},"balance":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"account_attributes":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"product_code":{"type":"string"},"account_attribute_id":{"type":"string"},"product_instance_code":{"type":"string"},"type":{"type":"string"},"name":{"type":"string"}}}},"account_routings":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string"},"address":{"type":"string"}}}},"branch_id":{"type":"string"},"account_id":{"type":"string"}}}}}},"roles":[{"role":"CanGetSettlementAccountAtOneBank","requires_bank_id":true}],"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/settlement-accounts","connector_methods":[]},{"operation_id":"OBPv4.0.0-createTransactionRequestCard","implemented_by":{"version":"OBPv4.0.0","function":"createTransactionRequestCard"},"request_verb":"POST","request_url":"/obp/v4.0.0/transaction-request-types/CARD/transaction-requests","summary":"Create Transaction Request (CARD)","description":"When using CARD, the payee is set in the request body .
\nMoney goes into the Counterparty in the request body.
\nInitiate a Payment via creating a Transaction Request.
\nIn OBP, a transaction request
may or may not result in a transaction
. However, a transaction
only has one possible state: completed.
A Transaction Request
can have one of several states: INITIATED, NEXT_CHALLENGE_PENDING etc.
Transactions
are modeled on items in a bank statement that represent the movement of money.
Transaction Requests
are requests to move money which may or may not succeed and thus result in a Transaction
.
A Transaction Request
might create a security challenge that needs to be answered before the Transaction Request
proceeds.
\nIn case 1 person needs to answer security challenge we have next flow of state of an transaction request
:
\nINITIATED => COMPLETED
\nIn case n persons needs to answer security challenge we have next flow of state of an transaction request
:
\nINITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED
The security challenge is bound to a user i.e. in case of right answer and the user is different than expected one the challenge will fail.
\nRule for calculating number of security challenges:
\nIf product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges
\n(one for every user that has a View where permission "can_add_transaction_request_to_any_account"=true)
\nIn case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute default value is 1.
Transaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).
\nTransaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response.
\nThis provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.
The payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.
\nIn sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to ACCOUNT. See getTransactionRequestTypesSupportedByBank for all supported types.
\nIn sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.
\nIf a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.
\nYou can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.
\nThe following static FX rates are available in sandbox mode:
\n\nTransaction Requests satisfy PSD2 requirements thus:
\n1) A transaction can be initiated by a third party application.
\n2) The customer is informed of the charge that will incurred.
\n3) The call supports delegated authentication (OAuth)
\nSee this python code for a complete example of this flow.
\nThere is further documentation here
\nAuthentication is Mandatory
\nURL Parameters:
\nCARD: CARD
\nJSON request body fields:
\namount: 10.12
\nbrand: Visa
\ncard: card
\ncard_number: 364435172576215
\ncard_type: Credit
\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\ncurrency: EUR
\ncvv: 123
\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\nexpiry_month: 01
\nexpiry_year: 2023
\nname_on_card: SusanSmith
\nto:
\nvalue: 5987953
\nJSON response body fields:
\n\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n\namount: 10.12
\nbank_code: CGHZ
\nbank_id: gh.29.uk
\n\n\nchallenges: challenges
\n\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\n\ncurrency: EUR
\ndate_of_birth: 2018-03-09
\n\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\n\n\nfrom:
\nfuture_date: 20200127
\niban: DE91 1000 0000 0123 4567 89
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\ninstructedAmount: 100
\n\nlegal_name: Eveline Tripman
\nlink:
\nmessage: 123456
\nmobile_phone_number: +49 30 901820
\nname: ACCOUNT_MANAGEMENT_FEE
\n\n\notherAccountRoutingAddress: otherAccountRoutingAddress
\notherAccountRoutingScheme: otherAccountRoutingScheme
\notherAccountSecondaryRoutingAddress: otherAccountSecondaryRoutingAddress
\notherAccountSecondaryRoutingScheme: otherAccountSecondaryRoutingScheme
\notherBankRoutingAddress: otherBankRoutingAddress
\notherBankRoutingScheme: otherBankRoutingScheme
\notherBranchRoutingAddress: otherBranchRoutingAddress
\notherBranchRoutingScheme: otherBranchRoutingScheme
\nstart_date: 2020-01-27
\n\n\nto:
\n\n\ntype:
\nuser_id: 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
\nvalue: 5987953
\n\n\n\n\nto_simple: to_simple
\n\n\n\n","description_markdown":"When using CARD, the payee is set in the request body .\n\nMoney goes into the Counterparty in the request body.\n\nInitiate a Payment via creating a Transaction Request.\n\nIn OBP, a `transaction request` may or may not result in a `transaction`. However, a `transaction` only has one possible state: completed.\n\nA `Transaction Request` can have one of several states: INITIATED, NEXT_CHALLENGE_PENDING etc.\n\n`Transactions` are modeled on items in a bank statement that represent the movement of money.\n\n`Transaction Requests` are requests to move money which may or may not succeed and thus result in a `Transaction`.\n\nA `Transaction Request` might create a security challenge that needs to be answered before the `Transaction Request` proceeds.\nIn case 1 person needs to answer security challenge we have next flow of state of an `transaction request`:\n INITIATED => COMPLETED\nIn case n persons needs to answer security challenge we have next flow of state of an `transaction request`:\n INITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED\n\nThe security challenge is bound to a user i.e. in case of right answer and the user is different than expected one the challenge will fail.\n\nRule for calculating number of security challenges:\nIf product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges\n(one for every user that has a View where permission \"can_add_transaction_request_to_any_account\"=true)\nIn case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute default value is 1.\n\nTransaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).\n\nTransaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response.\nThis provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.\n\nThe payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.\n\nIn sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to ACCOUNT. See getTransactionRequestTypesSupportedByBank for all supported types.\n\nIn sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.\n\nIf a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.\n\nYou can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.\n\nThe following static FX rates are available in sandbox mode:\n\nhttps://apiexplorer-ii-sandbox.openbankproject.com//more?version=OBPv4.0.0&list-all-banks=false&core=&psd2=&obwg=#OBPv2_2_0-getCurrentFxRate\n\n\nTransaction Requests satisfy PSD2 requirements thus:\n\n1) A transaction can be initiated by a third party application.\n\n2) The customer is informed of the charge that will incurred.\n\n3) The call supports delegated authentication (OAuth)\n\nSee [this python code](https://github.com/OpenBankProject/Hello-OBP-DirectLogin-Python/blob/master/hello_payments.py) for a complete example of this flow.\n\nThere is further documentation [here](https://github.com/OpenBankProject/OBP-API/wiki/Transaction-Requests)\n\n\n\n \n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[CARD](/glossary#): CARD\n\n\n\n\n\n**JSON request body fields:**\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**brand**](/glossary#): Visa\n\n\n\n[**card**](/glossary#): card\n\n\n\n[**card_number**](/glossary#): 364435172576215\n\n\n\n[**card_type**](/glossary#): Credit\n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**cvv**](/glossary#): 123\n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**expiry_month**](/glossary#): 01\n\n\n\n[**expiry_year**](/glossary#): 2023\n\n\n\n[**name_on_card**](/glossary#): SusanSmith\n\n\n\n[**to**](/glossary#to): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account**](/glossary#Account): \n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**allowed_attempts**](/glossary#allowed_attempts): 5\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**bank_code**](/glossary#bank_code): CGHZ\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**branch_number**](/glossary#branch_number): \n\n\n\n[**challenge_type**](/glossary#challenge_type): \n\n\n\n[**challenges**](/glossary#): challenges\n\n\n\n[**charge**](/glossary#charge): \n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**creditorAccount**](/glossary#creditoraccount): \n\n\n\n[**creditorName**](/glossary#creditorname): \n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**date_of_birth**](/glossary#): 2018-03-09\n\n\n\n[**debtorAccount**](/glossary#debtoraccount): \n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**details**](/glossary#details): \n\n\n\n[**end_date**](/glossary#end_date): \n\n\n\n[**from**](/glossary#from): \n\n\n\n[**future_date**](/glossary#future_date): 20200127\n\n\n\n[**iban**](/glossary#): DE91 1000 0000 0123 4567 89\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**instructedAmount**](/glossary#instructedamount): 100\n\n\n\n[**kyc_document**](/glossary#kyc_document): \n\n\n\n[**legal_name**](/glossary#): Eveline Tripman\n\n\n\n[**link**](/glossary#link): \n\n\n\n[**message**](/glossary#message): 123456\n\n\n\n[**mobile_phone_number**](/glossary#mobile_phone_number): +49 30 901820\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**nickname**](/glossary#nickname): \n\n\n\n[**number**](/glossary#number): \n\n\n\n[**otherAccountRoutingAddress**](/glossary#): otherAccountRoutingAddress\n\n\n\n[**otherAccountRoutingScheme**](/glossary#): otherAccountRoutingScheme\n\n\n\n[**otherAccountSecondaryRoutingAddress**](/glossary#): otherAccountSecondaryRoutingAddress\n\n\n\n[**otherAccountSecondaryRoutingScheme**](/glossary#): otherAccountSecondaryRoutingScheme\n\n\n\n[**otherBankRoutingAddress**](/glossary#): otherBankRoutingAddress\n\n\n\n[**otherBankRoutingScheme**](/glossary#): otherBankRoutingScheme\n\n\n\n[**otherBranchRoutingAddress**](/glossary#): otherBranchRoutingAddress\n\n\n\n[**otherBranchRoutingScheme**](/glossary#): otherBranchRoutingScheme\n\n\n\n[**start_date**](/glossary#): 2020-01-27\n\n\n\n[**status**](/glossary#status): \n\n\n\n[**summary**](/glossary#summary): \n\n\n\n[**to**](/glossary#to): \n\n\n\n[**transaction_ids**](/glossary#transaction_ids): \n\n\n\n[**transfer_type**](/glossary#transfer_type): \n\n\n\n[**type**](/glossary#type): \n\n\n\n[**user_id**](/glossary#): 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1\n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[to_counterparty](/glossary#to_counterparty): \n\n\n\n[to_sandbox_tan](/glossary#to_sandbox_tan): \n\n\n\n[to_sepa](/glossary#to_sepa): \n\n\n\n[to_sepa_credit_transfers](/glossary#to_sepa_credit_transfers): \n\n\n\n[to_simple](/glossary#): to_simple\n\n\n\n[to_transfer_to_account](/glossary#to_transfer_to_account): \n\n\n\n[to_transfer_to_atm](/glossary#to_transfer_to_atm): \n\n\n\n[to_transfer_to_phone](/glossary#to_transfer_to_phone): \n\n\n","example_request_body":{"card":{"card_type":"Credit","brand":"Visa","cvv":"123","card_number":"364435172576215","name_on_card":"SusanSmith","expiry_year":"2023","expiry_month":"01"},"to":{"counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh"},"value":{"currency":"EUR","amount":"0"},"description":"A card payment description. "},"success_response_body":{"id":"4050046c-63b3-4868-8a22-14b4181d33a6","type":"SANDBOX_TAN","from":{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"details":{"to_sandbox_tan":{"bank_id":"String","account_id":"String"},"to_sepa":{"iban":"String"},"to_counterparty":{"counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh"},"to_simple":{"otherBankRoutingScheme":"BIC","otherBankRoutingAddress":"GENODEM1GLS","otherBranchRoutingScheme":"BRANCH-CODE","otherBranchRoutingAddress":"DERBY6","otherAccountRoutingScheme":"IBAN","otherAccountRoutingAddress":"DE91 1000 0000 0123 4567 89","otherAccountSecondaryRoutingScheme":"IBAN","otherAccountSecondaryRoutingAddress":"DE91 1000 0000 0123 4567 89"},"to_transfer_to_phone":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"mobile_phone_number":"+44 07972 444 876"}},"to_transfer_to_atm":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"legal_name":"Eveline Tripman","date_of_birth":"20181230","mobile_phone_number":"+44 07972 444 876","kyc_document":{"type":"String","number":"String"}}},"to_transfer_to_account":{"value":{"currency":"EUR","amount":"0"},"description":"String","transfer_type":"String","future_date":"20181230","to":{"name":"String","bank_code":"String","branch_number":"String","account":{"number":"String","iban":"String"}}},"to_sepa_credit_transfers":{"debtorAccount":{"iban":"12345"},"instructedAmount":{"currency":"EUR","amount":"0"},"creditorAccount":{"iban":"54321"},"creditorName":"John Miles"},"value":{"currency":"EUR","amount":"100"},"description":"This an optional field. Maximum length is 2000. It can be any characters here."},"transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"],"status":"COMPLETED","start_date":"1100-01-01T00:00:00Z","end_date":"1100-01-01T00:00:00Z","challenges":[{"id":"2fg8a7e4-6d02-40e3-a129-0b2bf89de8ub","user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1","allowed_attempts":3,"challenge_type":"OBP_TRANSACTION_REQUEST_CHALLENGE","link":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/TRANSACTION_REQUEST_TYPE/transaction-requests/TRANSACTION_REQUEST_ID/challenge"}],"charge":{"summary":"Rent the flat","value":{"currency":"EUR","amount":"0"}}},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30111: Invalid Bank Id. The BANK_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-30110: Invalid Account Id. The ACCOUNT_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-10001: Incorrect json format.","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-30003: Account not found. Please specify a valid value for ACCOUNT_ID.","OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID. ","OBP-40002: Insufficient authorisation to create TransactionRequest. The Transaction Request could not be created because the login user doesn't have access to the view of the from account or the consumer doesn't have the access to the view of the from account or the login user does not have the `CanCreateAnyTransactionRequest` role or the view does not have the permission canaddtransactionrequesttoanyaccount.","OBP-40001: Invalid value for TRANSACTION_REQUEST_TYPE","OBP-10001: Incorrect json format.","OBP-10002: Invalid Number. Could not convert value to a number.","OBP-40008: Can't send a payment with a value of 0 or less.","OBP-40003: Transaction Request Currency must be the same as From Account Currency.","OBP-00003: Transaction Requests is disabled in this API instance.","OBP-50000: Unknown Error."],"tags":["Transaction-Request","Payment Initiation Service (PIS)","PSD2"],"typed_request_body":{"type":"object","properties":{"description":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"card":{"type":"object","properties":{"card_number":{"type":"string"},"cvv":{"type":"string"},"card_type":{"type":"string"},"name_on_card":{"type":"string"},"brand":{"type":"string"},"expiry_month":{"type":"string"},"expiry_year":{"type":"string"}}},"to":{"type":"object","properties":{"counterparty_id":{"type":"string"}}}}},"typed_success_response_body":{"type":"object","properties":{"type":{"type":"string"},"challenges":{"type":"array","items":{"type":"object","properties":{"challenge_type":{"type":"string"},"link":{"type":"string"},"id":{"type":"string"},"allowed_attempts":{"type":"integer"},"user_id":{"type":"string"}}}},"status":{"type":"string"},"end_date":{"type":"string","format":"date-time"},"charge":{"type":"object","properties":{"summary":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"transaction_ids":{"type":"array","items":{"type":"string"}},"from":{"type":"object","properties":{"bank_id":{"type":"string"},"account_id":{"type":"string"}}},"details":{"type":"object","properties":{"description":{"type":"string"},"to_sandbox_tan":{"type":"object","properties":{"account_id":{"type":"string"},"bank_id":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to_transfer_to_phone":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"to":{"type":"object","properties":{"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa":{"type":"object","properties":{"iban":{"type":"string"}}},"to_simple":{"type":"object","properties":{"otherBankRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingAddress":{"type":"string"},"otherBranchRoutingScheme":{"type":"string"},"otherAccountRoutingScheme":{"type":"string"},"otherAccountRoutingAddress":{"type":"string"},"otherBankRoutingScheme":{"type":"string"},"otherBranchRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingScheme":{"type":"string"}}},"to_counterparty":{"type":"object","properties":{"counterparty_id":{"type":"string"}}},"to_transfer_to_account":{"type":"object","properties":{"to":{"type":"object","properties":{"name":{"type":"string"},"account":{"type":"object","properties":{"number":{"type":"string"},"iban":{"type":"string"}}},"bank_code":{"type":"string"},"branch_number":{"type":"string"}}},"transfer_type":{"type":"string"},"description":{"type":"string"},"future_date":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa_credit_transfers":{"type":"object","properties":{"instructedAmount":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"debtorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorName":{"type":"string"}}},"to_transfer_to_atm":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to":{"type":"object","properties":{"date_of_birth":{"type":"string"},"kyc_document":{"type":"object","properties":{"type":{"type":"string"},"number":{"type":"string"}}},"legal_name":{"type":"string"},"mobile_phone_number":{"type":"string"}}}}}}},"start_date":{"type":"string","format":"date-time"},"id":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/transaction-request-types/CARD/transaction-requests","connector_methods":[]},{"operation_id":"OBPv1.4.0-getTransactionRequestTypes","implemented_by":{"version":"OBPv1.4.0","function":"getTransactionRequestTypes"},"request_verb":"GET","request_url":"/obp/v1.4.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types","summary":"Get Transaction Request Types for Account","description":"Returns the Transaction Request Types that the account specified by ACCOUNT_ID and view specified by VIEW_ID has access to.
\nThese are the ways this API Server can create a Transaction via a Transaction Request
\n(as opposed to Transaction Types which include external types too e.g. for Transactions created by core banking etc.)
A Transaction Request Type internally determines:
\nFor instance in a 'SANDBOX_TAN' Transaction Request, for amounts over 1000 currency units, the user must supply a positive integer to complete the Transaction Request and create a Transaction.
\nThis approach aims to provide only one endpoint for initiating transactions, and one that handles challenges, whilst still allowing flexibility with the payload and internal logic.
\nAuthentication is Mandatory
\nURL Parameters:
\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nBANK_ID: gh.29.uk
\nVIEW_ID: owner
\nJSON response body fields:
\namount: 10.12
\n\ncurrency: EUR
\n\n\nvalue: 5987953
\n","description_markdown":"Returns the Transaction Request Types that the account specified by ACCOUNT_ID and view specified by VIEW_ID has access to.\n\nThese are the ways this API Server can create a Transaction via a Transaction Request\n(as opposed to Transaction Types which include external types too e.g. for Transactions created by core banking etc.)\n\n A Transaction Request Type internally determines:\n\n * the required Transaction Request 'body' i.e. fields that define the 'what' and 'to' of a Transaction Request,\n * the type of security challenge that may be be raised before the Transaction Request proceeds, and\n * the threshold of that challenge.\n\n For instance in a 'SANDBOX_TAN' Transaction Request, for amounts over 1000 currency units, the user must supply a positive integer to complete the Transaction Request and create a Transaction.\n\n This approach aims to provide only one endpoint for initiating transactions, and one that handles challenges, whilst still allowing flexibility with the payload and internal logic.\n \n \n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[VIEW_ID](/glossary#this_view_id): owner\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**charge**](/glossary#charge): \n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**summary**](/glossary#summary): \n\n\n\n[**transaction_request_types**](/glossary#transaction_request_types): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n","example_request_body":{"jsonString":"{}"},"success_response_body":{"transaction_request_types":[{"value":"10","charge":{"summary":"The bank fixed charge","value":{"currency":"EUR","amount":"0"}}}]},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-30003: Account not found. Please specify a valid value for ACCOUNT_ID.","Please specify a valid value for CURRENCY of your Bank Account. ","Current user does not have access to the view ","account not found at bank","user does not have access to owner view","OBP-40018: Sorry, Transaction Requests are not enabled in this API instance.","OBP-50000: Unknown Error."],"tags":["Transaction-Request","Payment Initiation Service (PIS)","PSD2"],"typed_request_body":{"type":"object","properties":{"jsonString":{"type":"string"}}},"typed_success_response_body":{"type":"object","properties":{"transaction_request_types":{"type":"array","items":{"type":"object","properties":{"charge":{"type":"object","properties":{"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"summary":{"type":"string"}}},"value":{"type":"string"}}}}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types","connector_methods":[]},{"operation_id":"OBPv4.0.0-getExplictCounterpartiesForAccount","implemented_by":{"version":"OBPv4.0.0","function":"getExplictCounterpartiesForAccount"},"request_verb":"GET","request_url":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/counterparties","summary":"Get Counterparties (Explicit)","description":"Get the Counterparties (Explicit) for the account / view.
\nAuthentication is Mandatory
\nURL Parameters:
\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nBANK_ID: gh.29.uk
\nVIEW_ID: owner
\nJSON response body fields:
\n\n\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\ncurrency: EUR
\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\nis_beneficiary: true
\nkey: CustomerNumber
\nname: ACCOUNT_MANAGEMENT_FEE
\nother_account_routing_address:
\n\nother_account_secondary_routing_address:
\nother_account_secondary_routing_scheme:
\n\n\n\n\n\n\n\nvalue: 5987953
\n","description_markdown":"Get the Counterparties (Explicit) for the account / view.\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[VIEW_ID](/glossary#this_view_id): owner\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**bespoke**](/glossary#bespoke): \n\n\n\n[**counterparties**](/glossary#counterparties): \n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**created_by_user_id**](/glossary#created_by_user_id): \n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**is_beneficiary**](/glossary#): true\n\n\n\n[**key**](/glossary#): CustomerNumber\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**other_account_routing_address**](/glossary#other_account_routing_address): \n\n\n\n[**other_account_routing_scheme**](/glossary#other_account_routing_scheme): \n\n\n\n[**other_account_secondary_routing_address**](/glossary#other_account_secondary_routing_address): \n\n\n\n[**other_account_secondary_routing_scheme**](/glossary#other_account_secondary_routing_scheme): \n\n\n\n[**other_bank_routing_address**](/glossary#other_bank_routing_address): \n\n\n\n[**other_bank_routing_scheme**](/glossary#other_bank_routing_scheme): \n\n\n\n[**other_branch_routing_address**](/glossary#other_branch_routing_address): \n\n\n\n[**other_branch_routing_scheme**](/glossary#other_branch_routing_scheme): \n\n\n\n[**this_account_id**](/glossary#this_account_id): \n\n\n\n[**this_bank_id**](/glossary#this_bank_id): \n\n\n\n[**this_view_id**](/glossary#this_view_id): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n","success_response_body":{"counterparties":[{"name":"CounterpartyName","description":"My landlord","currency":"EUR","created_by_user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1","this_bank_id":"gh.29.uk","this_account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0","this_view_id":"owner","counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh","other_bank_routing_scheme":"OBP","other_bank_routing_address":"gh.29.uk","other_branch_routing_scheme":"OBP","other_branch_routing_address":"12f8a9e6-c2b1-407a-8bd0-421b7119307e","other_account_routing_scheme":"OBP","other_account_routing_address":"36f8a9e6-c2b1-407a-8bd0-421b7119307e","other_account_secondary_routing_scheme":"IBAN","other_account_secondary_routing_address":"DE89370400440532013000","is_beneficiary":true,"bespoke":[{"key":"englishName","value":"english Name"}]}]},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID. ","OBP-20017: Current user does not have access to the view. Please specify a valid value for VIEW_ID.","OBP-30005: View not found for Account. Please specify a valid value for VIEW_ID","OBP-50000: Unknown Error."],"tags":["Counterparty","Payment Initiation Service (PIS)","PSD2","Account"],"typed_success_response_body":{"type":"object","properties":{"counterparties":{"type":"array","items":{"type":"object","properties":{"bespoke":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"key":{"type":"string"}}}},"created_by_user_id":{"type":"string"},"name":{"type":"string"},"this_bank_id":{"type":"string"},"other_bank_routing_scheme":{"type":"string"},"currency":{"type":"string"},"other_account_secondary_routing_address":{"type":"string"},"counterparty_id":{"type":"string"},"description":{"type":"string"},"other_bank_routing_address":{"type":"string"},"other_account_routing_address":{"type":"string"},"other_branch_routing_scheme":{"type":"string"},"this_account_id":{"type":"string"},"other_account_secondary_routing_scheme":{"type":"string"},"is_beneficiary":{"type":"boolean"},"other_account_routing_scheme":{"type":"string"},"other_branch_routing_address":{"type":"string"},"this_view_id":{"type":"string"}}}}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/counterparties","connector_methods":[]},{"operation_id":"OBPv5.0.0-createConsentByConsentRequestIdEmail","implemented_by":{"version":"OBPv5.0.0","function":"createConsentByConsentRequestIdEmail"},"request_verb":"POST","request_url":"/obp/v5.0.0/consumer/consent-requests/CONSENT_REQUEST_ID/EMAIL/consents","summary":"Create Consent By CONSENT_REQUEST_ID (EMAIL)","description":"This endpoint continues the process of creating a Consent. It starts the SCA flow which changes the status of the consent from INITIATED to ACCEPTED or REJECTED.
\nPlease note that the Consent cannot elevate the privileges logged in user already have.
Authentication is Mandatory
\nURL Parameters:
\nCONSENT_REQUEST_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n\nJSON request body fields:
\nJSON response body fields:
\n\njwt:
\n\nconsent_request_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n","description_markdown":"This endpoint continues the process of creating a Consent. It starts the SCA flow which changes the status of the consent from INITIATED to ACCEPTED or REJECTED.\nPlease note that the Consent cannot elevate the privileges logged in user already have.\n\n\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[CONSENT_REQUEST_ID](/glossary#consent_request_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[EMAIL](/glossary#): felixsmith@example.com\n\n\n\n\n\n**JSON request body fields:**\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**consent_id**](/glossary#consent_id): \n\n\n\n[**jwt**](/glossary#jwt): \n\n\n\n[**status**](/glossary#status): \n\n\n\n[consent_request_id](/glossary#consent_request_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n","success_response_body":{"consent_id":"9d429899-24f5-42c8-8565-943ffa6a7945","jwt":"eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOltdLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIyMWUxYzhjYy1mOTE4LTRlYWMtYjhlMy01ZTVlZWM2YjNiNGIiLCJhdWQiOiJlanpuazUwNWQxMzJyeW9tbmhieDFxbXRvaHVyYnNiYjBraWphanNrIiwibmJmIjoxNTUzNTU0ODk5LCJpc3MiOiJodHRwczpcL1wvd3d3Lm9wZW5iYW5rcHJvamVjdC5jb20iLCJleHAiOjE1NTM1NTg0OTksImlhdCI6MTU1MzU1NDg5OSwianRpIjoiMDlmODhkNWYtZWNlNi00Mzk4LThlOTktNjYxMWZhMWNkYmQ1Iiwidmlld3MiOlt7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAxIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifSx7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAyIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifV19.8cc7cBEf2NyQvJoukBCmDLT7LXYcuzTcSYLqSpbxLp4","status":"INITIATED","consent_request_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-10001: Incorrect json format.","OBP-35009: Only SMS, EMAIL and IMPLICIT are supported as SCA methods. ","OBP-35013: Consents can only contain Roles that you already have access to.","OBP-35014: Consents can only contain Views that you already have access to.","OBP-30019: Consumer not found. Please specify a valid value for CONSUMER_ID.","OBP-20058: Consumer is disabled.","OBP-50200: Connector cannot return the data we requested.","OBP-50000: Unknown Error."],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"consent_request_id":{"type":"string"},"consent_id":{"type":"string"},"status":{"type":"string"},"jwt":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/consumer/consent-requests/CONSENT_REQUEST_ID/EMAIL/consents","connector_methods":[]},{"operation_id":"OBPv4.0.0-createTransactionRequestCounterparty","implemented_by":{"version":"OBPv4.0.0","function":"createTransactionRequestCounterparty"},"request_verb":"POST","request_url":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/COUNTERPARTY/transaction-requests","summary":"Create Transaction Request (COUNTERPARTY)","description":"Special instructions for COUNTERPARTY:
\nWhen using a COUNTERPARTY to create a Transaction Request, specificy the counterparty_id in the body of the request.
\nThe routing details of the counterparty will be forwarded for the transfer.
Initiate a Payment via creating a Transaction Request.
\nIn OBP, a transaction request
may or may not result in a transaction
. However, a transaction
only has one possible state: completed.
A Transaction Request
can have one of several states: INITIATED, NEXT_CHALLENGE_PENDING etc.
Transactions
are modeled on items in a bank statement that represent the movement of money.
Transaction Requests
are requests to move money which may or may not succeed and thus result in a Transaction
.
A Transaction Request
might create a security challenge that needs to be answered before the Transaction Request
proceeds.
\nIn case 1 person needs to answer security challenge we have next flow of state of an transaction request
:
\nINITIATED => COMPLETED
\nIn case n persons needs to answer security challenge we have next flow of state of an transaction request
:
\nINITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED
The security challenge is bound to a user i.e. in case of right answer and the user is different than expected one the challenge will fail.
\nRule for calculating number of security challenges:
\nIf product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges
\n(one for every user that has a View where permission "can_add_transaction_request_to_any_account"=true)
\nIn case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute default value is 1.
Transaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).
\nTransaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response.
\nThis provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.
The payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.
\nIn sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to ACCOUNT. See getTransactionRequestTypesSupportedByBank for all supported types.
\nIn sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.
\nIf a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.
\nYou can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.
\nThe following static FX rates are available in sandbox mode:
\n\nTransaction Requests satisfy PSD2 requirements thus:
\n1) A transaction can be initiated by a third party application.
\n2) The customer is informed of the charge that will incurred.
\n3) The call supports delegated authentication (OAuth)
\nSee this python code for a complete example of this flow.
\nThere is further documentation here
\nAuthentication is Mandatory
\nURL Parameters:
\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nBANK_ID: gh.29.uk
\n\nVIEW_ID: owner
\nJSON request body fields:
\namount: 10.12
\ncharge_policy: SHARED
\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\ncurrency: EUR
\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\nto:
\nvalue: 5987953
\nfuture_date: 20200127
\nJSON response body fields:
\n\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n\namount: 10.12
\nbank_code: CGHZ
\nbank_id: gh.29.uk
\n\n\nchallenges: challenges
\n\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\n\ncurrency: EUR
\ndate_of_birth: 2018-03-09
\n\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\n\n\nfrom:
\nfuture_date: 20200127
\niban: DE91 1000 0000 0123 4567 89
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\ninstructedAmount: 100
\n\nlegal_name: Eveline Tripman
\nlink:
\nmessage: 123456
\nmobile_phone_number: +49 30 901820
\nname: ACCOUNT_MANAGEMENT_FEE
\n\n\notherAccountRoutingAddress: otherAccountRoutingAddress
\notherAccountRoutingScheme: otherAccountRoutingScheme
\notherAccountSecondaryRoutingAddress: otherAccountSecondaryRoutingAddress
\notherAccountSecondaryRoutingScheme: otherAccountSecondaryRoutingScheme
\notherBankRoutingAddress: otherBankRoutingAddress
\notherBankRoutingScheme: otherBankRoutingScheme
\notherBranchRoutingAddress: otherBranchRoutingAddress
\notherBranchRoutingScheme: otherBranchRoutingScheme
\nstart_date: 2020-01-27
\n\n\nto:
\n\n\ntype:
\nuser_id: 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
\nvalue: 5987953
\n\n\n\n\nto_simple: to_simple
\n\n\n\n","description_markdown":"Special instructions for COUNTERPARTY:\n\nWhen using a COUNTERPARTY to create a Transaction Request, specificy the counterparty_id in the body of the request.\nThe routing details of the counterparty will be forwarded for the transfer.\n\nInitiate a Payment via creating a Transaction Request.\n\nIn OBP, a `transaction request` may or may not result in a `transaction`. However, a `transaction` only has one possible state: completed.\n\nA `Transaction Request` can have one of several states: INITIATED, NEXT_CHALLENGE_PENDING etc.\n\n`Transactions` are modeled on items in a bank statement that represent the movement of money.\n\n`Transaction Requests` are requests to move money which may or may not succeed and thus result in a `Transaction`.\n\nA `Transaction Request` might create a security challenge that needs to be answered before the `Transaction Request` proceeds.\nIn case 1 person needs to answer security challenge we have next flow of state of an `transaction request`:\n INITIATED => COMPLETED\nIn case n persons needs to answer security challenge we have next flow of state of an `transaction request`:\n INITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED\n\nThe security challenge is bound to a user i.e. in case of right answer and the user is different than expected one the challenge will fail.\n\nRule for calculating number of security challenges:\nIf product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges\n(one for every user that has a View where permission \"can_add_transaction_request_to_any_account\"=true)\nIn case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute default value is 1.\n\nTransaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).\n\nTransaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response.\nThis provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.\n\nThe payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.\n\nIn sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to ACCOUNT. See getTransactionRequestTypesSupportedByBank for all supported types.\n\nIn sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.\n\nIf a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.\n\nYou can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.\n\nThe following static FX rates are available in sandbox mode:\n\nhttps://apiexplorer-ii-sandbox.openbankproject.com//more?version=OBPv4.0.0&list-all-banks=false&core=&psd2=&obwg=#OBPv2_2_0-getCurrentFxRate\n\n\nTransaction Requests satisfy PSD2 requirements thus:\n\n1) A transaction can be initiated by a third party application.\n\n2) The customer is informed of the charge that will incurred.\n\n3) The call supports delegated authentication (OAuth)\n\nSee [this python code](https://github.com/OpenBankProject/Hello-OBP-DirectLogin-Python/blob/master/hello_payments.py) for a complete example of this flow.\n\nThere is further documentation [here](https://github.com/OpenBankProject/OBP-API/wiki/Transaction-Requests)\n\n\n\n \n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[COUNTERPARTY](/glossary#counterparty): \n\n\n\n[VIEW_ID](/glossary#this_view_id): owner\n\n\n\n\n\n**JSON request body fields:**\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**charge_policy**](/glossary#): SHARED\n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**to**](/glossary#to): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[future_date](/glossary#future_date): 20200127\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account**](/glossary#Account): \n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**allowed_attempts**](/glossary#allowed_attempts): 5\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**bank_code**](/glossary#bank_code): CGHZ\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**branch_number**](/glossary#branch_number): \n\n\n\n[**challenge_type**](/glossary#challenge_type): \n\n\n\n[**challenges**](/glossary#): challenges\n\n\n\n[**charge**](/glossary#charge): \n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**creditorAccount**](/glossary#creditoraccount): \n\n\n\n[**creditorName**](/glossary#creditorname): \n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**date_of_birth**](/glossary#): 2018-03-09\n\n\n\n[**debtorAccount**](/glossary#debtoraccount): \n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**details**](/glossary#details): \n\n\n\n[**end_date**](/glossary#end_date): \n\n\n\n[**from**](/glossary#from): \n\n\n\n[**future_date**](/glossary#future_date): 20200127\n\n\n\n[**iban**](/glossary#): DE91 1000 0000 0123 4567 89\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**instructedAmount**](/glossary#instructedamount): 100\n\n\n\n[**kyc_document**](/glossary#kyc_document): \n\n\n\n[**legal_name**](/glossary#): Eveline Tripman\n\n\n\n[**link**](/glossary#link): \n\n\n\n[**message**](/glossary#message): 123456\n\n\n\n[**mobile_phone_number**](/glossary#mobile_phone_number): +49 30 901820\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**nickname**](/glossary#nickname): \n\n\n\n[**number**](/glossary#number): \n\n\n\n[**otherAccountRoutingAddress**](/glossary#): otherAccountRoutingAddress\n\n\n\n[**otherAccountRoutingScheme**](/glossary#): otherAccountRoutingScheme\n\n\n\n[**otherAccountSecondaryRoutingAddress**](/glossary#): otherAccountSecondaryRoutingAddress\n\n\n\n[**otherAccountSecondaryRoutingScheme**](/glossary#): otherAccountSecondaryRoutingScheme\n\n\n\n[**otherBankRoutingAddress**](/glossary#): otherBankRoutingAddress\n\n\n\n[**otherBankRoutingScheme**](/glossary#): otherBankRoutingScheme\n\n\n\n[**otherBranchRoutingAddress**](/glossary#): otherBranchRoutingAddress\n\n\n\n[**otherBranchRoutingScheme**](/glossary#): otherBranchRoutingScheme\n\n\n\n[**start_date**](/glossary#): 2020-01-27\n\n\n\n[**status**](/glossary#status): \n\n\n\n[**summary**](/glossary#summary): \n\n\n\n[**to**](/glossary#to): \n\n\n\n[**transaction_ids**](/glossary#transaction_ids): \n\n\n\n[**transfer_type**](/glossary#transfer_type): \n\n\n\n[**type**](/glossary#type): \n\n\n\n[**user_id**](/glossary#): 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1\n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[to_counterparty](/glossary#to_counterparty): \n\n\n\n[to_sandbox_tan](/glossary#to_sandbox_tan): \n\n\n\n[to_sepa](/glossary#to_sepa): \n\n\n\n[to_sepa_credit_transfers](/glossary#to_sepa_credit_transfers): \n\n\n\n[to_simple](/glossary#): to_simple\n\n\n\n[to_transfer_to_account](/glossary#to_transfer_to_account): \n\n\n\n[to_transfer_to_atm](/glossary#to_transfer_to_atm): \n\n\n\n[to_transfer_to_phone](/glossary#to_transfer_to_phone): \n\n\n","example_request_body":{"to":{"counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh"},"value":{"currency":"EUR","amount":"0"},"description":"A description for the transaction to the counterparty","charge_policy":"SHARED","future_date":"20200127"},"success_response_body":{"id":"4050046c-63b3-4868-8a22-14b4181d33a6","type":"SANDBOX_TAN","from":{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"details":{"to_sandbox_tan":{"bank_id":"String","account_id":"String"},"to_sepa":{"iban":"String"},"to_counterparty":{"counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh"},"to_simple":{"otherBankRoutingScheme":"BIC","otherBankRoutingAddress":"GENODEM1GLS","otherBranchRoutingScheme":"BRANCH-CODE","otherBranchRoutingAddress":"DERBY6","otherAccountRoutingScheme":"IBAN","otherAccountRoutingAddress":"DE91 1000 0000 0123 4567 89","otherAccountSecondaryRoutingScheme":"IBAN","otherAccountSecondaryRoutingAddress":"DE91 1000 0000 0123 4567 89"},"to_transfer_to_phone":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"mobile_phone_number":"+44 07972 444 876"}},"to_transfer_to_atm":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"legal_name":"Eveline Tripman","date_of_birth":"20181230","mobile_phone_number":"+44 07972 444 876","kyc_document":{"type":"String","number":"String"}}},"to_transfer_to_account":{"value":{"currency":"EUR","amount":"0"},"description":"String","transfer_type":"String","future_date":"20181230","to":{"name":"String","bank_code":"String","branch_number":"String","account":{"number":"String","iban":"String"}}},"to_sepa_credit_transfers":{"debtorAccount":{"iban":"12345"},"instructedAmount":{"currency":"EUR","amount":"0"},"creditorAccount":{"iban":"54321"},"creditorName":"John Miles"},"value":{"currency":"EUR","amount":"100"},"description":"This an optional field. Maximum length is 2000. It can be any characters here."},"transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"],"status":"COMPLETED","start_date":"1100-01-01T00:00:00Z","end_date":"1100-01-01T00:00:00Z","challenges":[{"id":"2fg8a7e4-6d02-40e3-a129-0b2bf89de8ub","user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1","allowed_attempts":3,"challenge_type":"OBP_TRANSACTION_REQUEST_CHALLENGE","link":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/TRANSACTION_REQUEST_TYPE/transaction-requests/TRANSACTION_REQUEST_ID/challenge"}],"charge":{"summary":"Rent the flat","value":{"currency":"EUR","amount":"0"}}},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30111: Invalid Bank Id. The BANK_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-30110: Invalid Account Id. The ACCOUNT_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-10001: Incorrect json format.","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-30003: Account not found. Please specify a valid value for ACCOUNT_ID.","OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID. ","OBP-40002: Insufficient authorisation to create TransactionRequest. The Transaction Request could not be created because the login user doesn't have access to the view of the from account or the consumer doesn't have the access to the view of the from account or the login user does not have the `CanCreateAnyTransactionRequest` role or the view does not have the permission canaddtransactionrequesttoanyaccount.","OBP-40001: Invalid value for TRANSACTION_REQUEST_TYPE","OBP-10001: Incorrect json format.","OBP-10002: Invalid Number. Could not convert value to a number.","OBP-40008: Can't send a payment with a value of 0 or less.","OBP-40003: Transaction Request Currency must be the same as From Account Currency.","OBP-00003: Transaction Requests is disabled in this API instance.","OBP-50000: Unknown Error."],"tags":["Transaction-Request","Payment Initiation Service (PIS)","PSD2"],"typed_request_body":{"type":"object","properties":{"description":{"type":"string"},"future_date":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"charge_policy":{"type":"string"},"to":{"type":"object","properties":{"counterparty_id":{"type":"string"}}}}},"typed_success_response_body":{"type":"object","properties":{"type":{"type":"string"},"challenges":{"type":"array","items":{"type":"object","properties":{"challenge_type":{"type":"string"},"link":{"type":"string"},"id":{"type":"string"},"allowed_attempts":{"type":"integer"},"user_id":{"type":"string"}}}},"status":{"type":"string"},"end_date":{"type":"string","format":"date-time"},"charge":{"type":"object","properties":{"summary":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"transaction_ids":{"type":"array","items":{"type":"string"}},"from":{"type":"object","properties":{"bank_id":{"type":"string"},"account_id":{"type":"string"}}},"details":{"type":"object","properties":{"description":{"type":"string"},"to_sandbox_tan":{"type":"object","properties":{"account_id":{"type":"string"},"bank_id":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to_transfer_to_phone":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"to":{"type":"object","properties":{"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa":{"type":"object","properties":{"iban":{"type":"string"}}},"to_simple":{"type":"object","properties":{"otherBankRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingAddress":{"type":"string"},"otherBranchRoutingScheme":{"type":"string"},"otherAccountRoutingScheme":{"type":"string"},"otherAccountRoutingAddress":{"type":"string"},"otherBankRoutingScheme":{"type":"string"},"otherBranchRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingScheme":{"type":"string"}}},"to_counterparty":{"type":"object","properties":{"counterparty_id":{"type":"string"}}},"to_transfer_to_account":{"type":"object","properties":{"to":{"type":"object","properties":{"name":{"type":"string"},"account":{"type":"object","properties":{"number":{"type":"string"},"iban":{"type":"string"}}},"bank_code":{"type":"string"},"branch_number":{"type":"string"}}},"transfer_type":{"type":"string"},"description":{"type":"string"},"future_date":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa_credit_transfers":{"type":"object","properties":{"instructedAmount":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"debtorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorName":{"type":"string"}}},"to_transfer_to_atm":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to":{"type":"object","properties":{"date_of_birth":{"type":"string"},"kyc_document":{"type":"object","properties":{"type":{"type":"string"},"number":{"type":"string"}}},"legal_name":{"type":"string"},"mobile_phone_number":{"type":"string"}}}}}}},"start_date":{"type":"string","format":"date-time"},"id":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/COUNTERPARTY/transaction-requests","connector_methods":[]},{"operation_id":"OBPv3.1.0-checkFundsAvailable","implemented_by":{"version":"OBPv3.1.0","function":"checkFundsAvailable"},"request_verb":"GET","request_url":"/obp/v3.1.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/funds-available","summary":"Check Available Funds","description":"Check Available Funds
\nMandatory URL parameters:
Authentication is Mandatory
\nURL Parameters:
\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nBANK_ID: gh.29.uk
\nVIEW_ID: owner
\nJSON response body fields:
\n\n\ndate: 2020-01-27
\n","description_markdown":"Check Available Funds\nMandatory URL parameters:\n\n* amount=NUMBER\n* currency=STRING\n\n \n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[VIEW_ID](/glossary#this_view_id): owner\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**answer**](/glossary#answer): \n\n\n\n[**available_funds_request_id**](/glossary#available_funds_request_id): \n\n\n\n[**date**](/glossary#): 2020-01-27\n\n\n","success_response_body":{"answer":"yes","date":"2024-03-26T11:02:48Z","available_funds_request_id":"c4ykz59svsr9b7fmdxk8ezs7"},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID. ","OBP-20054: Invalid amount. Please specify a valid value for amount.","OBP-10003: Invalid Currency Value. It should be three letters ISO Currency Code. ","OBP-50000: Unknown Error."],"tags":["Account","Confirmation of Funds Service (PIIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"date":{"type":"string","format":"date-time"},"available_funds_request_id":{"type":"string"},"answer":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/funds-available","connector_methods":[]},{"operation_id":"OBPv4.0.0-createTransactionRequestAccountOtp","implemented_by":{"version":"OBPv4.0.0","function":"createTransactionRequestAccountOtp"},"request_verb":"POST","request_url":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/ACCOUNT_OTP/transaction-requests","summary":"Create Transaction Request (ACCOUNT_OTP)","description":"When using ACCOUNT, the payee is set in the request body.
\nMoney goes into the BANK_ID and ACCOUNT_ID specified in the request body.
\nInitiate a Payment via creating a Transaction Request.
\nIn OBP, a transaction request
may or may not result in a transaction
. However, a transaction
only has one possible state: completed.
A Transaction Request
can have one of several states: INITIATED, NEXT_CHALLENGE_PENDING etc.
Transactions
are modeled on items in a bank statement that represent the movement of money.
Transaction Requests
are requests to move money which may or may not succeed and thus result in a Transaction
.
A Transaction Request
might create a security challenge that needs to be answered before the Transaction Request
proceeds.
\nIn case 1 person needs to answer security challenge we have next flow of state of an transaction request
:
\nINITIATED => COMPLETED
\nIn case n persons needs to answer security challenge we have next flow of state of an transaction request
:
\nINITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED
The security challenge is bound to a user i.e. in case of right answer and the user is different than expected one the challenge will fail.
\nRule for calculating number of security challenges:
\nIf product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges
\n(one for every user that has a View where permission "can_add_transaction_request_to_any_account"=true)
\nIn case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute default value is 1.
Transaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).
\nTransaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response.
\nThis provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.
The payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.
\nIn sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to ACCOUNT. See getTransactionRequestTypesSupportedByBank for all supported types.
\nIn sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.
\nIf a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.
\nYou can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.
\nThe following static FX rates are available in sandbox mode:
\n\nTransaction Requests satisfy PSD2 requirements thus:
\n1) A transaction can be initiated by a third party application.
\n2) The customer is informed of the charge that will incurred.
\n3) The call supports delegated authentication (OAuth)
\nSee this python code for a complete example of this flow.
\nThere is further documentation here
\nAuthentication is Mandatory
\nURL Parameters:
\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n\nBANK_ID: gh.29.uk
\nVIEW_ID: owner
\nJSON request body fields:
\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\namount: 10.12
\nbank_id: gh.29.uk
\ncurrency: EUR
\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\nto:
\nvalue: 5987953
\nJSON response body fields:
\n\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n\namount: 10.12
\nbank_code: CGHZ
\nbank_id: gh.29.uk
\n\n\nchallenges: challenges
\n\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\n\ncurrency: EUR
\ndate_of_birth: 2018-03-09
\n\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\n\n\nfrom:
\nfuture_date: 20200127
\niban: DE91 1000 0000 0123 4567 89
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\ninstructedAmount: 100
\n\nlegal_name: Eveline Tripman
\nlink:
\nmessage: 123456
\nmobile_phone_number: +49 30 901820
\nname: ACCOUNT_MANAGEMENT_FEE
\n\n\notherAccountRoutingAddress: otherAccountRoutingAddress
\notherAccountRoutingScheme: otherAccountRoutingScheme
\notherAccountSecondaryRoutingAddress: otherAccountSecondaryRoutingAddress
\notherAccountSecondaryRoutingScheme: otherAccountSecondaryRoutingScheme
\notherBankRoutingAddress: otherBankRoutingAddress
\notherBankRoutingScheme: otherBankRoutingScheme
\notherBranchRoutingAddress: otherBranchRoutingAddress
\notherBranchRoutingScheme: otherBranchRoutingScheme
\nstart_date: 2020-01-27
\n\n\nto:
\n\n\ntype:
\nuser_id: 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
\nvalue: 5987953
\n\n\n\n\nto_simple: to_simple
\n\n\n\n","description_markdown":"When using ACCOUNT, the payee is set in the request body.\n\nMoney goes into the BANK_ID and ACCOUNT_ID specified in the request body.\n\nInitiate a Payment via creating a Transaction Request.\n\nIn OBP, a `transaction request` may or may not result in a `transaction`. However, a `transaction` only has one possible state: completed.\n\nA `Transaction Request` can have one of several states: INITIATED, NEXT_CHALLENGE_PENDING etc.\n\n`Transactions` are modeled on items in a bank statement that represent the movement of money.\n\n`Transaction Requests` are requests to move money which may or may not succeed and thus result in a `Transaction`.\n\nA `Transaction Request` might create a security challenge that needs to be answered before the `Transaction Request` proceeds.\nIn case 1 person needs to answer security challenge we have next flow of state of an `transaction request`:\n INITIATED => COMPLETED\nIn case n persons needs to answer security challenge we have next flow of state of an `transaction request`:\n INITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED\n\nThe security challenge is bound to a user i.e. in case of right answer and the user is different than expected one the challenge will fail.\n\nRule for calculating number of security challenges:\nIf product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges\n(one for every user that has a View where permission \"can_add_transaction_request_to_any_account\"=true)\nIn case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute default value is 1.\n\nTransaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).\n\nTransaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response.\nThis provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.\n\nThe payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.\n\nIn sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to ACCOUNT. See getTransactionRequestTypesSupportedByBank for all supported types.\n\nIn sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.\n\nIf a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.\n\nYou can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.\n\nThe following static FX rates are available in sandbox mode:\n\nhttps://apiexplorer-ii-sandbox.openbankproject.com//more?version=OBPv4.0.0&list-all-banks=false&core=&psd2=&obwg=#OBPv2_2_0-getCurrentFxRate\n\n\nTransaction Requests satisfy PSD2 requirements thus:\n\n1) A transaction can be initiated by a third party application.\n\n2) The customer is informed of the charge that will incurred.\n\n3) The call supports delegated authentication (OAuth)\n\nSee [this python code](https://github.com/OpenBankProject/Hello-OBP-DirectLogin-Python/blob/master/hello_payments.py) for a complete example of this flow.\n\nThere is further documentation [here](https://github.com/OpenBankProject/OBP-API/wiki/Transaction-Requests)\n\n\n\n \n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[ACCOUNT_OTP](/glossary#account_otp): \n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[VIEW_ID](/glossary#this_view_id): owner\n\n\n\n\n\n**JSON request body fields:**\n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**to**](/glossary#to): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account**](/glossary#Account): \n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**allowed_attempts**](/glossary#allowed_attempts): 5\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**bank_code**](/glossary#bank_code): CGHZ\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**branch_number**](/glossary#branch_number): \n\n\n\n[**challenge_type**](/glossary#challenge_type): \n\n\n\n[**challenges**](/glossary#): challenges\n\n\n\n[**charge**](/glossary#charge): \n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**creditorAccount**](/glossary#creditoraccount): \n\n\n\n[**creditorName**](/glossary#creditorname): \n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**date_of_birth**](/glossary#): 2018-03-09\n\n\n\n[**debtorAccount**](/glossary#debtoraccount): \n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**details**](/glossary#details): \n\n\n\n[**end_date**](/glossary#end_date): \n\n\n\n[**from**](/glossary#from): \n\n\n\n[**future_date**](/glossary#future_date): 20200127\n\n\n\n[**iban**](/glossary#): DE91 1000 0000 0123 4567 89\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**instructedAmount**](/glossary#instructedamount): 100\n\n\n\n[**kyc_document**](/glossary#kyc_document): \n\n\n\n[**legal_name**](/glossary#): Eveline Tripman\n\n\n\n[**link**](/glossary#link): \n\n\n\n[**message**](/glossary#message): 123456\n\n\n\n[**mobile_phone_number**](/glossary#mobile_phone_number): +49 30 901820\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**nickname**](/glossary#nickname): \n\n\n\n[**number**](/glossary#number): \n\n\n\n[**otherAccountRoutingAddress**](/glossary#): otherAccountRoutingAddress\n\n\n\n[**otherAccountRoutingScheme**](/glossary#): otherAccountRoutingScheme\n\n\n\n[**otherAccountSecondaryRoutingAddress**](/glossary#): otherAccountSecondaryRoutingAddress\n\n\n\n[**otherAccountSecondaryRoutingScheme**](/glossary#): otherAccountSecondaryRoutingScheme\n\n\n\n[**otherBankRoutingAddress**](/glossary#): otherBankRoutingAddress\n\n\n\n[**otherBankRoutingScheme**](/glossary#): otherBankRoutingScheme\n\n\n\n[**otherBranchRoutingAddress**](/glossary#): otherBranchRoutingAddress\n\n\n\n[**otherBranchRoutingScheme**](/glossary#): otherBranchRoutingScheme\n\n\n\n[**start_date**](/glossary#): 2020-01-27\n\n\n\n[**status**](/glossary#status): \n\n\n\n[**summary**](/glossary#summary): \n\n\n\n[**to**](/glossary#to): \n\n\n\n[**transaction_ids**](/glossary#transaction_ids): \n\n\n\n[**transfer_type**](/glossary#transfer_type): \n\n\n\n[**type**](/glossary#type): \n\n\n\n[**user_id**](/glossary#): 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1\n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[to_counterparty](/glossary#to_counterparty): \n\n\n\n[to_sandbox_tan](/glossary#to_sandbox_tan): \n\n\n\n[to_sepa](/glossary#to_sepa): \n\n\n\n[to_sepa_credit_transfers](/glossary#to_sepa_credit_transfers): \n\n\n\n[to_simple](/glossary#): to_simple\n\n\n\n[to_transfer_to_account](/glossary#to_transfer_to_account): \n\n\n\n[to_transfer_to_atm](/glossary#to_transfer_to_atm): \n\n\n\n[to_transfer_to_phone](/glossary#to_transfer_to_phone): \n\n\n","example_request_body":{"to":{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"value":{"currency":"EUR","amount":"0"},"description":"this is for work"},"success_response_body":{"id":"4050046c-63b3-4868-8a22-14b4181d33a6","type":"SANDBOX_TAN","from":{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"details":{"to_sandbox_tan":{"bank_id":"String","account_id":"String"},"to_sepa":{"iban":"String"},"to_counterparty":{"counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh"},"to_simple":{"otherBankRoutingScheme":"BIC","otherBankRoutingAddress":"GENODEM1GLS","otherBranchRoutingScheme":"BRANCH-CODE","otherBranchRoutingAddress":"DERBY6","otherAccountRoutingScheme":"IBAN","otherAccountRoutingAddress":"DE91 1000 0000 0123 4567 89","otherAccountSecondaryRoutingScheme":"IBAN","otherAccountSecondaryRoutingAddress":"DE91 1000 0000 0123 4567 89"},"to_transfer_to_phone":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"mobile_phone_number":"+44 07972 444 876"}},"to_transfer_to_atm":{"value":{"currency":"EUR","amount":"0"},"description":"String","message":"String","from":{"mobile_phone_number":"+44 07972 444 876","nickname":"String"},"to":{"legal_name":"Eveline Tripman","date_of_birth":"20181230","mobile_phone_number":"+44 07972 444 876","kyc_document":{"type":"String","number":"String"}}},"to_transfer_to_account":{"value":{"currency":"EUR","amount":"0"},"description":"String","transfer_type":"String","future_date":"20181230","to":{"name":"String","bank_code":"String","branch_number":"String","account":{"number":"String","iban":"String"}}},"to_sepa_credit_transfers":{"debtorAccount":{"iban":"12345"},"instructedAmount":{"currency":"EUR","amount":"0"},"creditorAccount":{"iban":"54321"},"creditorName":"John Miles"},"value":{"currency":"EUR","amount":"100"},"description":"This an optional field. Maximum length is 2000. It can be any characters here."},"transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"],"status":"COMPLETED","start_date":"1100-01-01T00:00:00Z","end_date":"1100-01-01T00:00:00Z","challenges":[{"id":"2fg8a7e4-6d02-40e3-a129-0b2bf89de8ub","user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1","allowed_attempts":3,"challenge_type":"OBP_TRANSACTION_REQUEST_CHALLENGE","link":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/TRANSACTION_REQUEST_TYPE/transaction-requests/TRANSACTION_REQUEST_ID/challenge"}],"charge":{"summary":"Rent the flat","value":{"currency":"EUR","amount":"0"}}},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30111: Invalid Bank Id. The BANK_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-30110: Invalid Account Id. The ACCOUNT_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.","OBP-10001: Incorrect json format.","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-30003: Account not found. Please specify a valid value for ACCOUNT_ID.","OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID. ","OBP-40002: Insufficient authorisation to create TransactionRequest. The Transaction Request could not be created because the login user doesn't have access to the view of the from account or the consumer doesn't have the access to the view of the from account or the login user does not have the `CanCreateAnyTransactionRequest` role or the view does not have the permission canaddtransactionrequesttoanyaccount.","OBP-40001: Invalid value for TRANSACTION_REQUEST_TYPE","OBP-10001: Incorrect json format.","OBP-10002: Invalid Number. Could not convert value to a number.","OBP-40008: Can't send a payment with a value of 0 or less.","OBP-40003: Transaction Request Currency must be the same as From Account Currency.","OBP-00003: Transaction Requests is disabled in this API instance.","OBP-50000: Unknown Error."],"tags":["Transaction-Request","Payment Initiation Service (PIS)","PSD2"],"typed_request_body":{"type":"object","properties":{"to":{"type":"object","properties":{"bank_id":{"type":"string"},"account_id":{"type":"string"}}},"description":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"typed_success_response_body":{"type":"object","properties":{"type":{"type":"string"},"challenges":{"type":"array","items":{"type":"object","properties":{"challenge_type":{"type":"string"},"link":{"type":"string"},"id":{"type":"string"},"allowed_attempts":{"type":"integer"},"user_id":{"type":"string"}}}},"status":{"type":"string"},"end_date":{"type":"string","format":"date-time"},"charge":{"type":"object","properties":{"summary":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"transaction_ids":{"type":"array","items":{"type":"string"}},"from":{"type":"object","properties":{"bank_id":{"type":"string"},"account_id":{"type":"string"}}},"details":{"type":"object","properties":{"description":{"type":"string"},"to_sandbox_tan":{"type":"object","properties":{"account_id":{"type":"string"},"bank_id":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to_transfer_to_phone":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"to":{"type":"object","properties":{"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa":{"type":"object","properties":{"iban":{"type":"string"}}},"to_simple":{"type":"object","properties":{"otherBankRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingAddress":{"type":"string"},"otherBranchRoutingScheme":{"type":"string"},"otherAccountRoutingScheme":{"type":"string"},"otherAccountRoutingAddress":{"type":"string"},"otherBankRoutingScheme":{"type":"string"},"otherBranchRoutingAddress":{"type":"string"},"otherAccountSecondaryRoutingScheme":{"type":"string"}}},"to_counterparty":{"type":"object","properties":{"counterparty_id":{"type":"string"}}},"to_transfer_to_account":{"type":"object","properties":{"to":{"type":"object","properties":{"name":{"type":"string"},"account":{"type":"object","properties":{"number":{"type":"string"},"iban":{"type":"string"}}},"bank_code":{"type":"string"},"branch_number":{"type":"string"}}},"transfer_type":{"type":"string"},"description":{"type":"string"},"future_date":{"type":"string"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"to_sepa_credit_transfers":{"type":"object","properties":{"instructedAmount":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"debtorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorAccount":{"type":"object","properties":{"iban":{"type":"string"}}},"creditorName":{"type":"string"}}},"to_transfer_to_atm":{"type":"object","properties":{"description":{"type":"string"},"message":{"type":"string"},"from":{"type":"object","properties":{"nickname":{"type":"string"},"mobile_phone_number":{"type":"string"}}},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"to":{"type":"object","properties":{"date_of_birth":{"type":"string"},"kyc_document":{"type":"object","properties":{"type":{"type":"string"},"number":{"type":"string"}}},"legal_name":{"type":"string"},"mobile_phone_number":{"type":"string"}}}}}}},"start_date":{"type":"string","format":"date-time"},"id":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/ACCOUNT_OTP/transaction-requests","connector_methods":[]},{"operation_id":"OBPv3.1.0-createConsentImplicit","implemented_by":{"version":"OBPv3.1.0","function":"createConsentImplicit"},"request_verb":"POST","request_url":"/obp/v3.1.0/banks/BANK_ID/my/consents/IMPLICIT","summary":"Create Consent (IMPLICIT)","description":"This endpoint starts the process of creating a Consent.
\nThe Consent is created in an INITIATED state.
\nA One Time Password (OTP) (AKA security challenge) is sent Out of Band (OOB) to the User via the transport defined in SCA_METHOD
\nSCA_METHOD is typically "SMS","EMAIL" or "IMPLICIT". "EMAIL" is used for testing purposes. OBP mapped mode "IMPLICIT" is "EMAIL".
\nOther mode, bank can decide it in the connector method 'getConsentImplicitSCA'.
When the Consent is created, OBP (or a backend system) stores the challenge so it can be checked later against the value supplied by the User with the Answer Consent Challenge endpoint.
\nAn OBP Consent allows the holder of the Consent to call one or more endpoints.
\nConsents must be created and authorisied using SCA (Strong Customer Authentication).
\nThat is, Consents can be created by an authorised User via the OBP REST API but they must be confirmed via an out of band (OOB) mechanism such as a code sent to a mobile phone.
\nEach Consent has one of the following states: INITIATED, ACCEPTED, REJECTED, REVOKED, RECEIVED, VALID, REVOKEDBYPSU, EXPIRED, TERMINATEDBYTPP, AUTHORISED, AWAITINGAUTHORISATION.
\nEach Consent is bound to a consumer i.e. you need to identify yourself over request header value Consumer-Key.
\nFor example:
\nGET /obp/v4.0.0/users/current HTTP/1.1
\nHost: 127.0.0.1:8080
\nConsent-JWT: eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOlt7InJvbGVfbmFtZSI6IkNhbkdldEFueVVzZXIiLCJiYW5rX2lkIjoiIn
\n1dLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIzNDc1MDEzZi03YmY5LTQyNj
\nEtOWUxYy0xZTdlNWZjZTJlN2UiLCJhdWQiOiI4MTVhMGVmMS00YjZhLTQyMDUtYjExMi1lNDVmZDZmNGQzYWQiLCJuYmYiOjE1ODA3NDE2NjcsIml
\nzcyI6Imh0dHA6XC9cLzEyNy4wLjAuMTo4MDgwIiwiZXhwIjoxNTgwNzQ1MjY3LCJpYXQiOjE1ODA3NDE2NjcsImp0aSI6ImJkYzVjZTk5LTE2ZTY
\ntNDM4Yi1hNjllLTU3MTAzN2RhMTg3OCIsInZpZXdzIjpbXX0.L3fEEEhdCVr3qnmyRKBBUaIQ7dk1VjiFaEBW8hUNjfg
Consumer-Key: ejznk505d132ryomnhbx1qmtohurbsbb0kijajsk
\ncache-control: no-cache
Maximum time to live of the token is specified over props value consents.max_time_to_live. In case isn't defined default value is 3600 seconds.
\nExample of POST JSON:
\n{
\n"everything": false,
\n"views": [
\n{
\n"bank_id": "GENODEM1GLS",
\n"account_id": "8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0",
\n"view_id": "owner"
\n}
\n],
\n"entitlements": [
\n{
\n"bank_id": "GENODEM1GLS",
\n"role_name": "CanGetCustomer"
\n}
\n],
\n"consumer_id": "7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
\n"email": "eveline@example.com",
\n"valid_from": "2020-02-07T08:43:34Z",
\n"time_to_live": 3600
\n}
\nPlease note that only optional fields are: consumer_id, valid_from and time_to_live.
\nIn case you omit they the default values are used:
\nconsumer_id = consumer of current user
\nvalid_from = current time
\ntime_to_live = consents.max_time_to_live
Authentication is Mandatory
\nExample 1:
\n{
\n"everything": true,
\n"views": [],
\n"entitlements": [],
\n"consumer_id": "7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
\n}
Please note that consumer_id is optional field
\nExample 2:
\n{
\n"everything": true,
\n"views": [],
\n"entitlements": [],
\n}
Please note if everything=false you need to explicitly specify views and entitlements
\nExample 3:
\n{
\n"everything": false,
\n"views": [
\n{
\n"bank_id": "GENODEM1GLS",
\n"account_id": "8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0",
\n"view_id": "owner"
\n}
\n],
\n"entitlements": [
\n{
\n"bank_id": "GENODEM1GLS",
\n"role_name": "CanGetCustomer"
\n}
\n],
\n"consumer_id": "7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
\n}
URL Parameters:
\nBANK_ID: gh.29.uk
\nIMPLICIT: IMPLICIT
\nJSON request body fields:
\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nbank_id: gh.29.uk
\n\n\n\nview_id: owner
\n\nconsumer_id: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\nvalid_from: 2020-01-27
\nJSON response body fields:
\n\njwt:
\n\n","description_markdown":"This endpoint starts the process of creating a Consent.\n\nThe Consent is created in an INITIATED state.\n\nA One Time Password (OTP) (AKA security challenge) is sent Out of Band (OOB) to the User via the transport defined in SCA_METHOD\nSCA_METHOD is typically \"SMS\",\"EMAIL\" or \"IMPLICIT\". \"EMAIL\" is used for testing purposes. OBP mapped mode \"IMPLICIT\" is \"EMAIL\".\nOther mode, bank can decide it in the connector method 'getConsentImplicitSCA'.\n\nWhen the Consent is created, OBP (or a backend system) stores the challenge so it can be checked later against the value supplied by the User with the Answer Consent Challenge endpoint.\n\n\n\nAn OBP Consent allows the holder of the Consent to call one or more endpoints.\n\nConsents must be created and authorisied using SCA (Strong Customer Authentication).\n\nThat is, Consents can be created by an authorised User via the OBP REST API but they must be confirmed via an out of band (OOB) mechanism such as a code sent to a mobile phone.\n\nEach Consent has one of the following states: INITIATED, ACCEPTED, REJECTED, REVOKED, RECEIVED, VALID, REVOKEDBYPSU, EXPIRED, TERMINATEDBYTPP, AUTHORISED, AWAITINGAUTHORISATION.\n\nEach Consent is bound to a consumer i.e. you need to identify yourself over request header value Consumer-Key. \nFor example:\nGET /obp/v4.0.0/users/current HTTP/1.1\nHost: 127.0.0.1:8080\nConsent-JWT: eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOlt7InJvbGVfbmFtZSI6IkNhbkdldEFueVVzZXIiLCJiYW5rX2lkIjoiIn\n1dLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIzNDc1MDEzZi03YmY5LTQyNj\nEtOWUxYy0xZTdlNWZjZTJlN2UiLCJhdWQiOiI4MTVhMGVmMS00YjZhLTQyMDUtYjExMi1lNDVmZDZmNGQzYWQiLCJuYmYiOjE1ODA3NDE2NjcsIml\nzcyI6Imh0dHA6XC9cLzEyNy4wLjAuMTo4MDgwIiwiZXhwIjoxNTgwNzQ1MjY3LCJpYXQiOjE1ODA3NDE2NjcsImp0aSI6ImJkYzVjZTk5LTE2ZTY\ntNDM4Yi1hNjllLTU3MTAzN2RhMTg3OCIsInZpZXdzIjpbXX0.L3fEEEhdCVr3qnmyRKBBUaIQ7dk1VjiFaEBW8hUNjfg\n\nConsumer-Key: ejznk505d132ryomnhbx1qmtohurbsbb0kijajsk\ncache-control: no-cache\n\nMaximum time to live of the token is specified over props value consents.max_time_to_live. In case isn't defined default value is 3600 seconds.\n\nExample of POST JSON:\n{\n \"everything\": false,\n \"views\": [\n {\n \"bank_id\": \"GENODEM1GLS\",\n \"account_id\": \"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\",\n \"view_id\": \"owner\"\n }\n ],\n \"entitlements\": [\n {\n \"bank_id\": \"GENODEM1GLS\",\n \"role_name\": \"CanGetCustomer\"\n }\n ],\n \"consumer_id\": \"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\",\n \"email\": \"eveline@example.com\",\n \"valid_from\": \"2020-02-07T08:43:34Z\",\n \"time_to_live\": 3600\n}\nPlease note that only optional fields are: consumer_id, valid_from and time_to_live. \nIn case you omit they the default values are used:\nconsumer_id = consumer of current user\nvalid_from = current time\ntime_to_live = consents.max_time_to_live\n\n \n\nAuthentication is Mandatory\n\nExample 1: \n{\n \"everything\": true,\n \"views\": [],\n \"entitlements\": [],\n \"consumer_id\": \"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\",\n}\n\nPlease note that consumer_id is optional field\nExample 2:\n{\n \"everything\": true,\n \"views\": [],\n \"entitlements\": [],\n}\n\nPlease note if everything=false you need to explicitly specify views and entitlements\nExample 3:\n{\n \"everything\": false,\n \"views\": [\n {\n \"bank_id\": \"GENODEM1GLS\",\n \"account_id\": \"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\",\n \"view_id\": \"owner\"\n }\n ],\n \"entitlements\": [\n {\n \"bank_id\": \"GENODEM1GLS\",\n \"role_name\": \"CanGetCustomer\"\n }\n ],\n \"consumer_id\": \"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\",\n}\n\n\n**URL Parameters:**\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[IMPLICIT](/glossary#): IMPLICIT\n\n\n\n\n\n**JSON request body fields:**\n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**entitlements**](/glossary#entitlements): \n\n\n\n[**everything**](/glossary#everything): \n\n\n\n[**role_name**](/glossary#role_name): \n\n\n\n[**view_id**](/glossary#): owner\n\n\n\n[**views**](/glossary#views): \n\n\n\n[consumer_id](/glossary#): 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[time_to_live](/glossary#time_to_live): \n\n\n\n[valid_from](/glossary#valid_from): 2020-01-27\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**consent_id**](/glossary#consent_id): \n\n\n\n[**jwt**](/glossary#jwt): \n\n\n\n[**status**](/glossary#status): \n\n\n","example_request_body":{"everything":false,"views":[{"bank_id":"gh.29.uk","account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0","view_id":"owner"}],"entitlements":[{"bank_id":"gh.29.uk","role_name":"CanGetCustomer"}],"consumer_id":"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh","valid_from":"2024-03-26T11:02:48Z","time_to_live":3600},"success_response_body":{"consent_id":"9d429899-24f5-42c8-8565-943ffa6a7945","jwt":"eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOltdLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIyMWUxYzhjYy1mOTE4LTRlYWMtYjhlMy01ZTVlZWM2YjNiNGIiLCJhdWQiOiJlanpuazUwNWQxMzJyeW9tbmhieDFxbXRvaHVyYnNiYjBraWphanNrIiwibmJmIjoxNTUzNTU0ODk5LCJpc3MiOiJodHRwczpcL1wvd3d3Lm9wZW5iYW5rcHJvamVjdC5jb20iLCJleHAiOjE1NTM1NTg0OTksImlhdCI6MTU1MzU1NDg5OSwianRpIjoiMDlmODhkNWYtZWNlNi00Mzk4LThlOTktNjYxMWZhMWNkYmQ1Iiwidmlld3MiOlt7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAxIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifSx7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAyIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifV19.8cc7cBEf2NyQvJoukBCmDLT7LXYcuzTcSYLqSpbxLp4","status":"INITIATED"},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-10001: Incorrect json format.","OBP-35009: Only SMS, EMAIL and IMPLICIT are supported as SCA methods. ","OBP-35013: Consents can only contain Roles that you already have access to.","OBP-35014: Consents can only contain Views that you already have access to.","OBP-30019: Consumer not found. Please specify a valid value for CONSUMER_ID.","OBP-20058: Consumer is disabled.","OBP-00010: Missing props value at this API instance - ","OBP-35010: SMS server is not working or SMS server can not send the message to the phone number:","OBP-50200: Connector cannot return the data we requested.","OBP-50000: Unknown Error."],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_request_body":{"type":"object","properties":{"valid_from":{"type":"string","format":"date-time"},"entitlements":{"type":"array","items":{"type":"object","properties":{"bank_id":{"type":"string"},"role_name":{"type":"string"}}}},"everything":{"type":"boolean"},"views":{"type":"array","items":{"type":"object","properties":{"bank_id":{"type":"string"},"view_id":{"type":"string"},"account_id":{"type":"string"}}}},"consumer_id":{"type":"string"},"time_to_live":{"type":"integer"}}},"typed_success_response_body":{"type":"object","properties":{"consent_id":{"type":"string"},"status":{"type":"string"},"jwt":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/my/consents/IMPLICIT","connector_methods":[]},{"operation_id":"OBPv5.1.0-getConsentByConsentId","implemented_by":{"version":"OBPv5.1.0","function":"getConsentByConsentId"},"request_verb":"GET","request_url":"/obp/v5.1.0/consumer/consents/CONSENT_ID","summary":"Get Consent By Consent Id","description":"This endpoint gets the Consent By consent id.
\nAuthentication is Mandatory
\nURL Parameters:
\n\nJSON response body fields:
\n\njwt:
\n\nconsent_request_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n","description_markdown":"This endpoint gets the Consent By consent id.\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[CONSENT_ID](/glossary#consent_id): \n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**consent_id**](/glossary#consent_id): \n\n\n\n[**jwt**](/glossary#jwt): \n\n\n\n[**status**](/glossary#status): \n\n\n\n[consent_request_id](/glossary#consent_request_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n","success_response_body":{"consent_id":"9d429899-24f5-42c8-8565-943ffa6a7945","jwt":"eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOltdLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIyMWUxYzhjYy1mOTE4LTRlYWMtYjhlMy01ZTVlZWM2YjNiNGIiLCJhdWQiOiJlanpuazUwNWQxMzJyeW9tbmhieDFxbXRvaHVyYnNiYjBraWphanNrIiwibmJmIjoxNTUzNTU0ODk5LCJpc3MiOiJodHRwczpcL1wvd3d3Lm9wZW5iYW5rcHJvamVjdC5jb20iLCJleHAiOjE1NTM1NTg0OTksImlhdCI6MTU1MzU1NDg5OSwianRpIjoiMDlmODhkNWYtZWNlNi00Mzk4LThlOTktNjYxMWZhMWNkYmQ1Iiwidmlld3MiOlt7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAxIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifSx7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAyIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifV19.8cc7cBEf2NyQvJoukBCmDLT7LXYcuzTcSYLqSpbxLp4","status":"INITIATED","consent_request_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-50000: Unknown Error."],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"consent_request_id":{"type":"string"},"consent_id":{"type":"string"},"status":{"type":"string"},"jwt":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/consumer/consents/CONSENT_ID","connector_methods":[]},{"operation_id":"OBPv2.0.0-getTransactionTypes","implemented_by":{"version":"OBPv2.0.0","function":"getTransactionTypes"},"request_verb":"GET","request_url":"/obp/v2.0.0/banks/BANK_ID/transaction-types","summary":"Get Transaction Types at Bank","description":"Get Transaction Types for the bank specified by BANK_ID:
\nLists the possible Transaction Types available at the bank (as opposed to Transaction Request Types which are the possible ways Transactions can be created by this API Server).
\nAuthentication is Optional
\nURL Parameters:
\nBANK_ID: gh.29.uk
\nJSON response body fields:
\namount: 10.12
\nbank_id: gh.29.uk
\n\ncurrency: EUR
\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\n\n\n\nvalue: 5987953
\n","description_markdown":"Get Transaction Types for the bank specified by BANK_ID:\n\nLists the possible Transaction Types available at the bank (as opposed to Transaction Request Types which are the possible ways Transactions can be created by this API Server).\n\n * id : Unique transaction type id across the API instance. SHOULD be a UUID. MUST be unique.\n * bank_id : The bank that supports this TransactionType\n * short_code : A short code (SHOULD have no-spaces) which MUST be unique across the bank. May be stored with Transactions to link here\n * summary : A succinct summary\n * description : A longer description\n * charge : The charge to the customer for each one of these\n\nAuthentication is Optional\n\n\n**URL Parameters:**\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**charge**](/glossary#charge): \n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**short_code**](/glossary#short_code): \n\n\n\n[**summary**](/glossary#summary): \n\n\n\n[**transaction_types**](/glossary#transaction_types): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n","example_request_body":{"jsonString":"{}"},"success_response_body":{"transaction_types":[{"id":{"value":"123"},"bank_id":"gh.29.uk","short_code":"PlaceholderString","summary":"PlaceholderString","description":"PlaceholderString","charge":{"currency":"EUR","amount":"0"}}]},"error_response_bodies":["OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-50000: Unknown Error."],"tags":["Bank","Account Information Service (AIS)","PSD2"],"typed_request_body":{"type":"object","properties":{"jsonString":{"type":"string"}}},"typed_success_response_body":{"type":"object","properties":{"transaction_types":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"short_code":{"type":"string"},"bank_id":{"type":"string"},"summary":{"type":"string"},"charge":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"id":{"type":"object","properties":{"value":{"type":"string"}}}}}}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/transaction-types","connector_methods":[]},{"operation_id":"OBPv5.0.0-getBank","implemented_by":{"version":"OBPv5.0.0","function":"getBank"},"request_verb":"GET","request_url":"/obp/v5.0.0/banks/BANK_ID","summary":"Get Bank","description":"Get the bank specified by BANK_ID
\nReturns information about a single bank specified by BANK_ID including:
Authentication is Optional
\nURL Parameters:
\nBANK_ID: gh.29.uk
\nJSON response body fields:
\n\nbank_code: CGHZ
\nbank_routings: bank routing in form of (scheme, address)
\nfull_name: full name string
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\nlogo: logo url
\nname: ACCOUNT_MANAGEMENT_FEE
\nscheme: scheme value
\nvalue: 5987953
\nwebsite: www.openbankproject.com
\nattributes: attribute value in form of (name, value)
\n","description_markdown":"Get the bank specified by BANK_ID\nReturns information about a single bank specified by BANK_ID including:\n\n* Bank code and full name of bank\n* Logo URL\n* Website\n\nAuthentication is Optional\n\n\n**URL Parameters:**\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**address**](/glossary#address): \n\n\n\n[**bank_code**](/glossary#bank_code): CGHZ\n\n\n\n[**bank_routings**](/glossary#bank_routings): bank routing in form of (scheme, address)\n\n\n\n[**full_name**](/glossary#full_name): full name string\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**logo**](/glossary#logo): logo url\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**scheme**](/glossary#scheme): scheme value\n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[**website**](/glossary#website): www.openbankproject.com\n\n\n\n[attributes](/glossary#attributes): attribute value in form of (name, value)\n\n\n","success_response_body":{"id":"gh.29.uk","bank_code":"CGHZ","full_name":"bank fullName string","logo":"bank logoUrl string","website":"bank logoUrl string","bank_routings":[{"scheme":"scheme value","address":""}],"attributes":[{"name":"ACCOUNT_MANAGEMENT_FEE","value":"5987953"}]},"error_response_bodies":["OBP-50000: Unknown Error.","OBP-30001: Bank not found. Please specify a valid value for BANK_ID."],"tags":["Bank","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"website":{"type":"string"},"attributes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}}}},"bank_routings":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string"},"address":{"type":"string"}}}},"logo":{"type":"string"},"bank_code":{"type":"string"},"full_name":{"type":"string"},"id":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID","connector_methods":[]},{"operation_id":"OBPv4.0.0-getBankAccountsBalances","implemented_by":{"version":"OBPv4.0.0","function":"getBankAccountsBalances"},"request_verb":"GET","request_url":"/obp/v4.0.0/banks/BANK_ID/balances","summary":"Get Accounts Balances","description":"Get the Balances for the Accounts of the current User at one bank.
\nAuthentication is Mandatory
\nURL Parameters:
\nBANK_ID: gh.29.uk
\nJSON response body fields:
\naccount_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n\n\n\namount: 10.12
\nbalances: balances
\nbank_id: gh.29.uk
\ncurrency: EUR
\nlabel: My Account
\nscheme: scheme value
\ntype:
\n","description_markdown":"Get the Balances for the Accounts of the current User at one bank.\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account_id**](/glossary#): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[**account_routings**](/glossary#account_routings): \n\n\n\n[**accounts**](/glossary#accounts): \n\n\n\n[**address**](/glossary#address): \n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**balances**](/glossary#): balances\n\n\n\n[**bank_id**](/glossary#): gh.29.uk\n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**label**](/glossary#): My Account\n\n\n\n[**scheme**](/glossary#scheme): scheme value\n\n\n\n[**type**](/glossary#type): \n\n\n","success_response_body":{"accounts":[{"account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0","bank_id":"gh.29.uk","account_routings":[{"scheme":"accountNumber","address":"123456"}],"label":"My Account","balances":[{"type":"","currency":"EUR","amount":"10"}]}]},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-50000: Unknown Error."],"tags":["Account","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"object","properties":{"bank_id":{"type":"string"},"label":{"type":"string"},"balances":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"amount":{"type":"string"},"currency":{"type":"string"}}}},"account_routings":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string"},"address":{"type":"string"}}}},"account_id":{"type":"string"}}}}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/balances","connector_methods":[]},{"operation_id":"OBPv3.1.0-getServerJWK","implemented_by":{"version":"OBPv3.1.0","function":"getServerJWK"},"request_verb":"GET","request_url":"/obp/v3.1.0/certs","summary":"Get JSON Web Key (JWK)","description":"Get the server's public JSON Web Key (JWK) set and certificate chain.
\nIt is required by client applications to validate ID tokens, self-contained access tokens and other issued objects.
Authentication is Optional
\nJSON response body fields:
\ne:
\nkid:
\nkty:
\nn:
\nuse:
\n","description_markdown":"Get the server's public JSON Web Key (JWK) set and certificate chain.\n It is required by client applications to validate ID tokens, self-contained access tokens and other issued objects.\n\n \n\nAuthentication is Optional\n\n\n**JSON response body fields:**\n\n\n\n[**e**](/glossary#e): \n\n\n\n[**kid**](/glossary#kid): \n\n\n\n[**kty**](/glossary#kty): \n\n\n\n[**n**](/glossary#n): \n\n\n\n[**use**](/glossary#use): \n\n\n","success_response_body":{"kty":"RSA","e":"AQAB","use":"sig","kid":"fr6-BxXH5gikFeZ2O6rGk0LUmJpukeswASN_TMW8U_s","n":"hrB0OWqg6AeNU3WCnhheG18R5EbQtdNYGOaSeylTjkj2lZr0_vkhNVYvase-CroxO4HOT06InxTYwLnmJiyv2cZxReuoVjTlk--olGu-9MZooiFiqWez0JzndyKxQ27OiAjFsMh0P04kaUXeHKhXRfiU7K2FqBshR1UlnWe7iHLkq2p9rrGjxQc7ff0w-Uc0f-8PWg36Y2Od7s65493iVQwnI13egqMaSvgB1s8_dgm08noEjhr8C5m1aKmr5oipWEPNi-SBV2VNuiCLR1IEPuXq0tOwwZfv31t34KPO-2H2bbaWmzGJy9mMOGqoNrbXyGiUZoyeHRELaNtm1GilyQ"},"error_response_bodies":["OBP-50000: Unknown Error."],"tags":["API","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"kid":{"type":"string"},"use":{"type":"string"},"n":{"type":"string"},"e":{"type":"string"},"kty":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/certs","connector_methods":[]},{"operation_id":"OBPv5.0.0-getConsentByConsentRequestId","implemented_by":{"version":"OBPv5.0.0","function":"getConsentByConsentRequestId"},"request_verb":"GET","request_url":"/obp/v5.0.0/consumer/consent-requests/CONSENT_REQUEST_ID/consents","summary":"Get Consent By Consent Request Id","description":"This endpoint gets the Consent By consent request id.
\nAuthentication is Mandatory
\nURL Parameters:
\nCONSENT_REQUEST_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nJSON response body fields:
\n\njwt:
\n\nconsent_request_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\n","description_markdown":"This endpoint gets the Consent By consent request id.\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[CONSENT_REQUEST_ID](/glossary#consent_request_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**consent_id**](/glossary#consent_id): \n\n\n\n[**jwt**](/glossary#jwt): \n\n\n\n[**status**](/glossary#status): \n\n\n\n[consent_request_id](/glossary#consent_request_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n","success_response_body":{"consent_id":"9d429899-24f5-42c8-8565-943ffa6a7945","jwt":"eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOltdLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIyMWUxYzhjYy1mOTE4LTRlYWMtYjhlMy01ZTVlZWM2YjNiNGIiLCJhdWQiOiJlanpuazUwNWQxMzJyeW9tbmhieDFxbXRvaHVyYnNiYjBraWphanNrIiwibmJmIjoxNTUzNTU0ODk5LCJpc3MiOiJodHRwczpcL1wvd3d3Lm9wZW5iYW5rcHJvamVjdC5jb20iLCJleHAiOjE1NTM1NTg0OTksImlhdCI6MTU1MzU1NDg5OSwianRpIjoiMDlmODhkNWYtZWNlNi00Mzk4LThlOTktNjYxMWZhMWNkYmQ1Iiwidmlld3MiOlt7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAxIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifSx7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAyIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifV19.8cc7cBEf2NyQvJoukBCmDLT7LXYcuzTcSYLqSpbxLp4","status":"INITIATED","consent_request_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-50000: Unknown Error."],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"consent_request_id":{"type":"string"},"consent_id":{"type":"string"},"status":{"type":"string"},"jwt":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/consumer/consent-requests/CONSENT_REQUEST_ID/consents","connector_methods":[]},{"operation_id":"OBPv4.0.0-getBanks","implemented_by":{"version":"OBPv4.0.0","function":"getBanks"},"request_verb":"GET","request_url":"/obp/v4.0.0/banks","summary":"Get Banks","description":"Get banks on this API instance
\nReturns a list of banks supported on this server:
Authentication is Optional
\nJSON response body fields:
\n\nbank_routings: bank routing in form of (scheme, address)
\n\nfull_name: full name string
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\nlogo: logo url
\nname: ACCOUNT_MANAGEMENT_FEE
\nscheme: scheme value
\n\nvalue: 5987953
\nwebsite: www.openbankproject.com
\nattributes: attribute value in form of (name, value)
\n","description_markdown":"Get banks on this API instance\nReturns a list of banks supported on this server:\n\n* ID used as parameter in URLs\n* Short and full name of bank\n* Logo URL\n* Website\n\nAuthentication is Optional\n\n\n**JSON response body fields:**\n\n\n\n[**address**](/glossary#address): \n\n\n\n[**bank_routings**](/glossary#bank_routings): bank routing in form of (scheme, address)\n\n\n\n[**banks**](/glossary#banks): \n\n\n\n[**full_name**](/glossary#full_name): full name string\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**logo**](/glossary#logo): logo url\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**scheme**](/glossary#scheme): scheme value\n\n\n\n[**short_name**](/glossary#short_name): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n\n[**website**](/glossary#website): www.openbankproject.com\n\n\n\n[attributes](/glossary#attributes): attribute value in form of (name, value)\n\n\n","success_response_body":{"banks":[{"id":"gh.29.uk","short_name":"short_name ","full_name":"full_name","logo":"logo","website":"www.openbankproject.com","bank_routings":[{"scheme":"scheme value","address":""}],"attributes":[{"name":"ACCOUNT_MANAGEMENT_FEE","value":"5987953"}]}]},"error_response_bodies":["OBP-50000: Unknown Error."],"tags":["BankAccountTag1","Bank","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"banks":{"type":"array","items":{"type":"object","properties":{"website":{"type":"string"},"logo":{"type":"string"},"attributes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}}}},"short_name":{"type":"string"},"bank_routings":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string"},"address":{"type":"string"}}}},"id":{"type":"string"},"full_name":{"type":"string"}}}}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks","connector_methods":[]},{"operation_id":"OBPv5.1.0-mtlsClientCertificateInfo","implemented_by":{"version":"OBPv5.1.0","function":"mtlsClientCertificateInfo"},"request_verb":"GET","request_url":"/obp/v5.1.0/my/mtls/certificate/current","summary":"Provide client's certificate info of a current call","description":"Provide client's certificate info of a current call specified by PSD2-CERT value at Request Header
\nAuthentication is Mandatory
\nJSON response body fields:
\nissuer_domain_name: issuer_domain_name
\nnot_after: not_after
\nnot_before: not_before
\nsubject_domain_name: subject_domain_name
\nroles: CanCreateMyUser
\nroles_info: roles_info
\n","description_markdown":"Provide client's certificate info of a current call specified by PSD2-CERT value at Request Header\n\nAuthentication is Mandatory\n\n\n**JSON response body fields:**\n\n\n\n[**issuer_domain_name**](/glossary#): issuer_domain_name\n\n\n\n[**not_after**](/glossary#): not_after\n\n\n\n[**not_before**](/glossary#): not_before\n\n\n\n[**subject_domain_name**](/glossary#): subject_domain_name\n\n\n\n[roles](/glossary#roles): CanCreateMyUser\n\n\n\n[roles_info](/glossary#): roles_info\n\n\n","success_response_body":{"subject_domain_name":"OID.2.5.4.41=VPN, EMAILADDRESS=admin@tesobe.com, CN=TESOBE CA, OU=TESOBE Operations, O=TESOBE, L=Berlin, ST=Berlin, C=DE","issuer_domain_name":"CN=localhost, O=TESOBE GmbH, ST=Berlin, C=DE","not_before":"2022-04-01T10:13:00.000Z","not_after":"2032-04-01T10:13:00.000Z","roles_info":"PEM Encoded Certificate does not contain PSD2 roles."},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-50000: Unknown Error."],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"roles_info":{"type":"string"},"subject_domain_name":{"type":"string"},"not_before":{"type":"string"},"issuer_domain_name":{"type":"string"},"not_after":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/my/mtls/certificate/current","connector_methods":[]},{"operation_id":"OBPv5.1.0-selfRevokeConsent","implemented_by":{"version":"OBPv5.1.0","function":"selfRevokeConsent"},"request_verb":"DELETE","request_url":"/obp/v5.1.0/my/consent/current","summary":"Revoke Consent used in the Current Call","description":"Revoke Consent specified by Consent-Id at Request Header
\nThere are a few reasons you might need to revoke an application’s access to a user’s account:
\n- The user explicitly wishes to revoke the application’s access
\n- You as the service provider have determined an application is compromised or malicious, and want to disable it
\n- etc.
OBP as a resource server stores access tokens in a database, then it is relatively easy to revoke some token that belongs to a particular user.
\nThe status of the token is changed to "REVOKED" so the next time the revoked client makes a request, their token will fail to validate.
Authentication is Mandatory
\nJSON response body fields:
\n\njwt:
\n\n","description_markdown":"Revoke Consent specified by Consent-Id at Request Header\n\nThere are a few reasons you might need to revoke an application’s access to a user’s account:\n - The user explicitly wishes to revoke the application’s access\n - You as the service provider have determined an application is compromised or malicious, and want to disable it\n - etc.\n\nOBP as a resource server stores access tokens in a database, then it is relatively easy to revoke some token that belongs to a particular user.\nThe status of the token is changed to \"REVOKED\" so the next time the revoked client makes a request, their token will fail to validate.\n\nAuthentication is Mandatory\n\n\n**JSON response body fields:**\n\n\n\n[**consent_id**](/glossary#consent_id): \n\n\n\n[**jwt**](/glossary#jwt): \n\n\n\n[**status**](/glossary#status): \n\n\n","success_response_body":{"consent_id":"9d429899-24f5-42c8-8565-943ffa6a7945","jwt":"eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOltdLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIyMWUxYzhjYy1mOTE4LTRlYWMtYjhlMy01ZTVlZWM2YjNiNGIiLCJhdWQiOiJlanpuazUwNWQxMzJyeW9tbmhieDFxbXRvaHVyYnNiYjBraWphanNrIiwibmJmIjoxNTUzNTU0ODk5LCJpc3MiOiJodHRwczpcL1wvd3d3Lm9wZW5iYW5rcHJvamVjdC5jb20iLCJleHAiOjE1NTM1NTg0OTksImlhdCI6MTU1MzU1NDg5OSwianRpIjoiMDlmODhkNWYtZWNlNi00Mzk4LThlOTktNjYxMWZhMWNkYmQ1Iiwidmlld3MiOlt7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAxIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifSx7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAyIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifV19.8cc7cBEf2NyQvJoukBCmDLT7LXYcuzTcSYLqSpbxLp4","status":"REJECTED"},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-50000: Unknown Error."],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"status":{"type":"string"},"consent_id":{"type":"string"},"jwt":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/my/consent/current","connector_methods":[]},{"operation_id":"OBPv4.0.0-getConsentInfos","implemented_by":{"version":"OBPv4.0.0","function":"getConsentInfos"},"request_verb":"GET","request_url":"/obp/v4.0.0/banks/BANK_ID/my/consent-infos","summary":"Get Consents Info","description":"This endpoint gets the Consents that the current User created.
\nAuthentication is Mandatory
\nURL Parameters:
\nBANK_ID: gh.29.uk
\nJSON response body fields:
\napi_standard: api_standard
\n\n\n\nconsumer_id: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\nlast_action_date: last_action_date
\nlast_usage_date: last_usage_date
\n\n","description_markdown":"This endpoint gets the Consents that the current User created.\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**api_standard**](/glossary#): api_standard\n\n\n\n[**api_version**](/glossary#api_version): \n\n\n\n[**consent_id**](/glossary#consent_id): \n\n\n\n[**consents**](/glossary#consents): \n\n\n\n[**consumer_id**](/glossary#): 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**created_by_user_id**](/glossary#created_by_user_id): \n\n\n\n[**last_action_date**](/glossary#): last_action_date\n\n\n\n[**last_usage_date**](/glossary#): last_usage_date\n\n\n\n[**status**](/glossary#status): \n\n\n","success_response_body":{"consents":[{"consent_id":"9d429899-24f5-42c8-8565-943ffa6a7945","consumer_id":"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh","created_by_user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1","last_action_date":"2020-01-27","last_usage_date":"2021-04-08T09:12:27Z","status":"INITIATED","api_standard":"Berlin Group","api_version":"v1.3"}]},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-50000: Unknown Error."],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_success_response_body":{"type":"object","properties":{"consents":{"type":"array","items":{"type":"object","properties":{"created_by_user_id":{"type":"string"},"api_standard":{"type":"string"},"consumer_id":{"type":"string"},"last_usage_date":{"type":"string","format":"date-time"},"last_action_date":{"type":"string","format":"date-time"},"consent_id":{"type":"string"},"status":{"type":"string"},"api_version":{"type":"string"}}}}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/my/consent-infos","connector_methods":[]},{"operation_id":"OBPv4.0.0-getExplictCounterpartyById","implemented_by":{"version":"OBPv4.0.0","function":"getExplictCounterpartyById"},"request_verb":"GET","request_url":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/counterparties/COUNTERPARTY_ID","summary":"Get Counterparty by Id (Explicit)","description":"Information returned about the Counterparty specified by COUNTERPARTY_ID:
\nAuthentication is Mandatory
\nURL Parameters:
\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nBANK_ID: gh.29.uk
\nCOUNTERPARTY_ID: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\nVIEW_ID: owner
\nJSON response body fields:
\n\n\ncounterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\ncurrency: EUR
\ndate: 2020-01-27
\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\n\nis_beneficiary: true
\nkey: CustomerNumber
\nlatitude: 38.8951
\nlongitude: -77.0364
\n\nmore_info: More information about this fee
\nname: ACCOUNT_MANAGEMENT_FEE
\n\nother_account_routing_address:
\n\nother_account_secondary_routing_address:
\nother_account_secondary_routing_scheme:
\n\n\n\n\n\n\nprovider: ETHEREUM
\n\n\n\n\nurl: http://www.example.com/id-docs/123/image.png
\nuser:
\nusername: felixsmith
\nvalue: 5987953
\n","description_markdown":"Information returned about the Counterparty specified by COUNTERPARTY_ID:\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[COUNTERPARTY_ID](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[VIEW_ID](/glossary#this_view_id): owner\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**bespoke**](/glossary#bespoke): \n\n\n\n[**corporate_location**](/glossary#corporate_location): 10\n\n\n\n[**counterparty_id**](/glossary#): 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**created_by_user_id**](/glossary#created_by_user_id): \n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**date**](/glossary#): 2020-01-27\n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**image_url**](/glossary#image_url): \n\n\n\n[**is_beneficiary**](/glossary#): true\n\n\n\n[**key**](/glossary#): CustomerNumber\n\n\n\n[**latitude**](/glossary#latitude): 38.8951\n\n\n\n[**longitude**](/glossary#longitude): -77.0364\n\n\n\n[**metadata**](/glossary#metadata): \n\n\n\n[**more_info**](/glossary#more_info): More information about this fee\n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**open_corporates_url**](/glossary#open_corporates_url): \n\n\n\n[**other_account_routing_address**](/glossary#other_account_routing_address): \n\n\n\n[**other_account_routing_scheme**](/glossary#other_account_routing_scheme): \n\n\n\n[**other_account_secondary_routing_address**](/glossary#other_account_secondary_routing_address): \n\n\n\n[**other_account_secondary_routing_scheme**](/glossary#other_account_secondary_routing_scheme): \n\n\n\n[**other_bank_routing_address**](/glossary#other_bank_routing_address): \n\n\n\n[**other_bank_routing_scheme**](/glossary#other_bank_routing_scheme): \n\n\n\n[**other_branch_routing_address**](/glossary#other_branch_routing_address): \n\n\n\n[**other_branch_routing_scheme**](/glossary#other_branch_routing_scheme): \n\n\n\n[**physical_location**](/glossary#physical_location): \n\n\n\n[**private_alias**](/glossary#private_alias): \n\n\n\n[**provider**](/glossary#provider): ETHEREUM\n\n\n\n[**public_alias**](/glossary#public_alias): \n\n\n\n[**this_account_id**](/glossary#this_account_id): \n\n\n\n[**this_bank_id**](/glossary#this_bank_id): \n\n\n\n[**this_view_id**](/glossary#this_view_id): \n\n\n\n[**url**](/glossary#): http://www.example.com/id-docs/123/image.png\n\n\n\n[**user**](/glossary#User): \n\n\n\n[**username**](/glossary#): felixsmith\n\n\n\n[**value**](/glossary#): 5987953\n\n\n","success_response_body":{"name":"CounterpartyName","description":"My landlord","currency":"EUR","created_by_user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1","this_bank_id":"gh.29.uk","this_account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0","this_view_id":"owner","counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh","other_bank_routing_scheme":"OBP","other_bank_routing_address":"gh.29.uk","other_branch_routing_scheme":"OBP","other_branch_routing_address":"12f8a9e6-c2b1-407a-8bd0-421b7119307e","other_account_routing_scheme":"OBP","other_account_routing_address":"36f8a9e6-c2b1-407a-8bd0-421b7119307e","other_account_secondary_routing_scheme":"IBAN","other_account_secondary_routing_address":"DE89370400440532013000","is_beneficiary":true,"bespoke":[{"key":"englishName","value":"english Name"}],"metadata":{"public_alias":"String","more_info":"String","url":"String","image_url":"String","open_corporates_url":"String","corporate_location":{"latitude":11.45,"longitude":11.45,"date":"1100-01-01T00:00:00Z","user":{"id":"123","provider":"http://127.0.0.1:8080","username":"felixsmith"}},"physical_location":{"latitude":11.45,"longitude":11.45,"date":"1100-01-01T00:00:00Z","user":{"id":"123","provider":"http://127.0.0.1:8080","username":"felixsmith"}},"private_alias":"String"}},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID. ","OBP-20017: Current user does not have access to the view. Please specify a valid value for VIEW_ID.","OBP-50000: Unknown Error."],"tags":["Counterparty","Payment Initiation Service (PIS)","PSD2","Counterparty-Metadata"],"typed_success_response_body":{"type":"object","properties":{"bespoke":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"key":{"type":"string"}}}},"created_by_user_id":{"type":"string"},"name":{"type":"string"},"metadata":{"type":"object","properties":{"private_alias":{"type":"string"},"physical_location":{"type":"object","properties":{"user":{"type":"object","properties":{"provider":{"type":"string"},"id":{"type":"string"},"username":{"type":"string"}}},"date":{"type":"string","format":"date-time"},"longitude":{"type":"number"},"latitude":{"type":"number"}}},"url":{"type":"string"},"public_alias":{"type":"string"},"open_corporates_url":{"type":"string"},"more_info":{"type":"string"},"corporate_location":{"type":"object","properties":{"user":{"type":"object","properties":{"provider":{"type":"string"},"id":{"type":"string"},"username":{"type":"string"}}},"date":{"type":"string","format":"date-time"},"longitude":{"type":"number"},"latitude":{"type":"number"}}},"image_url":{"type":"string"}}},"this_bank_id":{"type":"string"},"other_bank_routing_scheme":{"type":"string"},"currency":{"type":"string"},"other_account_secondary_routing_address":{"type":"string"},"counterparty_id":{"type":"string"},"description":{"type":"string"},"other_bank_routing_address":{"type":"string"},"other_account_routing_address":{"type":"string"},"other_branch_routing_scheme":{"type":"string"},"this_account_id":{"type":"string"},"other_account_secondary_routing_scheme":{"type":"string"},"is_beneficiary":{"type":"boolean"},"other_account_routing_scheme":{"type":"string"},"other_branch_routing_address":{"type":"string"},"this_view_id":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/counterparties/COUNTERPARTY_ID","connector_methods":[]},{"operation_id":"OBPv3.0.0-getCoreTransactionsForBankAccount","implemented_by":{"version":"OBPv3.0.0","function":"getCoreTransactionsForBankAccount"},"request_verb":"GET","request_url":"/obp/v3.0.0/my/banks/BANK_ID/accounts/ACCOUNT_ID/transactions","summary":"Get Transactions for Account (Core)","description":"Returns transactions list (Core info) of the account specified by ACCOUNT_ID.
\nAuthentication is Mandatory
\nPossible custom url parameters for pagination:
\neg1:?limit=100&offset=0
\neg2:?limit=100&offset=0&sort_direction=ASC
\nDate format parameter: yyyy-MM-dd'T'HH:mm:ss.SSS'Z'(1100-01-01T01:01:01.000Z) ==> time zone is UTC.
\neg3:?sort_direction=ASC&limit=100&offset=0&from_date=1100-01-01T01:01:01.000Z&to_date=1100-01-01T01:01:01.000Z
\nURL Parameters:
\nACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
\nBANK_ID: gh.29.uk
\nJSON response body fields:
\n\n\namount: 10.12
\n\ncompleted: 2020-01-27
\ncurrency: EUR
\ndescription: This an optional field. Maximum length is 2000. It can be any characters here.
\n\n\n\nid: d8839721-ad8f-45dd-9f78-2080414b93f9
\n\nname: ACCOUNT_MANAGEMENT_FEE
\nnew_balance: 20
\n\nposted: 2020-01-27
\nscheme: scheme value
\n\ntransaction_attribute_id: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
\n\n\ntype:
\nvalue: 5987953
\n","description_markdown":"Returns transactions list (Core info) of the account specified by ACCOUNT_ID.\n\nAuthentication is Mandatory\n\n\n\nPossible custom url parameters for pagination:\n\n* limit=NUMBER ==> default value: 500\n* offset=NUMBER ==> default value: 0\n\neg1:?limit=100&offset=0\n\n\n* sort_direction=ASC/DESC ==> default value: DESC.\n\neg2:?limit=100&offset=0&sort_direction=ASC\n\n\n\n* from_date=DATE => example value: 1970-01-01T00:00:00.000Z. NOTE! The default value is one year ago (1970-01-01T00:00:00.000Z).\n* to_date=DATE => example value: 2024-03-26T11:02:50.557Z. NOTE! The default value is now (2024-03-26T11:02:50.557Z).\n\nDate format parameter: yyyy-MM-dd'T'HH:mm:ss.SSS'Z'(1100-01-01T01:01:01.000Z) ==> time zone is UTC.\n\neg3:?sort_direction=ASC&limit=100&offset=0&from_date=1100-01-01T01:01:01.000Z&to_date=1100-01-01T01:01:01.000Z\n\n\n**URL Parameters:**\n\n[ACCOUNT_ID](/glossary#Account.account_id): 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\n\n\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**account_routings**](/glossary#account_routings): \n\n\n\n[**address**](/glossary#address): \n\n\n\n[**amount**](/glossary#): 10.12\n\n\n\n[**bank_routing**](/glossary#bank_routing): \n\n\n\n[**completed**](/glossary#completed): 2020-01-27\n\n\n\n[**currency**](/glossary#): EUR\n\n\n\n[**description**](/glossary#description): This an optional field. Maximum length is 2000. It can be any characters here.\n\n\n\n[**details**](/glossary#details): \n\n\n\n[**holder**](/glossary#holder): \n\n\n\n[**holders**](/glossary#holders): \n\n\n\n[**id**](/glossary#id): d8839721-ad8f-45dd-9f78-2080414b93f9\n\n\n\n[**is_alias**](/glossary#is_alias): \n\n\n\n[**name**](/glossary#name): ACCOUNT_MANAGEMENT_FEE\n\n\n\n[**new_balance**](/glossary#new_balance): 20\n\n\n\n[**other_account**](/glossary#other_account): \n\n\n\n[**posted**](/glossary#posted): 2020-01-27\n\n\n\n[**scheme**](/glossary#scheme): scheme value\n\n\n\n[**this_account**](/glossary#this_account): \n\n\n\n[**transaction_attribute_id**](/glossary#): 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\n\n\n\n[**transaction_attributes**](/glossary#transaction_attributes): \n\n\n\n[**transactions**](/glossary#transactions): \n\n\n\n[**type**](/glossary#type): \n\n\n\n[**value**](/glossary#): 5987953\n\n\n","success_response_body":{"transactions":[{"id":"5995d6a2-01b3-423c-a173-5481df49bdaf","this_account":{"id":"String","bank_routing":{"scheme":"scheme value","address":""},"account_routings":[{"scheme":"AccountNumber","address":"4930396"}],"holders":[{"name":"OBP","is_alias":true}]},"other_account":{"id":"5995d6a2-01b3-423c-a173-5481df49bdaf","holder":{"name":"OBP","is_alias":true},"bank_routing":{"scheme":"scheme value","address":""},"account_routings":[{"scheme":"AccountNumber","address":"4930396"}]},"details":{"type":"AC","description":"OBP","posted":"1100-01-01T00:00:00Z","completed":"1100-01-01T00:00:00Z","new_balance":{"currency":"EUR","amount":"0"},"value":{"currency":"EUR","amount":"0"}},"transaction_attributes":[{"transaction_attribute_id":"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh","name":"HOUSE_RENT","type":"DATE_WITH_DAY","value":"123456789"}]}]},"error_response_bodies":["OBP-10023: obp_sort_direction parameter can only take two values: DESC or ASC!","OBP-10024: wrong value for obp_offset parameter. Please send a positive integer (=>0)!","OBP-10025: wrong value for obp_limit parameter. Please send a positive integer (=>1)!","OBP-10026: Failed to parse date string. Please use this format yyyy-MM-dd'T'HH:mm:ss.SSS'Z'!","OBP-20001: User not logged in. Authentication is required!","OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID. ","OBP-30005: View not found for Account. Please specify a valid value for VIEW_ID","OBP-50000: Unknown Error."],"tags":["Transaction","Account Information Service (AIS)","Account","PSD2"],"typed_success_response_body":{"type":"object","properties":{"transactions":{"type":"array","items":{"type":"object","properties":{"details":{"type":"object","properties":{"type":{"type":"string"},"description":{"type":"string"},"posted":{"type":"string","format":"date-time"},"new_balance":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}},"completed":{"type":"string","format":"date-time"},"value":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"string"}}}}},"other_account":{"type":"object","properties":{"bank_routing":{"type":"object","properties":{"scheme":{"type":"string"},"address":{"type":"string"}}},"holder":{"type":"object","properties":{"is_alias":{"type":"boolean"},"name":{"type":"string"}}},"id":{"type":"string"},"account_routings":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string"},"address":{"type":"string"}}}}}},"id":{"type":"string"},"transaction_attributes":{"type":"array","items":{"type":"object","properties":{"transaction_attribute_id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"}}}},"this_account":{"type":"object","properties":{"bank_routing":{"type":"object","properties":{"scheme":{"type":"string"},"address":{"type":"string"}}},"holders":{"type":"array","items":{"type":"object","properties":{"is_alias":{"type":"boolean"},"name":{"type":"string"}}}},"id":{"type":"string"},"account_routings":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string"},"address":{"type":"string"}}}}}}}}}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/my/banks/BANK_ID/accounts/ACCOUNT_ID/transactions","connector_methods":[]},{"operation_id":"OBPv3.1.0-answerConsentChallenge","implemented_by":{"version":"OBPv3.1.0","function":"answerConsentChallenge"},"request_verb":"POST","request_url":"/obp/v3.1.0/banks/BANK_ID/consents/CONSENT_ID/challenge","summary":"Answer Consent Challenge","description":"An OBP Consent allows the holder of the Consent to call one or more endpoints.
\nConsents must be created and authorisied using SCA (Strong Customer Authentication).
\nThat is, Consents can be created by an authorised User via the OBP REST API but they must be confirmed via an out of band (OOB) mechanism such as a code sent to a mobile phone.
\nEach Consent has one of the following states: INITIATED, ACCEPTED, REJECTED, REVOKED, RECEIVED, VALID, REVOKEDBYPSU, EXPIRED, TERMINATEDBYTPP, AUTHORISED, AWAITINGAUTHORISATION.
\nEach Consent is bound to a consumer i.e. you need to identify yourself over request header value Consumer-Key.
\nFor example:
\nGET /obp/v4.0.0/users/current HTTP/1.1
\nHost: 127.0.0.1:8080
\nConsent-JWT: eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOlt7InJvbGVfbmFtZSI6IkNhbkdldEFueVVzZXIiLCJiYW5rX2lkIjoiIn
\n1dLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIzNDc1MDEzZi03YmY5LTQyNj
\nEtOWUxYy0xZTdlNWZjZTJlN2UiLCJhdWQiOiI4MTVhMGVmMS00YjZhLTQyMDUtYjExMi1lNDVmZDZmNGQzYWQiLCJuYmYiOjE1ODA3NDE2NjcsIml
\nzcyI6Imh0dHA6XC9cLzEyNy4wLjAuMTo4MDgwIiwiZXhwIjoxNTgwNzQ1MjY3LCJpYXQiOjE1ODA3NDE2NjcsImp0aSI6ImJkYzVjZTk5LTE2ZTY
\ntNDM4Yi1hNjllLTU3MTAzN2RhMTg3OCIsInZpZXdzIjpbXX0.L3fEEEhdCVr3qnmyRKBBUaIQ7dk1VjiFaEBW8hUNjfg
Consumer-Key: ejznk505d132ryomnhbx1qmtohurbsbb0kijajsk
\ncache-control: no-cache
Maximum time to live of the token is specified over props value consents.max_time_to_live. In case isn't defined default value is 3600 seconds.
\nExample of POST JSON:
\n{
\n"everything": false,
\n"views": [
\n{
\n"bank_id": "GENODEM1GLS",
\n"account_id": "8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0",
\n"view_id": "owner"
\n}
\n],
\n"entitlements": [
\n{
\n"bank_id": "GENODEM1GLS",
\n"role_name": "CanGetCustomer"
\n}
\n],
\n"consumer_id": "7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
\n"email": "eveline@example.com",
\n"valid_from": "2020-02-07T08:43:34Z",
\n"time_to_live": 3600
\n}
\nPlease note that only optional fields are: consumer_id, valid_from and time_to_live.
\nIn case you omit they the default values are used:
\nconsumer_id = consumer of current user
\nvalid_from = current time
\ntime_to_live = consents.max_time_to_live
This endpoint is used to confirm a Consent previously created.
\nThe User must supply a code that was sent out of band (OOB) for example via an SMS.
\nAuthentication is Mandatory
\nURL Parameters:
\nBANK_ID: gh.29.uk
\n\nJSON request body fields:
\n\nJSON response body fields:
\n\njwt:
\n\n","description_markdown":"An OBP Consent allows the holder of the Consent to call one or more endpoints.\n\nConsents must be created and authorisied using SCA (Strong Customer Authentication).\n\nThat is, Consents can be created by an authorised User via the OBP REST API but they must be confirmed via an out of band (OOB) mechanism such as a code sent to a mobile phone.\n\nEach Consent has one of the following states: INITIATED, ACCEPTED, REJECTED, REVOKED, RECEIVED, VALID, REVOKEDBYPSU, EXPIRED, TERMINATEDBYTPP, AUTHORISED, AWAITINGAUTHORISATION.\n\nEach Consent is bound to a consumer i.e. you need to identify yourself over request header value Consumer-Key. \nFor example:\nGET /obp/v4.0.0/users/current HTTP/1.1\nHost: 127.0.0.1:8080\nConsent-JWT: eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOlt7InJvbGVfbmFtZSI6IkNhbkdldEFueVVzZXIiLCJiYW5rX2lkIjoiIn\n1dLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIzNDc1MDEzZi03YmY5LTQyNj\nEtOWUxYy0xZTdlNWZjZTJlN2UiLCJhdWQiOiI4MTVhMGVmMS00YjZhLTQyMDUtYjExMi1lNDVmZDZmNGQzYWQiLCJuYmYiOjE1ODA3NDE2NjcsIml\nzcyI6Imh0dHA6XC9cLzEyNy4wLjAuMTo4MDgwIiwiZXhwIjoxNTgwNzQ1MjY3LCJpYXQiOjE1ODA3NDE2NjcsImp0aSI6ImJkYzVjZTk5LTE2ZTY\ntNDM4Yi1hNjllLTU3MTAzN2RhMTg3OCIsInZpZXdzIjpbXX0.L3fEEEhdCVr3qnmyRKBBUaIQ7dk1VjiFaEBW8hUNjfg\n\nConsumer-Key: ejznk505d132ryomnhbx1qmtohurbsbb0kijajsk\ncache-control: no-cache\n\nMaximum time to live of the token is specified over props value consents.max_time_to_live. In case isn't defined default value is 3600 seconds.\n\nExample of POST JSON:\n{\n \"everything\": false,\n \"views\": [\n {\n \"bank_id\": \"GENODEM1GLS\",\n \"account_id\": \"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0\",\n \"view_id\": \"owner\"\n }\n ],\n \"entitlements\": [\n {\n \"bank_id\": \"GENODEM1GLS\",\n \"role_name\": \"CanGetCustomer\"\n }\n ],\n \"consumer_id\": \"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh\",\n \"email\": \"eveline@example.com\",\n \"valid_from\": \"2020-02-07T08:43:34Z\",\n \"time_to_live\": 3600\n}\nPlease note that only optional fields are: consumer_id, valid_from and time_to_live. \nIn case you omit they the default values are used:\nconsumer_id = consumer of current user\nvalid_from = current time\ntime_to_live = consents.max_time_to_live\n\n \n\n\nThis endpoint is used to confirm a Consent previously created.\n\nThe User must supply a code that was sent out of band (OOB) for example via an SMS.\n\nAuthentication is Mandatory\n\n\n**URL Parameters:**\n\n[BANK_ID](/glossary#Bank.bank_id): gh.29.uk\n\n\n\n[CONSENT_ID](/glossary#consent_id): \n\n\n\n\n\n**JSON request body fields:**\n\n\n\n[**answer**](/glossary#answer): \n\n\n\n\n\n**JSON response body fields:**\n\n\n\n[**consent_id**](/glossary#consent_id): \n\n\n\n[**jwt**](/glossary#jwt): \n\n\n\n[**status**](/glossary#status): \n\n\n","example_request_body":{"answer":"12345678"},"success_response_body":{"consent_id":"9d429899-24f5-42c8-8565-943ffa6a7945","jwt":"eyJhbGciOiJIUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOltdLCJjcmVhdGVkQnlVc2VySWQiOiJhYjY1MzlhOS1iMTA1LTQ0ODktYTg4My0wYWQ4ZDZjNjE2NTciLCJzdWIiOiIyMWUxYzhjYy1mOTE4LTRlYWMtYjhlMy01ZTVlZWM2YjNiNGIiLCJhdWQiOiJlanpuazUwNWQxMzJyeW9tbmhieDFxbXRvaHVyYnNiYjBraWphanNrIiwibmJmIjoxNTUzNTU0ODk5LCJpc3MiOiJodHRwczpcL1wvd3d3Lm9wZW5iYW5rcHJvamVjdC5jb20iLCJleHAiOjE1NTM1NTg0OTksImlhdCI6MTU1MzU1NDg5OSwianRpIjoiMDlmODhkNWYtZWNlNi00Mzk4LThlOTktNjYxMWZhMWNkYmQ1Iiwidmlld3MiOlt7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAxIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifSx7ImFjY291bnRfaWQiOiJtYXJrb19wcml2aXRlXzAyIiwiYmFua19pZCI6ImdoLjI5LnVrLngiLCJ2aWV3X2lkIjoib3duZXIifV19.8cc7cBEf2NyQvJoukBCmDLT7LXYcuzTcSYLqSpbxLp4","status":"INITIATED"},"error_response_bodies":["OBP-20001: User not logged in. Authentication is required!","OBP-30001: Bank not found. Please specify a valid value for BANK_ID.","OBP-10001: Incorrect json format.","OBP-50200: Connector cannot return the data we requested.","OBP-50000: Unknown Error."],"tags":["Consent","Account Information Service (AIS)","PSD2"],"typed_request_body":{"type":"object","properties":{"answer":{"type":"string"}}},"typed_success_response_body":{"type":"object","properties":{"consent_id":{"type":"string"},"status":{"type":"string"},"jwt":{"type":"string"}}},"is_featured":false,"special_instructions":"","specified_url":"/obp/v5.1.0/banks/BANK_ID/consents/CONSENT_ID/challenge","connector_methods":[]}]}