Introduction
_ _ _ _ __ __ _ _ _
| | | | ___| | | ___ \ \ / /__ _ __| | __| | |
| |_| |/ _ \ | |/ _ \ \ \ /\ / / _ \| '__| |/ _` | |
| _ | __/ | | (_) | \ V V / (_) | | | | (_| |_|
|_| |_|\___|_|_|\___/ \_/\_/ \___/|_| |_|\__,_(_)
This is the Bank Frick online banking webAPI documentation. In this documentation the client can see what requirements must be fulfilled, which functionalities Bank Frick's online banking webAPI must have and how it must be set up in order to be used.
The online banking webAPI enables to create and approve payment orders and receive account information in a simplified JSON format or standardized camt report without the requirement of logging in into the online banking frontend.
We have examples for the sandbox as well as for the production environment. You can view code examples in the dark area to the right, and you can switch the environment of the examples with the tabs in the top right.
Getting Started
In order to use the online banking WebAPI, the client requires having an active account which allows him to access one or multiple customers depending on the user privileges and contact to customer assignments. The user account is identified by a contact number which also enables him to login into the online banking client gui. In general, the privileges to access accounts and create payment orders are the same for the gui and the WebAPI.
The client user must create an API-Key (Personal Access Token) which will later be used to identify a client application which uses the WebAPI. The API-Key can be created within the gui using the Manage API-Keys Dialog. The client user can define permissions that refer exclusively to the API-Key and set an expiration date. With the API-Key the client application will authenticate on the WebAPI interface.
The client application logs in by sending his API-Key and current password. The API-Key must be created in beforehand by the client user via the online banking gui (requires TAN).
The server verifies the key, it retrieves the client information, generates a JWT (JSON Web Token) containing user details and permissions that will be used to access the services, and the server also sets the expiration on the JWT. The expiration date of the JWT can be before the expiration date of the API-Key, but can never exceed it. At default it is unlimited.
The server signs and sends the JWT to the client as a response to the initial request with the API-Key. Note that the communication itself is stateless, meaning that once a JWT is acquired, the client application can use the token indefinitely respectively as long as stated in the token or the API-Key is revoked. The JWT is not stored on the server.
The client sends the stored JWT in the authorization header for every following request to the server.
For each request, the server takes the JWT from the authorization header and validates the signature, extracts the user data and permissions. If the JWT cannot be validated or is no longer accepted, the server will send a 401 HTTP code (unauthorized) as response.
Here you can sign up for an account: Sign up
After the Sign Up, you will receive the following two informations by email to access your account and use the webAPI.
- Contact number
- Password
If you subsequently have an active Bank Frick account, you can start webAPI with the Online Banking setup.
Currently 3 environments are available
- Production: https://olb.bankfrick.li
- Test: https://olbtest.bankfrick.li
- Sandbox: https://olbsandbox.bankfrick.li (Note: The data in the sandbox environment is anonymized.)
The API is available under the following path:
BaseURL = <Environment URL>/webapi/
Schemes: https
Signatures
Message payloads must be signed by the sender of the message and be verified by the receiver. The signature will be transmitted in the ‘Signature’ header field of the HTTP Request/Response. The signature is a Base64-encoded binary SHA signature of the content of the message-body. The 'algorithm' header parameter is used to specify the digital signature algorithm to use when generating the signature. Valid values for this parameter are [rsa-sha512, rsa-sha384, rsa-sha256]. If ‘algorithm’ is not provided by the client the server will assume rsa-sha512.
SSH-Key-Management
The public key of the client must be uploaded to the server using the online banking gui manage ssh key dialog and assigned to an access token. The user must give a unique title respectively a name to the public key. The public key itself can be copied into the input field and added with the "Add SSH-Key" button. The following formats for the public key are accepted:
- X.509 SubjectPublicKeyInfo (PEM header: BEGIN PUBLIC KEY)
A public/private key pair can be created using various tools, e.g. via openssl command line
$ openssl genrsa -out private.key 4096
$ openssl rsa -in private.key -outform PEM -pubout -out public.pem
Or via Java:
KeyPairGenerator instance = KeyPairGenerator.getInstance("RSA");
instance.initialize(4096, secureRandom);
KeyPair generateKeyPair = instance.generateKeyPair();
Note: Private keys must be stored safely and never shared.
Sample signing with openssl
$ openssl dgst –sha512 –sign private.key –out request.body.sha512 request.body
$ openssl base64 -A –in request.body.sha512 -out request.signature
Sample signature verification using openssl
$ openssl base64 -A –d –in response.signature -out response.body.sha512
$ openssl dgst –sha512 –verify public.pem –signature response.body.sha512 response.body
Sample signing with Java
public String getSignature(byte[] body, PrivateKey privateKey) throws Exception {
Signature privateSignature = Signature.getInstance("SHA512withRSA");
privateSignature.initSign(privateKey);
privateSignature.update(body);
byte[] signature = privateSignature.sign();
return Base64.getEncoder().encodeToString(signature);
}
Sample signature verification using Java
public boolean isValid(byte[] body, String signature, PublicKey publicKey) throws Exception {
Signature publicSignature = Signature.getInstance("SHA512withRSA");
publicSignature.initVerify(publicKey);
publicSignature.update(body);
byte[] signatureBytes = Base64.getDecoder().decode(signature);
return publicSignature.verify(signatureBytes);
}
Manage API Keys
Now, you are able to generate a personal API-Key for an application which uses the webAPI. The API-Key replaces the user contact number for requesting a JWT from the authorization server, however for each further request it is still required that the user account is still active and accessible. If the you lock the account e.g. via the “Lock Password” function or by entering false passwords at the login, all client JWTs will lose access privileges temporarily until the user is unlocked again from an advisor in the backend.
An API-Key is a personalized access token which will be generated once by the server using the settings provided by the contact. The settings describe the name, expire date and scope of the access token. Also a client public key must be defined which will be used by the server to validate the signature of the messages send by the client.
A generated access token will be displayed after a successful entered TAN challenge for a limited amount of time. After that, the token cannot be accessed again. Changing a token would require to delete the old token and create a new one. You are responsible to save and handle the access key securely. Additionally, you can limit the access to the WebAPI of your account to a specific IP address or subnet. For that, the firewall must be configured accordingly so that your IP address is passed to the application server (transparent proxy) in the “X-FORWARDED-FOR” or any other suitable request header field.
WebHooks
This dialog shows an overview of all created and active notification rules. You are able to define notification rules to be informed when a criteria matches, e.g. a charge or credit entry on an account or an executed payment order. New rules can be created, edited or deleted at any time.
You are able to create or edit a notification rule which triggers on the defined event and notifies the user. You can define a rule for a specific customer or account or in a general case for all accounts. The notification rule condition is checked by the server in regular intervals and if a rule is fulfilled you are notified once via the selected method until the condition is reset and met again.
WebHooks allows the user to develop push notifications. These push notifications are simply an HTTP POST that is triggered by the defined action. The notification does contain information about the triggered notification rule but no further critical data. Also a signature of the body is added which can be verified by the server public key. The server will send a JSON message containing the relevant information about the rule.
If the message cannot be delivered, e.g. because the client server is not responding, the event will be discarded and not be send again until the notification condition is triggered again. The request is asynchronous meaning the server does not wait for a client response.
Authorize
Login to the WebAPI using an API-Key to receive a JWT. The password is optional when authorizing with the WebAPI. The API-Key can be generated by the user using the Manage API-Keys Dialog.
POST
POST /v2/authorize
Request
POST https://olbtest.bankfrick.li/webapi/v2/authorize
Content-Type: application/json
Accept: application/json
Signature: ...
algorithm: ...
{
"key" : "1234567890abcdefgHIJKLMN",
"password" : "secret"
}
POST https://olb.bankfrick.li/webapi/v2/authorize
Content-Type: application/json
Accept: application/json
Signature: ...
algorithm: ...
{
"key" : "1234567890abcdefgHIJKLMN",
"password" : "secret"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"token" : "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJCYW5rIEZyaWNrIFdlYkFQSSIsInN1YiI6IlRhZ2VzYWJzY2hsdXNzIiwiY29udGFjdCI6IjY3ODkiLCJuYW1lIjoiTWF4IE11c3RlciIsInBlcm1pc3Npb25zIjpbImFjY291bnRzIiwidHJhbnNhY3Rpb25zIiwiY2FtdDA1MiIsImNhbXQwNTMiXSwiYXVkIjoicHJvZHVjdGlvbiIsImV4cCI6MTU0NjMwMDgwMCwiaWF0IjoxNTMzMTA5MzIzfQ.DlxpBZMGAZx1xK-UdA-s9SrHMrEIt60waF1kLYG6kCuTRMrcDiS3KR8p0bAyZaLUWlfSJF3TCMb2Tup5MyLFWc0fZRJfu0mBEyz74ZwbSN9iTrwzzsfIuX2E1d895hR1MgsMy2i1Qu-vwZgsW0WivnNCHBMLZH0jM94v1czt7f0"
}
Perform a login to receive the JWT. For the login an API-Key must be generated within the online banking gui application. The API-Key replaces the user contact number for requesting a JWT form the authorization server. The returned JWT token must be used to authenticate against other webapi resources which need a privileged user.
Request Parameters
name | type | description |
---|---|---|
Signature | header | <signature> |
algorithm | header | The used signing algorithm, e.g. rsa-sha512 |
Request Body
media type | data type | description |
---|---|---|
application/json | Authorize (JSON) | The authorization request body |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | AuthorizeResponse (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | AuthorizeResponse (JSON) | The authorize response message which contains the JWT as json object. |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
Accounts
Listing of accounts, similar to the financial overview within the online banking. Will only show accounts visible to the user as defined by the customer to contact relation and permission.
GET
GET /v2/accounts
Request
GET https://olbtest.bankfrick.li/webapi/v2/accounts
Content-Type: */*
Accept: application/json
Authorization: ...
...
GET https://olb.bankfrick.li/webapi/v2/accounts
Content-Type: */*
Accept: application/json
Authorization: ...
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"date" : "2018-12-31",
"moreResults" : false,
"resultSetSize" : 2,
"accounts" : [ {
"account" : "0012345/001.000.001",
"type" : "CURRENT ACCOUNT",
"iban" : "LI6808811000000012345",
"customer" : "0012345 Max Muster",
"currency" : "CHF",
"balance" : -1321.25,
"available" : 0
}, {
"account" : "0012345/400.000.840",
"type" : "TIME DEPOSITS/FIXED DEP. CUSTOMER",
"customer" : "0012345 Max Muster",
"currency" : "USD",
"balance" : 515
} ]
}
Get the list of accounts that are visible for the user.
Request Parameters
name | type | description | default | constraints |
---|---|---|---|---|
Authorization | header | Bearer <token> | ||
firstPosition | query | (optional) Set the position of the first result to retrieve (offset), defaults to 0 | 0 | int |
maxResults | query | (optional) Set the maximum number of results to retrieve (row_count), defaults to 100, max. 500 | 100 | int |
order | query | (optional) Defines the ordering (by customer_number and account_number) of the result where order is one of (desc, asc), defaults to asc | asc |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | Accounts (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | Accounts (JSON) | The list accounts according to the filter parameters as json object. |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
GET Accounts Customer (filtered)
GET /v2/accounts/{customer}/{account}
Request
GET https://olbtest.bankfrick.li/webapi/v2/accounts/0012345/001.000.001
Content-Type: */*
Accept: application/json
Authorization: ...
...
GET https://olb.bankfrick.li/webapi/v2/accounts/0012345/001.000.001
Content-Type: */*
Accept: application/json
Authorization: ...
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"date" : "2018-12-31",
"moreResults" : false,
"resultSetSize" : 2,
"accounts" : [ {
"account" : "0012345/001.000.001",
"type" : "CURRENT ACCOUNT",
"iban" : "LI6808811000000012345",
"customer" : "0012345 Max Muster",
"currency" : "CHF",
"balance" : -1321.25,
"available" : 0
}, {
"account" : "0012345/400.000.840",
"type" : "TIME DEPOSITS/FIXED DEP. CUSTOMER",
"customer" : "0012345 Max Muster",
"currency" : "USD",
"balance" : 515
} ]
}
Get the list of accounts for the user and the given filter for customer number and account number. It is possible to search only for a customer or an account by leaving the filter parameter empty. E.g. /accounts/001.000.001 would search for accounts with the account number 001.000.001 on all visible customers for the user.
If a combination of filter parameters are applied, only accounts that match both conditions are returned.
Request Parameters
name | type | description | default | constraints |
---|---|---|---|---|
Authorization | header | Bearer <token> | ||
account | path | (optional) The account to receive information for | regex: ([0-9]{3}.[0-9]{3}.[0-9]{3})? | |
customer | path | (optional) The customer number to receive account information for | regex: ([0-9]{0,7})? | |
firstPosition | query | (optional) Set the position of the first result to retrieve (offset), defaults to 0 | 0 | int |
maxResults | query | (optional) Set the maximum number of results to retrieve (row_count), defaults to 100, max. 2500 | 100 | int |
order | query | (optional) Defines the ordering of the result where order is one of (desc, asc), defaults to asc | asc |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | Accounts (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | Accounts (JSON) | The list accounts according to the filter parameters as json object. |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
GET Accounts Customer Transactions
GET /v2/accounts/{customer}/{account}/transactions
GET /v2/accounts/{customer}/{account}/transactions/{orderId}
Request
GET https://olbtest.bankfrick.li/webapi/v2/accounts/0012345/001.000.001/transactions
Content-Type: */*
Accept: application/json
Authorization: ...
...
GET https://olb.bankfrick.li/webapi/v2/accounts/0012345/001.000.001/transactions
Content-Type: */*
Accept: application/json
Authorization: ...
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"moreResults" : false,
"resultSetSize" : 1,
"transactions" : [ {
"orderId" : 20771,
"customId" : "4711",
"type" : "SEPA",
"state" : "PREPARED",
"amount" : "1000.00",
"currency" : "EUR",
"valuta" : "2018-08-02",
"valutaIsExecutionDate" : true,
"express" : false,
"reference" : "Invoice number 123",
"debitor" : {
"accountNumber" : "0012345/001.000.001",
"iban" : "LI6808811000000012345"
},
"creditor" : {
"name" : "Max Muster",
"iban" : "DE12500105170648489890",
"bic" : "INGDDEFFXXX",
"creditInsitution" : "ING-DiBa GERMANY"
},
"creator" : "6789 Max Muster",
"right" : "Bevollmächtigter kollektiv zu 2",
"groupPolicy" : "Group intern",
"group" : 1,
"quorum" : 2,
"approvals" : [ {
"contact" : "6789 Max Muster",
"group" : 1,
"dateOfApproval" : "2018-08-22T10:07:02"
} ]
} ]
}
Get the list of payment orders for a given account. This will forward to the transactions resource. Returns orders that were created within the context of the online banking or external transactions. Booked and external transactions can also be retrieved using the camt052/camt053 services.
If a combination of filter parameters are applied, only orders that match all of the conditions are returned.
Request Parameters
name | type | description | default | constraints |
---|---|---|---|---|
Authorization | header | Bearer <token> | ||
account | path | (optional) The account to receive information for | regex: ([0-9]{3}.[0-9]{3}.[0-9]{3})? | |
customer | path | (optional) The customer number to filter the list of transactions for | regex: ([0-9]{0,7})? | |
customId | query | (optional) Filter for custom id as it was assigned by the client on transaction creation. When searching for BOOKED transactions, the fromDate filter must be set accordingly, otherwise the query might not return the expected result. | ||
firstPosition | query | (optional) Set the position of the first result to retrieve (offset), defaults to 0 | 0 | int |
fromDate | query | (optional) Starting date of the timespan for which to retrieve the data. The date should be provided in ISO 8601 format: YYYY-MM-DD, defaults to current day minus 30 days. | ||
maxAmount | query | (optional) Maximum amount for a transaction to appear in the report, this parameter should be URL-Encoded. | ||
maxResults | query | (optional) Set the maximum number of results to retrieve (row_count), defaults to 100, max. 2500 | 100 | int |
minAmount | query | (optional) Minimum amount for a transaction to appear in the report, this parameter should be URL-Encoded. | ||
order | query | (optional) Defines the ordering (by orderId) of the result where order is one of (desc, asc), defaults to asc | asc | |
reference | query | (optional) Filter for the reference (transaction information), this parameter should be URL-Encoded. | ||
searchIban | query | (optional) Filter for the beneficiary account iban. | ||
searchName | query | (optional) Filter for the beneficiary name, this parameter should be URL-Encoded. | ||
status | query | (optional) Filter for for transaction status. The status of transactions that where created in the context of online banking can be one of (PREPARED, IN_PROGRESS, DELETED, EXPIRED, EXECUTED, REJECTED, DELETION_REQUESTED). The status of booked transactions on the account is BOOKED. Note: BOOKED transactions (as known from the camt053 export) can only be queried by setting this filter to BOOKED otherwise only transactions that were created in the context of online banking are returned. | ||
toDate | query | (optional) Ending date of the timespan for which to retrieve the data. The date should be provided in ISO 8601 format: YYYY-MM-DD. | ||
type | query | (optional) Filter for transaction type, expected one of (INTERNAL, BANK_INTERNAL, SEPA, FOREIGN, RED, ORANGE). Only relevant for transactions that were created in the context of online banking. |
name | type | description | default | constraints |
---|---|---|---|---|
orderId | path | (optional) The payment order id as it was assigned by the server to look for | regex: ((?<=/)[0-9]{0,20})? |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | Accounts (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | Accounts (JSON) | The list accounts according to the filter parameters as json object. |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
CustodyAccounts
Access to custody accounts. Listing of custody accounts and depot transactions.
GET
GET /v2/custodyaccounts
Request
GET https://olbtest.bankfrick.li/webapi/v2/custodyaccounts
Content-Type: */*
Accept: application/json
Authorization: ...
...
GET https://olb.bankfrick.li/webapi/v2/custodyaccounts
Content-Type: */*
Accept: application/json
Authorization: ...
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"date" : "2019-12-31",
"moreResults" : false,
"resultSetSize" : 2,
"accounts" : [ {
"custodyAccount" : "0012345-000",
"type" : "DEPOT MAX MUSTER",
"customer" : "0012345 Max Muster"
}, {
"custodyAccount" : "0012345-001",
"type" : "SECOND DEPOT MAX MUSTER",
"customer" : "0012345 Max Muster"
} ]
}
Listing of depots for the contact with basic information like: Deposit number, name, customer.
Request Parameters
name | type | description | default | constraints |
---|---|---|---|---|
Authorization | header | Bearer <token> | ||
firstPosition | query | (optional) Set the position of the first result to retrieve (offset), defaults to 0 | 0 | int |
maxResults | query | (optional) Set the maximum number of results to retrieve (row_count), defaults to 100, max. 2500 | 100 | int |
order | query | (optional) Defines the ordering of the result where order is one of (desc, asc), defaults to asc | asc |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | CustodyAccounts (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | CustodyAccounts (JSON) | The list accounts according to the filter parameters as json object. |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
GET CustodyAccounts (filtered)
GET /v2/custodyaccounts/{customer}
Request
GET https://olbtest.bankfrick.li/webapi/v2/custodyaccounts/0012345
Content-Type: */*
Accept: application/json
Authorization: ...
...
GET https://olb.bankfrick.li/webapi/v2/custodyaccounts/0012345
Content-Type: */*
Accept: application/json
Authorization: ...
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"date" : "2019-07-23",
"moreResults" : true,
"resultSetSize" : 2,
"accounts" : [ {
"custodyAccount" : "0012345-000",
"type" : "DEPOT MAX MUSTER",
"customer" : "0012345 Max Muster",
"positions" : [ {
"valorNumber" : "000001189343-000",
"valorName" : "LYXOR ETF EURO STOXX 50 FCP DIST",
"isin" : "FR0007054358",
"valorCurrency" : "CHF",
"currency" : "EUR",
"currentPrice" : 29.84,
"quantity" : 3505,
"marketValutation" : 104589.2,
"valorCategory" : "250 - FUNDS SECURITIES",
"lastMovement" : "2018-12-07",
"acqPrice" : 123236.26,
"avePrice" : 35.16,
"profLoss" : -18647.06
}, {
"valorNumber" : "000001963428-978",
"valorName" : "ISHARES PLC CHINA LARGE CAP EUR",
"isin" : "IE00B02KXK85",
"valorCurrency" : "CHF",
"currency" : "EUR",
"currentPrice" : 101.77,
"quantity" : 400,
"marketValutation" : 40708,
"valorCategory" : "250 - FUNDS SECURITIES",
"lastMovement" : "2018-12-07",
"acqPrice" : 40357.55,
"avePrice" : 100.89,
"profLoss" : 350.45
} ]
} ]
}
Access depot details including list of depot positions for a customer.
Request Parameters
name | type | description | default | constraints |
---|---|---|---|---|
Authorization | header | Bearer <token> | ||
customer | path | The customer number to filter the list of depots | regex: ((?<=/)[0-9]{0,7})? | |
firstPosition | query | (optional) Set the position of the first result to retrieve (offset), defaults to 0 | 0 | int |
maxResults | query | (optional) Set the maximum number of results to retrieve (row_count), defaults to 100, max. 2500 | 100 | int |
order | query | (optional) Defines the ordering of the result where order is one of (desc, asc), defaults to asc | asc |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | CustodyAccounts (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | CustodyAccounts (JSON) | The custody account details including list of depot positions for the selected customer. |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
GET CustodyAccounts Depot (filtered)
GET /v2/custodyaccounts/{customer}-{depot}
Request
GET https://olbtest.bankfrick.li/webapi/v2/custodyaccounts/0012345-000
Content-Type: */*
Accept: application/json
Authorization: ...
...
GET https://olb.bankfrick.li/webapi/v2/custodyaccounts/0012345-000
Content-Type: */*
Accept: application/json
Authorization: ...
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"date" : "2019-07-23",
"moreResults" : true,
"resultSetSize" : 1,
"accounts" : [ {
"custodyAccount" : "0012345-000",
"type" : "DEPOT MAX MUSTER",
"customer" : "0012345 Max Muster",
"positions" : [ {
"valorNumber" : "000001189343-000",
"valorName" : "LYXOR ETF EURO STOXX 50 FCP DIST",
"isin" : "FR0007054358",
"valorCurrency" : "CHF",
"currency" : "EUR",
"currentPrice" : 29.84,
"quantity" : 3505,
"marketValutation" : 104589.2,
"valorCategory" : "250 - FUNDS SECURITIES",
"lastMovement" : "2018-12-07",
"acqPrice" : 123236.26,
"avePrice" : 35.16,
"profLoss" : -18647.06
}]
} ]
}
Access depot details including list of depot positions for a defined depot.
Request Parameters
name | type | description | default | constraints |
---|---|---|---|---|
Authorization | header | Bearer <token> | ||
customer | path | The customer number to filter the list of depots | regex: ((?<=/)[0-9]{0,7})? | |
depot | path | The depot number for which to retrieve the depot details information | ||
firstPosition | query | (optional) Set the position of the first result to retrieve (offset), defaults to 0 | 0 | int |
maxResults | query | (optional) Set the maximum number of results to retrieve (row_count), defaults to 100, max. 2500 | 100 | int |
order | query | (optional) Defines the ordering of the result where order is one of (desc, asc), defaults to asc | asc |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | CustodyAccounts (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | CustodyAccounts (JSON) | The custody account details including list of depot positions for the selected customer. |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
GET CustodyAccounts Depot Transactions (filtered)
GET /v2/custodyaccounts/{customer}-{depot}/transactions
Request
GET https://olbtest.bankfrick.li/webapi/v2/custodyaccounts/0012345-000/transactions
Content-Type: */*
Accept: application/json
Authorization: ...
...
GET https://olb.bankfrick.li/webapi/v2/custodyaccounts/0012345-000/transactions
Content-Type: */*
Accept: application/json
Authorization: ...
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"date" : "2019-07-23",
"moreResults" : true,
"resultSetSize" : 1,
"transactions" : [ {
"refid" : "123456",
"status" : "BOOKED",
"orderType" : "VCN - REDEMPTION",
"valorNumber" : "000000008882",
"valorName" : "ACTIVE BOND FUND PLUS - CHF",
"isin" : "LI0326842163",
"rate" : 100.34,
"transactionDate" : "2019-04-21",
"quantity" : 200,
"courtage" : 0,
"fees" : 0,
"exchange" : "011 - BALZERS",
"currency" : "CHF",
"totalAmount" : 20068
} ]
}
Access order book with list of depot transactions within the defined period.
Request Parameters
name | type | description | default | constraints |
---|---|---|---|---|
Authorization | header | Bearer <token> | ||
customer | path | The customer number to filter the list of depots | ||
depot | path | The depot number for which to retrieve the depot details information | ||
firstPosition | query | (optional) Set the position of the first result to retrieve (offset), defaults to 0 | 0 | int |
fromDate | query | (optional) Starting date of the timespan for which to retrieve the data. The date should be provided in ISO 8601 format: YYYY-MM-DD, defaults to current day minus 30 days | ||
maxAmount | query | (optional) Maximum amount for a transaction to appear in the report, this parameter should be URL-Encoded | ||
maxResults | query | (optional) Set the maximum number of results to retrieve (row_count), defaults to 100, max. 2500 | 100 | int |
minAmount | query | (optional) Minimum amount for a transaction to appear in the report, this parameter should be URL-Encoded | ||
order | query | (optional) Defines the ordering of the result where order is one of (desc, asc), defaults to asc | asc | |
toDate | query | (optional) Ending date of the timespan for which to retrieve the data. The date should be provided in ISO 8601 format: YYYY-MM-DD |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | CustodyAccountsTransactions (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | CustodyAccountsTransactions (JSON) | The custody account details including list of depot positions for the selected customer. |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
Info
Utility resource to receive status information from the backend. This is the only resource which can be used by anyone without any authorization. It can be used to test connectivity and the general availability of the service. In later releases, this method also returns important system messages which would normally be shows on the login screen.
GET
GET /v2/info
Request
GET https://olbtest.bankfrick.li/webapi/v2/info
Content-Type: */*
Accept: application/json
...
GET https://olb.bankfrick.li/webapi/v2/info
Content-Type: */*
Accept: application/json
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"version" : "2.2.5-20180831-1144",
"environment" : "production",
"messages" : [ {
"title" : "Maintenance",
"message" : "Due to maintenance work, online banking will not be available on 26.07.2021 from 05:00 to 06:00. We apologize for any inconvenience."
} ]
}
Get the server status information. This includes the current version number of the application on the server as well as the current environment. If available, global status messages are returned as well.
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | Info (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | Info (JSON) | The status information as json object |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
RequestTan
Request a TAN challenge in order to sign one or multiple transactions with the SignTransactionWithTan message.
POST
POST /v2/requestTan
Request a tan for previously created transactions used to sign the transactions. This will send a tan via the selected method to the contact. Only one tan challenge can be active per contact at a time and must be resolved within the returned expire time.
Request
POST https://olbtest.bankfrick.li/webapi/v2/requestTan
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"orderIds" : [ 20771, 20772 ],
"method" : "SMS_TAN"
}
POST https://olb.bankfrick.li/webapi/v2/requestTan
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"orderIds" : [ 20771, 20772 ],
"method" : "SMS_TAN"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"challengeId" : "c6f8dd20-aad0-11e8-98d0-529269fb1459",
"expires" : "2020-08-22T10:07:02.895"
}
Request Parameters
name | type | description |
---|---|---|
Authorization | header | Bearer <token> |
Signature | header | <signature> |
algorithm | header | The used signing algorithm, e.g. rsa-sha512 |
Request Body
media type | data type | description |
---|---|---|
application/json | RequestTan (JSON) | The request TAN body |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | RequestTanResponse (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | RequestTanResponse (JSON) | The request TAN response message as json object |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
DELETE
DELETE /v2/requestTan
Request
DELETE https://olbtest.bankfrick.li/webapi/v2/requestTan
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"challengeId" : "c6f8dd20-aad0-11e8-98d0-529269fb1459"
}
DELETE https://olb.bankfrick.li/webapi/v2/requestTan
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"challengeId" : "c6f8dd20-aad0-11e8-98d0-529269fb1459"
}
Response
HTTP/1.1 204 No Content
Content-Type: application/json
Signature: ...
algorithm: ...
...
Delete a ongoing TAN request challenge.
Request Parameters
name | type | description |
---|---|---|
Authorization | header | Bearer <token> |
Signature | header | <signature> |
algorithm | header | The used signing algorithm, e.g. rsa-sha512 |
Request Body
media type | data type | description |
---|---|---|
application/json | DeleteRequestTan (JSON) | The request TAN delete body |
orderIds | array of number | The order ids (as assigned from the server) to request a tan for. Either orderIds, customIds or combination of both must be given. |
customIds | array of string | The custom ids (as assigned from the client) to request a tan for. Either orderIds, customIds or combination of both must be given. |
Response Codes
code | condition | type |
---|---|---|
204 | Request successful |
Response Body
media type | data type | description |
---|---|---|
application/json | object (JSON) | No content |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
POST marketorder
POST /v2/requestTan/marketorder
Request a tan for previously created orders used to sign the market orders. This will send a tan via the selected method to the contact. Only one tan challenge can be active per contact at a time and must be resolved within the returned expire time.
Request
POST https://olbtest.bankfrick.li/webapi/v2/requestTan/marketorder
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"marketorderIds" : [ 20771, 20772 ],
"method" : "SMS_TAN"
}
POST https://olb.bankfrick.li/webapi/v2/requestTan/marketorder
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"marketorderIds" : [ 20771, 20772 ],
"method" : "SMS_TAN"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"challengeId" : "c6f8dd20-aad0-11e8-98d0-529269fb1459",
"expires" : "2020-08-22T10:07:02.895"
}
Request Parameters
name | type | description |
---|---|---|
Authorization | header | Bearer <token> |
Signature | header | <signature> |
algorithm | header | The used signing algorithm, e.g. rsa-sha512 |
Request Body
media type | data type | description |
---|---|---|
application/json | RequestTanOrder (JSON) | The request TAN body |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | RequestTanResponse (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | RequestTanResponse (JSON) | The request TAN response message as json object |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
Sign Transaction with TAN
With this message, one or multiple payment orders can be approved by the contact with a TAN that was previously requested by the RequestTan message. Only payment orders can be approved that were previously referred in the TAN challenge request. Only one TAN challenge can be active at the time per API-Key.
POST
POST /v2/signTransactionWithTan
Request
POST https://olbtest.bankfrick.li/webapi/v2/signTransactionWithTan
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"challengeId" : "c6f8dd20-aad0-11e8-98d0-529269fb1459",
"tan" : "123456"
}
POST https://olb.bankfrick.li/webapi/v2/signTransactionWithTan
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"challengeId" : "c6f8dd20-aad0-11e8-98d0-529269fb1459",
"tan" : "123456"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"moreResults" : false,
"resultSetSize" : 1,
"transactions" : [ {
"orderId" : 20771,
"customId" : "4711",
"type" : "SEPA",
"state" : "PREPARED",
"amount" : "1000.00",
"currency" : "EUR",
"valuta" : "2018-08-02",
"express" : false,
"reference" : "Invoice number 123",
"debitor" : {
"accountNumber" : "00012345/001.000.001",
"iban" : "LI6808811000000001234"
},
"creditor" : {
"name" : "Satoshi Nakamoto",
"iban" : "DE12500105170648489890",
"bic" : "INGDDEFFXXX",
"creditInsitution" : "ING-DiBa GERMANY"
},
"creator" : "6789 Satoshi Nakamoto",
"right" : "Bevollmächtigter kollektiv zu 2",
"groupPolicy" : "Group intern",
"group" : 1,
"quorum" : 2,
"approvals" : [ {
"contact" : "6789 Satoshi Nakamoto",
"group" : 1,
"dateOfApproval" : "2018-08-22T10:07:02"
} ]
} ]
}
Sign a transaction with a previously requested tan.
Request Parameters
name | type | description |
---|---|---|
Authorization | header | Bearer <token> |
Signature | header | <signature> |
algorithm | header | The used signing algorithm, e.g. rsa-sha512 |
Request Body
media type | data type | description |
---|---|---|
application/json | SignTransactionsWithTan (JSON) | The list of signed transactions as json object. |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | Transactions (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | Transactions (JSON) | The list of signed transactions as json object. |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
POST /v2/signTransactionWithTan/marketorder
Request
POST https://olbtest.bankfrick.li/webapi/v2/signTransactionWithTan/marketorder
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"challengeId" : "c6f8dd20-aad0-11e8-98d0-529269fb1459",
"tan" : "123456"
}
POST https://olb.bankfrick.li/webapi/v2/signTransactionWithTan/marketorder
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"challengeId" : "c6f8dd20-aad0-11e8-98d0-529269fb1459",
"tan" : "123456"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"moreResults" : false,
"resultSetSize" : 1,
"marketorders" : [ {
"marketorderId" : 123,
"customId" : "M123",
"date" : "2020-10-11",
"state" : "PREPARED",
"tradingType" : "BUY",
"totalQuantity" : 2,
"instrument" : {
"valoren" : "00000130666",
"suffix" : "000",
"symbol" : "BTC",
"name" : "BITCOINS",
"additionalName" : "BITCOINS USD",
"currency" : "USD",
"domicile" : "LI",
"denomination" : 1.0E-6,
"type" : "CRYPTO_CURRENCIES",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "2020-10-10T17:49:04",
"price" : 11317.796311,
"currency" : "USD",
"percentPrice" : false
}
},
"depot" : [ {
"accountNumber" : "1234567/001.000.001",
"name" : "Satoshi Nakamoto",
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 1,
"riskClassification" : "CONFIRMATION_REQUIRED",
"knowledge" : "CONFIRMED"
}, {
"accountNumber" : "1234567/001.000.001",
"name" : "Satoshi Nakamoto",
"iban" : "LI6808811000000001234",
"depot" : "1234567-001",
"quantity" : 1,
"riskClassification" : "CONFIRMATION_REQUIRED",
"knowledge" : "CONFIRMED"
} ]
} ]
}
Sign a transaction with a previously requested tan.
Request Parameters
name | type | description |
---|---|---|
Authorization | header | Bearer <token> |
Signature | header | <signature> |
algorithm | header | The used signing algorithm, e.g. rsa-sha512 |
Request Body
media type | data type | description |
---|---|---|
application/json | SignTransactionsWithTan (JSON) | The sign transactions with tan message body |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | Marketorders (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | Marketorders (JSON) | The list of signed orders as json object. |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
Sign Transaction without TAN
With this resource, one or multiple transactions/orders can be approved without a TAN challenge. The contact must be eligible for this resource and it might be used to automate the creation and approval of orders without direct user interaction. You can only create an API key with the authorization to sign transactions without a TAN if it has been activated by us for your API key beforehand. If needed kindly get in contact with us at help@bankfrick.li
POST
POST /v2/signTransactionWithoutTan
Request
POST https://olbtest.bankfrick.li/webapi/v2/signTransactionWithoutTan
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"orderIds" : [ 20771, 20772 ]
}
POST https://olb.bankfrick.li/webapi/v2/signTransactionWithoutTan
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"orderIds" : [ 20771, 20772 ]
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"moreResults" : false,
"resultSetSize" : 1,
"transactions" : [ {
"orderId" : 20771,
"customId" : "4711",
"type" : "SEPA",
"state" : "PREPARED",
"amount" : "1.000,00",
"currency" : "EUR",
"valuta" : "2018-08-02",
"express" : false,
"reference" : "Invoice number 123",
"debitor" : {
"accountNumber" : "00012345/001.000.001",
"iban" : "LI6808811000000001234"
},
"creditor" : {
"name" : "Satoshi Nakamoto",
"iban" : "DE12500105170648489890",
"bic" : "INGDDEFFXXX",
"creditInsitution" : "ING-DiBa GERMANY"
},
"creator" : "6789 Satoshi Nakamoto",
"right" : "Bevollmächtigter kollektiv zu 2",
"groupPolicy" : "Group intern",
"group" : 1,
"quorum" : 2,
"approvals" : [ {
"contact" : "6789 Satoshi Nakamoto",
"group" : 1,
"dateOfApproval" : "2018-08-22T10:07:02"
} ]
} ]
}
Sign a transaction without previously requesting a tan. This resource must be activated for the contact in the backend.
Request Parameters
name | type | description |
---|---|---|
Authorization | header | Bearer <token> |
Signature | header | <signature> |
algorithm | header | The used signing algorithm, e.g. rsa-sha512 |
Request Body
media type | data type | description |
---|---|---|
application/json | SignTransactionsWithoutTan (JSON) | The sign transactions without tan message body |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | Transactions (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | Transactions (JSON) | The list of signed transactions as json object. |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
POST /v2/signTransactionWithoutTan/marketorder
Request
POST https://olbtest.bankfrick.li/webapi/v2/signTransactionWithoutTan/marketorder
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"marketorderIds" : [ 20771 ]
}
POST https://olb.bankfrick.li/webapi/v2/signTransactionWithoutTan/marketorder
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"marketorderIds" : [ 20771 ]
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"moreResults" : false,
"resultSetSize" : 1,
"marketorders" : [ {
"marketorderId" : 123,
"customId" : "M123",
"date" : "2020-10-11",
"state" : "PREPARED",
"tradingType" : "BUY",
"totalQuantity" : 2,
"instrument" : {
"valoren" : "00000130666",
"suffix" : "000",
"symbol" : "BTC",
"name" : "BITCOINS",
"additionalName" : "BITCOINS USD",
"currency" : "USD",
"domicile" : "LI",
"denomination" : 1.0E-6,
"type" : "CRYPTO_CURRENCIES",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "2020-10-10T17:49:04",
"price" : 11317.796311,
"currency" : "USD",
"percentPrice" : false
}
},
"depot" : [ {
"accountNumber" : "1234567/001.000.001",
"name" : "Satoshi Nakamoto",
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 1,
"riskClassification" : "CONFIRMATION_REQUIRED",
"knowledge" : "CONFIRMED"
}, {
"accountNumber" : "1234567/001.000.001",
"name" : "Satoshi Nakamoto",
"iban" : "LI6808811000000001234",
"depot" : "1234567-001",
"quantity" : 1,
"riskClassification" : "CONFIRMATION_REQUIRED",
"knowledge" : "CONFIRMED"
} ]
} ]
}
Sign an order without previously requesting a tan. The contact must be eligible for this resource. If the order requires MiFID confirmation, the order must first be confirmed before it can be signed.
Request Parameters
name | type | description |
---|---|---|
Authorization | header | Bearer <token> |
Signature | header | <signature> |
algorithm | header | The used signing algorithm, e.g. rsa-sha512 |
Request Body
media type | data type | description |
---|---|---|
application/json | SignOrdersWithoutTan (JSON) | The sign transactions without tan message body |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | Marketorders (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | Marketorders (JSON) | The list of signed orders as json object. |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
Trading
Resource for searching of securities, query of valuation rates, entry of a market order and MIFID confirmation.
DELETE
DELETE /v2/trading
Request
DELETE https://olbtest.bankfrick.li/webapi/v2/trading
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"marketorderIds" : [ 20771 ]
}
DELETE https://olb.bankfrick.li/webapi/v2/trading
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"marketorderIds" : [ 20771 ]
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"moreResults" : false,
"resultSetSize" : 1,
"marketorders" : [ {
"marketorderId" : 123,
"customId" : "M123",
"date" : "2020-10-11",
"state" : "PREPARED",
"tradingType" : "BUY",
"totalQuantity" : 2,
"instrument" : {
"valoren" : "00000130666",
"suffix" : "000",
"symbol" : "BTC",
"name" : "BITCOINS",
"additionalName" : "BITCOINS USD",
"currency" : "USD",
"domicile" : "LI",
"denomination" : 1.0E-6,
"type" : "CRYPTO_CURRENCIES",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "2020-10-10T17:49:04",
"price" : 11317.796311,
"currency" : "USD",
"percentPrice" : false
}
},
"depot" : [ {
"accountNumber" : "1234567/001.000.001",
"name" : "Max Muster",
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 1,
"riskClassification" : "CONFIRMATION_REQUIRED",
"knowledge" : "CONFIRMED"
}, {
"accountNumber" : "1234567/001.000.001",
"name" : "Max Muster",
"iban" : "LI6808811000000001234",
"depot" : "1234567-001",
"quantity" : 1,
"riskClassification" : "CONFIRMATION_REQUIRED",
"knowledge" : "CONFIRMED"
} ]
} ]
}
Service to reject market orders. Only market orders that are not yet fully approved and in state PREPARED can be rejected.
Request Parameters
name | type | description |
---|---|---|
Authorization | header | Bearer <token> |
Signature | header | <signature> |
algorithm | header | The used signing algorithm, e.g. rsa-sha512 |
Request Body
media type | data type | description |
---|---|---|
application/json | DeleteMarketorders (JSON) | The reject market orders json object |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | MarketOrders (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | MarketOrders (JSON) | The list of rejected market orders |
Response Headers
name | description |
---|---|
signature | <signature> |
Trading-Hours | contains a note about the current stock exchange trading hours |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
GET
GET /v2/trading
Request
GET https://olbtest.bankfrick.li/webapi/v2/trading
Content-Type: application/json
Accept: application/json
Authorization: ...
...
GET https://olb.bankfrick.li/webapi/v2/trading
Content-Type: application/json
Accept: application/json
Authorization: ...
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"moreResults" : false,
"resultSetSize" : 1,
"marketorders" : [ {
"marketorderId" : 123,
"customId" : "M123",
"date" : "2020-10-11",
"state" : "PREPARED",
"tradingType" : "BUY",
"totalQuantity" : 2,
"instrument" : {
"valoren" : "00000130666",
"suffix" : "000",
"symbol" : "BTC",
"name" : "BITCOINS",
"additionalName" : "BITCOINS USD",
"currency" : "USD",
"domicile" : "LI",
"denomination" : 1.0E-6,
"type" : "CRYPTO_CURRENCIES",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "2020-10-10T17:49:04",
"price" : 11317.796311,
"currency" : "USD",
"percentPrice" : false
}
},
"depot" : [ {
"accountNumber" : "1234567/001.000.001",
"name" : "Max Muster",
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 1,
"riskClassification" : "CONFIRMATION_REQUIRED",
"knowledge" : "CONFIRMED"
}, {
"accountNumber" : "1234567/001.000.001",
"name" : "Max Muster",
"iban" : "LI6808811000000001234",
"depot" : "1234567-001",
"quantity" : 1,
"riskClassification" : "CONFIRMATION_REQUIRED",
"knowledge" : "CONFIRMED"
} ]
} ]
}
Get the list of market orders based on the search parameters.
If a combination of filter parameters are applied, only orders that match all of the conditions are returned.
Request Parameters
name | type | description | default | constraints |
---|---|---|---|---|
Authorization | header | Bearer <token> | ||
customId | query | (optional) Filter for custom marketorder id as it was assigned by the client on order creation. | ||
depot | query | (optional) Filter for depot number. | ||
firstPosition | query | (optional) Set the position of the first result to retrieve (offset), defaults to 0 | 0 | int |
fromDate | query | (optional) Starting date of the timespan for which to retrieve the data. The date should be provided in ISO 8601 format: YYYY-MM-DD, defaults to current day minus 30 days. | ||
isin | query | (optional) Filter for isin. | ||
maxResults | query | (optional) Set the maximum number of results to retrieve (row_count), defaults to 100, max. 2500 | 100 | int |
order | query | (optional) Defines the ordering of the result where order is one of (desc, asc), defaults to asc | asc | |
status | query | (optional) Filter for for market order status. The status of market orders that where created in the context of online banking can be one of (PREPARED, IN_PROGRESS, DELETED, EXPIRED, EXECUTED, REJECTED). | ||
toDate | query | (optional) Ending date of the timespan for which to retrieve the data. The date should be provided in ISO 8601 format: YYYY-MM-DD. | ||
valoren | query | (optional) Filter for valoren number. |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | MarketOrders (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | MarketOrders (JSON) | The list of market orders according to the filter parameters as json object. |
Response Headers
name | description |
---|---|
signature | <signature> |
Trading-Hours | contains a note about the current stock exchange trading hours |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
PUT
PUT /v2/trading
Request
PUT https://olbtest.bankfrick.li/webapi/v2/trading
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"marketorders" : [ {
"customId" : "1234",
"valoren" : "130666",
"suffix" : "000",
"tradingType" : "BUY",
"totalQuantity" : 2,
"depot" : [ {
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 1
}, {
"iban" : "LI6808811000000001234",
"depot" : "1234567-001",
"quantity" : 1
} ]
} ]
}
PUT https://olb.bankfrick.li/webapi/v2/trading
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"marketorders" : [ {
"customId" : "1234",
"valoren" : "130666",
"suffix" : "000",
"tradingType" : "BUY",
"totalQuantity" : 2,
"depot" : [ {
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 1
}, {
"iban" : "LI6808811000000001234",
"depot" : "1234567-001",
"quantity" : 1
} ]
} ]
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"moreResults" : false,
"resultSetSize" : 1,
"marketorders" : [ {
"marketorderId" : 123,
"customId" : "M123",
"date" : "2020-10-11",
"state" : "PREPARED",
"tradingType" : "BUY",
"totalQuantity" : 2,
"instrument" : {
"valoren" : "00000130666",
"suffix" : "000",
"symbol" : "BTC",
"name" : "BITCOINS",
"additionalName" : "BITCOINS USD",
"currency" : "USD",
"domicile" : "LI",
"denomination" : 1.0E-6,
"type" : "CRYPTO_CURRENCIES",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "2020-10-10T17:49:04",
"price" : 11317.796311,
"currency" : "USD",
"percentPrice" : false
}
},
"depot" : [ {
"accountNumber" : "1234567/001.000.001",
"name" : "Max Muster",
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 1,
"riskClassification" : "CONFIRMATION_REQUIRED",
"knowledge" : "CONFIRMED"
}, {
"accountNumber" : "1234567/001.000.001",
"name" : "Max Muster",
"iban" : "LI6808811000000001234",
"depot" : "1234567-001",
"quantity" : 1,
"riskClassification" : "CONFIRMATION_REQUIRED",
"knowledge" : "CONFIRMED"
} ]
} ]
}
Creates a new market order. A block order is implicitly created if the order contains more than one target depot.
Request Parameters
name | type | description | default | constraints |
---|---|---|---|---|
Authorization | header | Bearer <token> | ||
Signature | header | <signature> | ||
algorithm | header | The used signing algorithm, e.g. rsa-sha512 | ||
test | query | (optional) When given as true, the system validates the input and tries to process it but does not perform the final creation of the orders. | false | boolean |
Request Body
media type | data type |
---|---|
application/json | CreateMarketorders (JSON) |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | MarketOrders (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | MarketOrders (JSON) | The list of market orders that where or would be created in the system. |
Response Headers
name | description |
---|---|
signature | <signature> |
Trading-Hours | contains a note about the current stock exchange trading hours |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
POST Trading confirmMifid
POST /v2/trading/confirmMifid
Request
POST https://olbtest.bankfrick.li/webapi/v2/trading/confirmMifid
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"marketorderIds" : [ 123, 456 ],
"confirmRiskClassification" : false,
"confirmKnowledge" : true
}
POST https://olb.bankfrick.li/webapi/v2/trading/confirmMifid
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"marketorderIds" : [ 123, 456 ],
"confirmRiskClassification" : false,
"confirmKnowledge" : true
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"moreResults" : false,
"resultSetSize" : 1,
"marketorders" : [ {
"marketorderId" : 123,
"customId" : "M123",
"date" : "2020-10-11",
"state" : "PREPARED",
"tradingType" : "BUY",
"totalQuantity" : 2,
"instrument" : {
"valoren" : "00000130666",
"suffix" : "000",
"symbol" : "BTC",
"name" : "BITCOINS",
"additionalName" : "BITCOINS USD",
"currency" : "USD",
"domicile" : "LI",
"denomination" : 1.0E-6,
"type" : "CRYPTO_CURRENCIES",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "2020-10-10T17:49:04",
"price" : 11317.796311,
"currency" : "USD",
"percentPrice" : false
}
},
"depot" : [ {
"accountNumber" : "1234567/001.000.001",
"name" : "Max Muster",
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 1,
"riskClassification" : "CONFIRMATION_REQUIRED",
"knowledge" : "CONFIRMED"
}, {
"accountNumber" : "1234567/001.000.001",
"name" : "Max Muster",
"iban" : "LI6808811000000001234",
"depot" : "1234567-001",
"quantity" : 1,
"riskClassification" : "CONFIRMATION_REQUIRED",
"knowledge" : "CONFIRMED"
} ]
} ]
}
MiFID confirmation must explicitly be given if required before requesting a tan for approval of the order.
Request Parameters
name | type | description |
---|---|---|
Authorization | header | Bearer <token> |
Signature | header | <signature> |
algorithm | header | The used signing algorithm, e.g. rsa-sha512 |
Request Body
media type | data type | description |
---|---|---|
application/json | ConfirmMifid (JSON) | The confirm mifid message body |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | MarketOrders (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | MarketOrders (JSON) | The list of confirmed marketorders as json object. |
Response Headers
name | description |
---|---|
signature | <signature> |
Trading-Hours | contains a note about the current stock exchange trading hours |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
GET Trading Instrument
GET /v2/trading/instrument
Request
GET https://olbtest.bankfrick.li/webapi/v2/trading/instrument
Content-Type: application/json
Accept: application/json
Authorization: ...
...
GET https://olb.bankfrick.li/webapi/v2/trading/instrument
Content-Type: application/json
Accept: application/json
Authorization: ...
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"valoren" : "000000130666",
"suffix" : "000",
"symbol" : "BTC",
"name" : "BITCOINS",
"companyName" : "BITCOINS USD",
"currency" : "USD",
"domicile" : "LI",
"denomination" : 1.0E-6,
"type" : "CRYPTO_CURRENCIES",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "2020-10-02T09:48:04",
"price" : 10504.56688,
"currency" : "USD",
"percentPrice" : false
}
}
Reads a specific instrument including the recent valuation price. The requested securities must be identified either by isin or valoren number and suffix.
Request Parameters
name | type | description |
---|---|---|
Authorization | header | Bearer <token> |
isin | query | the isin of the financial instrument |
suffix | query | the suffix in case if the valoren number is not unique |
valoren | query | the valoren number |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | Instrument (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | Instrument (JSON) | the found value paper information |
Response Headers
name | description |
---|---|
signature | <signature> |
Trading-Hours | contains a note about the current stock exchange trading hours |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
GET Trading Search
GET /v2/trading/search
Request
GET https://olbtest.bankfrick.li/webapi/v2/trading/search
Content-Type: application/json
Accept: application/json
Authorization: ...
...
GET https://olb.bankfrick.li/webapi/v2/trading/search
Content-Type: application/json
Accept: application/json
Authorization: ...
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"moreResults" : true,
"resultSetSize" : 2,
"securities" : [ {
"valoren" : "000000130496",
"suffix" : "000",
"symbol" : "BCH",
"name" : "BITCOIN CASH",
"companyName" : "BITCOIN CASH CHF",
"currency" : "CHF",
"domicile" : "LI",
"denomination" : 1.0E-6,
"type" : "CRYPTO_CURRENCIES",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "2020-10-02T09:48:04",
"price" : 202.73984,
"currency" : "CHF",
"percentPrice" : false
}
}, {
"valoren" : "000000130497",
"suffix" : "000",
"symbol" : "BCH",
"name" : "BITCOIN CASH",
"companyName" : "BITCOIN CASH EUR",
"currency" : "EUR",
"domicile" : "LI",
"denomination" : 1.0E-6,
"type" : "CRYPTO_CURRENCIES",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "2020-10-02T09:48:04",
"price" : 188.086896,
"currency" : "EUR",
"percentPrice" : false
}
} ]
}
Allows to search for financial instruments.
Request Parameters
name | type | description | default | constraints |
---|---|---|---|---|
Authorization | header | Bearer <token> | ||
firstPosition | query | (optional) Set the position of the first result to retrieve (offset), defaults to 0 | 0 | int |
input | query | the string to search for (must be url encoded), can be ISIN, NSIN-CH or generic search string. | ||
maxResults | query | (optional) Set the maximum number of results to retrieve (row_count), defaults to 100, max. 2500 | 100 | int |
order | query | (optional) Defines the ordering of the result where order is one of (desc, asc), defaults to asc | asc | |
type | query | (optional) can be used to limit the securities types of the search result | "BONDS" or "CRYPTO_CURRENCIES" or "FUNDS" or "STOCKS" or "STRUCTURED_PRODUCTS" |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | InstrumentSearchResult (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | InstrumentSearchResult (JSON) | The list of found securities as search result |
Response Headers
name | description |
---|---|
signature | <signature> |
Trading-Hours | contains a note about the current stock exchange trading hours |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
GET Trading {marketorderId}
GET /v2/{marketorderId}
Request
GET https://olbtest.bankfrick.li/webapi/v2/trading/{marketorderId}
Content-Type: application/json
Accept: application/json
Authorization: ...
...
GET https://olb.bankfrick.li/webapi/v2/trading/{marketorderId}
Content-Type: application/json
Accept: application/json
Authorization: ...
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"moreResults" : false,
"resultSetSize" : 1,
"marketorders" : [ {
"marketorderId" : 123,
"customId" : "M123",
"date" : "2020-10-11",
"state" : "PREPARED",
"tradingType" : "BUY",
"totalQuantity" : 2,
"instrument" : {
"valoren" : "00000130666",
"suffix" : "000",
"symbol" : "BTC",
"name" : "BITCOINS",
"additionalName" : "BITCOINS USD",
"currency" : "USD",
"domicile" : "LI",
"denomination" : 1.0E-6,
"type" : "CRYPTO_CURRENCIES",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "2020-10-10T17:49:04",
"price" : 11317.796311,
"currency" : "USD",
"percentPrice" : false
}
},
"depot" : [ {
"accountNumber" : "1234567/001.000.001",
"name" : "Max Muster",
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 1,
"riskClassification" : "CONFIRMATION_REQUIRED",
"knowledge" : "CONFIRMED"
}, {
"accountNumber" : "1234567/001.000.001",
"name" : "Max Muster",
"iban" : "LI6808811000000001234",
"depot" : "1234567-001",
"quantity" : 1,
"riskClassification" : "CONFIRMATION_REQUIRED",
"knowledge" : "CONFIRMED"
} ]
} ]
}
Get the list of market orders based on the search parameters.
If a combination of filter parameters are applied, only orders that match all of the conditions are returned.
Request Parameters
name | type | description | default | constraints |
---|---|---|---|---|
Authorization | header | Bearer <token> | ||
marketorderId | path | (optional) The market order id as it was assigned by the online banking. | regex: ((?<=/)[0-9]{0,20})? | |
customId | query | (optional) Filter for custom marketorder id as it was assigned by the client on order creation. | ||
depot | query | (optional) Filter for depot number. | ||
firstPosition | query | (optional) Set the position of the first result to retrieve (offset), defaults to 0 | 0 | int |
fromDate | query | (optional) Starting date of the timespan for which to retrieve the data. The date should be provided in ISO 8601 format: YYYY-MM-DD, defaults to current day minus 30 days. | ||
isin | query | (optional) Filter for isin. | ||
maxResults | query | (optional) Set the maximum number of results to retrieve (row_count), defaults to 100, max. 2500 | 100 | int |
order | query | (optional) Defines the ordering of the result where order is one of (desc, asc), defaults to asc | asc | |
status | query | (optional) Filter for for market order status. The status of market orders that where created in the context of online banking can be one of (PREPARED, IN_PROGRESS, DELETED, EXPIRED, EXECUTED, REJECTED). | ||
toDate | query | (optional) Ending date of the timespan for which to retrieve the data. The date should be provided in ISO 8601 format: YYYY-MM-DD. | ||
valoren | query | (optional) Filter for valoren number. |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | MarketOrders (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | MarketOrders (JSON) | The list of market orders according to the filter parameters as json object. |
Response Headers
name | description |
---|---|
signature | <signature> |
Trading-Hours | contains a note about the current stock exchange trading hours |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
Transactions
Get the list of payment orders based on the search parameters. The user also requires corresponding read privileges for the customer account. If a combination of filter parameters are applied, only orders that match all of the conditions are returned.
Here is a brief overview of the transaction state lifecycle:
- PREPARED: After a transaction is created via the API, it enters the
PREPARED
state, indicating it is ready for further processing. - IN_PROGRESS: When the transaction is signed, it moves to the
IN_PROGRESS
state, meaning it is being processed. - EXECUTED: If the transaction is successfully processed, it moves to the
EXECUTED
state. - BOOKED: After the transaction is fully processed and finalized by the core banking system, it reaches the
BOOKED
state.BOOKED
is the final state and it cannot change afterwards. - REJECTED: A transaction can be marked as
REJECTED
if it is deleted by the user or rejected by the bank. - EXPIRED: If the transaction is not signed within seven days, it automatically expires and enters the
EXPIRED
state. - DELETED: If a planned future transaction is deleted by the user before execution, it moves to the
DELETED
state.
DELETE
DELETE /v2/transactions
Request
DELETE https://olbtest.bankfrick.li/webapi/v2/deleteTransaction
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"orderIds" : [ 20771 ]
}
DELETE https://olb.bankfrick.li/webapi/v2/deleteTransaction
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"orderIds" : [ 20771 ]
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"moreResults" : false,
"resultSetSize" : 1,
"transactions" : [ {
"orderId" : 20771,
"customId" : "4711",
"type" : "SEPA",
"state" : "DELETED",
"amount" : 1000.00,
"currency" : "EUR",
"valuta" : "2018-08-02",
"valutaIsExecutionDate" : true,
"express" : false,
"reference" : "Invoice number 123",
"debitor" : {
"accountNumber" : "00012345/001.000.001",
"iban" : "LI6808811000000001234"
},
"creditor" : {
"name" : "Satoshi Nakamoto",
"iban" : "DE12500105170648489890",
"bic" : "INGDDEFFXXX",
"creditInstitution" : "ING-DiBa GERMANY"
},
"creator" : "6789 Max Muster",
"right" : "Bevollmächtigter kollektiv zu 2",
"groupPolicy" : "Group intern",
"approvals" : [ {
"contact" : "6789 Max Muster"
} ]
} ]
}
Service to reject or delete not yet executed payment orders. Payment orders that are not yet fully approved and in state PREPARED can be rejected with a tan. Reject payment orders that are not yet fully approved, only payment orders in the PREPARED state and are created by the user can be rejected.
Request Parameters
name | type | description |
---|---|---|
Authorization | header | Bearer <token> |
Signature | header | <signature> |
algorithm | header | The used signing algorithm, e.g. rsa-sha512 |
Request Body
media type | data type | description |
---|---|---|
application/json | DeleteTransaction (JSON) | The request TAN delete body |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | Transactions (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | Transactions (JSON) | No content |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
GET
GET /v2/transactions
GET /v2/transactions/{orderId}
Request
GET https://olbtest.bankfrick.li/webapi/v2/transactions
Content-Type: application/json
Accept: application/json
Authorization: ...
...
GET https://olb.bankfrick.li/webapi/v2/transactions
Content-Type: application/json
Accept: application/json
Authorization: ...
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"moreResults" : false,
"resultSetSize" : 1,
"transactions" : [
{
"orderId": 12345,
"transactionNr": "1234567",
"serviceType": "SIC",
"transactionCode": "102-Transfer int. with Avis/Geb",
"state": "BOOKED",
"amount": -200.00,
"totalAmount": 10060.00,
"currency": "CHF",
"valuta": "2020-04-01",
"bookingDate": "2020-04-01",
"reference": "Payment to Satoshi Nakamoto",
"debitor": {
"name": "Michael Tester",
"iban": "LI6808811000000001234",
"bic": "BFRILI22XXX",
"creditInstitution": "Bank Frick and Co. AG"
},
"creditor": {
"name": "Satoshi Nakamoto",
"iban": "DE12500105170648489890",
"bic": "INGDDEFFXXX",
"creditInstitution": "ING-DiBa GERMANY"
}
}
]
}
Get the list of payment orders based on the search parameters. The user also requires corresponding read privileges for the customer account.
If a combination of filter parameters are applied, only orders that match all of the conditions are returned.
Request Parameters
name | type | description | default | constraints |
---|---|---|---|---|
Authorization | header | Bearer <token> | ||
customId | query | (optional) Filter for custom id as it was assigned by the client on transaction creation. When searching for BOOKED transactions, the fromDate filter must be set accordingly, otherwise the query might not return the expected result. | ||
transactionNr | query | (optional) Filter for transaction number. Only relevant for booked transaction. If a payment order should be addressed, use orderId of the coresponding account path instead. | ||
firstPosition | query | (optional) Set the position of the first result to retrieve (offset), defaults to 0 | 0 | int |
fromDate | query | (optional) Starting date of the timespan for which to retrieve the data. The date should be provided in ISO 8601 format: YYYY-MM-DD, defaults to current day minus 30 days. | ||
iban | query | (optional) Filter for transactions only related to account iban. This iban must relate to an account the user has access to, otherwise the query will return no result. | ||
maxAmount | query | (optional) Maximum amount for a transaction to appear in the report, this parameter should be URL-Encoded. | ||
maxResults | query | (optional) Set the maximum number of results to retrieve (row_count), defaults to 100, max. 2500 | 100 | int |
minAmount | query | (optional) Minimum amount for a transaction to appear in the report, this parameter should be URL-Encoded. | ||
order | query | (optional) Defines the ordering (by orderId) of the result where order is one of (desc, asc), defaults to asc | asc | |
reference | query | (optional) Filter for the reference (transaction information), this parameter should be URL-Encoded. | ||
searchIban | query | (optional) Filter for the beneficiary account iban. | ||
searchName | query | (optional) Filter for the beneficiary name, this parameter should be URL-Encoded. | ||
status | query | (optional) Filter for for transaction status. The status of transactions that where created in the context of online banking can be one of (PREPARED, IN_PROGRESS, DELETED, EXPIRED, EXECUTED, REJECTED, DELETION_REQUESTED). The status of booked transactions on the account is BOOKED. Note: BOOKED transactions (as known from the camt053 export) can only be queried by setting this filter to BOOKED otherwise only transactions that were created in the context of online banking are returned. | ||
toDate | query | (optional) Ending date of the timespan for which to retrieve the data. The date should be provided in ISO 8601 format: YYYY-MM-DD. | ||
type | query | (optional) Filter for transaction type, expected one of (INTERNAL, BANK_INTERNAL, SEPA, FOREIGN, RED, ORANGE). Only relevant for transactions that were created in the context of online banking. |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | Transactions (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | Transactions (JSON) | No content |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
PUT
PUT /v2/transactions
Request
PUT https://olbtest.bankfrick.li/webapi/v2/transactions
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"transactions" : [ {
"customId" : "A4711",
"type" : "SEPA",
"amount" : 1000.00,
"currency" : "EUR",
"express" : true,
"valuta" : "2020-01-03",
"valutaIsExecutionDate" : true,
"reference" : "some individual text",
"charge" : "SHA",
"debitor" : {
"iban" : "LI6808811000000001234"
},
"creditor" : {
"name" : "Satoshi Nakamoto",
"iban" : "DE12500105170648489890"
}
} ]
}
PUT https://olb.bankfrick.li/webapi/v2/transactions
Content-Type: application/json
Accept: application/json
Authorization: ...
Signature: ...
algorithm: ...
{
"transactions" : [ {
"customId" : "A4711",
"type" : "SEPA",
"amount" : 1000.00,
"currency" : "EUR",
"express" : true,
"valuta" : "2020-01-03",
"valutaIsExecutionDate" : true,
"reference" : "some individual text",
"charge" : "SHA",
"debitor" : {
"iban" : "LI6808811000000001234"
},
"creditor" : {
"name" : "Satoshi Nakamoto",
"iban" : "DE12500105170648489890"
}
} ]
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
Signature: ...
algorithm: ...
{
"moreResults" : false,
"resultSetSize" : 1,
"transactions" : [ {
"orderId" : 20771,
"customId" : "A4711",
"type" : "SEPA",
"state" : "PREPARED",
"amount" : 1000.00,
"currency" : "EUR",
"valuta" : "2020-01-03",
"valutaIsExecutionDate" : true,
"express" : false,
"reference" : "some individual text",
"debitor" : {
"accountNumber" : "00012345/001.000.001",
"iban" : "LI6808811000000001234"
},
"creditor" : {
"name" : "Satoshi Nakamoto",
"iban" : "DE12500105170648489890",
"bic" : "INGDDEFFXXX",
"creditInstitution" : "ING-DiBa GERMANY"
},
"creator" : "6789 Max Muster",
"createDate" : "2020-01-03T08:00:22",
"right" : "Bevollmächtigter kollektiv zu 2",
"groupPolicy" : "No constraint",
"quorum" : 1
} ]
}
Create new payment orders similar to the create payment order dialogs within the online banking frontend. The required fields and field validation for each payment order depends on the order type. The frontend dialog and pain001 mapping rules apply for field validation. New payment orders can only be created for accounts with proper write privileges for the customers account. Created payment orders will be added to the system in the PREPARED state and can be approved using the “signTransaction” methods. The application must assign an idempotent customId to allow the system to identify duplicate requests. The server will then assign a unique orderId which is used to identify the transaction later for approval or deletion.
Request Parameters
name | type | description | default | constraints |
---|---|---|---|---|
Authorization | header | Bearer <token> | ||
Signature | header | <signature> | ||
algorithm | header | The used signing algorithm, e.g. rsa-sha512 | ||
test | query | (optional) When given as true, the system validates the input and tries to process it but does not perform the final creation of the orders. Does not check for unique customIds. | false | boolean |
Request Body
media type | data type | description |
---|---|---|
application/json | CreateTransaction (JSON) | The request TAN delete body |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | Transactions (JSON) |
201 | Transactions created successfully | Transactions (JSON) |
Response Body
media type | data type | description |
---|---|---|
application/json | Transactions (JSON) | No content |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
camt.052
This message is used to download a camt.052 report. This export format only contains booked transactions as intraday information and provides a near real time view of the accounts.
GET
GET /v2/camt052
Request
GET https://olbtest.bankfrick.li/webapi/v2/camt052?iban=LI11188110101101K001E
Content-Type: */*
Accept: application/xml
Authorization: ...
Signature: ...
algorithm: ...
DELETE https://olb.bankfrick.li/webapi/v2/camt052?iban=LI11188110101101K001E
Content-Type: */*
Accept: application/xml
Authorization: ...
Signature: ...
algorithm: ...
Retrieve a camt.052 (intraday information) report.
Request Parameters
name | type | description |
---|---|---|
Authorization | header | Bearer <token> |
Signature | header | <signature> |
algorithm | header | The used signing algorithm, e.g. rsa-sha512 |
iban | query | (mandatory) The iban of the account to get the camt.052 report for. If an account does not have an iban, accountnumber must be used. |
accountnumber | query | (mandatory) The account number of the account to get the camt.052 report for, this parameter should be URL-Encoded. Either iban or accountnumber must be given; the report can only be created for one account per request. If an account does not have an iban, accountnumber must be used. |
maxAmount | query | (optional) Maximum amount for a transaction to appear in the report, this parameter should be URL-Encoded |
minAmount | query | (optional) Minimum amount for a transaction to appear in the report, this parameter should be URL-Encoded |
reference | query | (optional) Search in the reference (transaction information), this parameter should be URL-Encoded |
searchIban | query | (optional) Search of either the beneficiary account iban or sender account, depending on the transaction type, this parameter should be URL-Encoded |
searchName | query | (optional) Search of either the beneficiary name or sender account, depending on the transaction type, this parameter should be URL-Encoded |
Response Body
media type | data type | description |
---|---|---|
application/xml | Document (XML) | The camt052 response message as xml. |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | Document (XML) |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
Response
Response
HTTP/1.1 200 OK
Content-Type: application/xml
Signature: ...
algorithm: ...
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Document xmlns:ns2="urn:iso:std:iso:20022:tech:xsd:camt.052.001.07">
<BkToCstmrAcctRpt>
<GrpHdr>
<MsgId>1536245450821-b6de4c97-08c4-4a74-92</MsgId>
<CreDtTm>2018-09-06T16:50:50.755+02:00</CreDtTm>
<MsgRcpt>
<Nm>Firstname Lastname</Nm>
<PstlAdr>
<AdrLine>Lastname Firstname</AdrLine>
<AdrLine>123 Road</AdrLine>
<AdrLine>123123 Balzers</AdrLine>
<AdrLine>LIECHTENSTEIN</AdrLine>
</PstlAdr>
<Id>
<PrvtId>
<Othr>
<Id>12345</Id>
</Othr>
</PrvtId>
</Id>
</MsgRcpt>
<MsgPgntn>
<PgNb>1</PgNb>
<LastPgInd>true</LastPgInd>
</MsgPgntn>
</GrpHdr>
<Rpt>
<Id>1234245450922-1a85b471-e995-1234-9e</Id>
<CreDtTm>2018-09-06T17:00:00.755+02:00</CreDtTm>
<FrToDt/>
<Acct>
<Id>
<IBAN>LI12345610609195K000E</IBAN>
</Id>
<Tp>
<Cd>CACC</Cd>
</Tp>
<Ccy>EUR</Ccy>
<Nm>CURRENT ACCOUNT </Nm>
<Ownr>
<Nm>Company Name Ltd.</Nm>
<PstlAdr>
<AdrLine>Company Name Ltd.</AdrLine>
<AdrLine>8 Street</AdrLine>
<AdrLine>The Central</AdrLine>
<AdrLine>123456 SINGAPORE</AdrLine>
</PstlAdr>
<Id>
<PrvtId>
<Othr>
<Id>0600000</Id>
</Othr>
</PrvtId>
</Id>
</Ownr>
<Svcr>
<FinInstnId>
<BICFI>BFRILI22XXX</BICFI>
<Nm>Bank Frick & Co. Aktiengesellschaft</Nm>
<PstlAdr>
<AdrLine>Landstrasse 14</AdrLine>
<AdrLine>9496 Balzers</AdrLine>
<AdrLine>Liechtenstein</AdrLine>
</PstlAdr>
<Othr>
<Id>12345</Id>
<Issr>VAT-ID</Issr>
</Othr>
</FinInstnId>
</Svcr>
</Acct>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>OPBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">100000.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2018-09-03</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>ITBD</Cd>
<Prtry>Interim booked balance</Prtry>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">100000.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2018-09-06</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>ITAV</Cd>
<Prtry>Interim value balance</Prtry>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">100000.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2018-09-06</Dt>
</Dt>
</Bal>
<Ntry>
<Amt Ccy="EUR">100.00</Amt>
<CdtDbtInd>DBIT</CdtDbtInd>
<Sts>
<Cd>PDNG</Cd>
</Sts>
<ValDt>
<Dt>2018-08-09</Dt>
</ValDt>
<AcctSvcrRef>payment order id: 1234</AcctSvcrRef>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>ICDT</Cd>
<SubFmlyCd>FICT</SubFmlyCd>
</Fmly>
</Domn>
<Prtry>
<Cd>BANK_INTERNAL</Cd>
<Issr>Bank Frick payment order type</Issr>
</Prtry>
</BkTxCd>
<NtryDtls>
<TxDtls>
<RltdPties>
<Dbtr>
<Pty>
<Nm>Company Name Ltd.</Nm>
</Pty>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>LI12345610609195K000E</IBAN>
</Id>
</DbtrAcct>
<Cdtr>
<Pty>
<Nm>Company XY Ltd.</Nm>
</Pty>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>LI12345610609195K000E</IBAN>
</Id>
</CdtrAcct>
</RltdPties>
<RltdAgts>
<DbtrAgt>
<FinInstnId>
<BICFI>BFRILI22XXX</BICFI>
<Nm>Bank Frick & Co. Aktiengesellschaft</Nm>
</FinInstnId>
</DbtrAgt>
<CdtrAgt>
<FinInstnId>
<BICFI>BFRILI22XXX</BICFI>
<Nm>Bank Frick and Co. Aktiengesellschaft, LIECHTENSTEIN</Nm>
</FinInstnId>
</CdtrAgt>
</RltdAgts>
</TxDtls>
</NtryDtls>
</Ntry>
</Rpt>
</BkToCstmrAcctRpt>
</Document>
Header
Path: Prefix: Document/BkToCstmrRpt
Path | Format | Mandatory | Description |
---|---|---|---|
GrpHdr | yes | Header | |
GrpHdr/MsgId | 1-35 characters | yes | Message Id |
GrpHdr/CreDtTm | IsoDateTime | yes | creation date |
GrpHdr/MsgRcpt | no | Receiver | |
GrpHdr/MsgRcpt/Nm | 1-140 characters | no | Name of the receiver |
GrpHdr/MsgRcpt/PstlAdr | no | address | |
GrpHdr/MsgRcpt/PstlAdr/AdrLine | 1-70 characters | no, 0..7 | row of an address |
GrpHdr/MsgRcpt/Id | no | Id | |
GrpHdr/MsgRcpt/Id/PrvtId | yes (or OrgId) | ||
GrpHdr/MsgRcpt/Id/PrvtId/Othr/Id | 1-35 characters | Identification of the private individual | |
GrpHdr/MsgPgntn | no | ||
GrpHdr/MsgPgntn/PgNb | 1-5 digits | yes | Page number (in paging) |
GrpHdr/MsgPgntn/LastPgInd | boolean | yes | Last page? |
Rpt | yes, 1…n | ||
Rpt/Id | 1-35 characters | yes | identification |
Rpt/CreDtTm | IsoDateTime | no | creation date |
Rpt/FrToDt | no | Time interval of the move-out | |
Rpt/FrToDt/FrDtTm | IsoDateTime | yes | Starting time of the account statement |
Rpt/FrToDt/ToDtTm | IsoDateTime | yes | End time of the account statement |
Rpt/Acct | yes | ||
Rpt/Acct/Id | yes | account identification structure | |
Rpt/Acct/Id/IBAN | [A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30} | yes (or Othr) | |
Rpt/Acct/Tp | no | account type | |
Rpt/Acct/Tp/Cd | 1-4 characters | no | account type |
Rpt/Acct/Ccy | 3 capital letters | no | currency |
Rpt/Acct/Nm | 1-70 characters | no | account name |
Rpt/Acct/Ownr | no | ||
Rpt/Acct/Ownr/Nm | no | Name of the Owner | |
Rpt/Acct/Ownr/PstlAdr | no | address | |
Rpt/Acct/Ownr/PstlAdr/AdrLine | no | row of an address | |
Rpt/Acct/Ownr/Id | no | ||
Rpt/Acct/Ownr/Id/PrvtId | no | ||
Rpt/Acct/Ownr/Id/PrvtId/Othr | no | ||
Rpt/Acct/Ownr/Id/PrvtId/Othr/Id | no | Id | |
Rpt/Acct/Svcr | no | ||
Rpt/Acct/Svcr/FinInstnId | yes | identification | |
Rpt/Acct/Svcr/FinInstnId/BICFI | BIC ( [A-Z]{6,6}[A-Z2-9][A-NP-Z0-9][A-Z0-9]{3,3}){0,1} | no | BIC |
Rpt/Acct/Svcr/FinInstnId/Nm | 1-140 characters | no | Name of the bank |
Rpt/Acct/Svcr/FinInstnId/PstlAdr | no, 0..7 | mailing address | |
Rpt/Acct/Svcr/FinInstnId/PstlAdr/AdrLine | 1-70 characters | no | address bar |
Rpt/Acct/Svcr/FinInstnId/Othr | no | Further identification | |
Rpt/Acct/Svcr/FinInstnId/Othr/Id | 1-35 characters | yes | identification number |
Rpt/Acct/Svcr/FinInstnId/Orth/Issr | 1-35 characters | no | Type of identification number |
Rpt/Bal | yes, 1..n | ||
Rpt/Ntry | no, 0..n | transaction |
Balance
Path: Prefix: Document/BkToCstmrRpt/Rpt/Bal
Example of opening and closing balance
Path | Format | Mandatory | Description |
---|---|---|---|
Tp | yes | ||
Tp/CdOrPrtry | yes | ||
Tp/CdOrPrtry/Cd | 1 to 4 characters | yes (or Prtry) | |
Tp/CdOrPrtry/Prtry | Amt 18 digits (5 decimal places) | yes | amount |
Amt/@Ccy | 1-3 characters | yes | currency |
CdtDbtInd | Enumeration | yes | |
Dt | yes | date | |
Dt/Dt | YYYY-MM-DD | yes (or DtTm) | Date (as opposed to a date with time) |
Entry
Path: Prefix: Document/BkToCstmrRpt/Rpt/Ntry
Path | Format | Mandatory | Description |
---|---|---|---|
Amt | 18 digits (5 decimal places) | yes | amount |
Amt/@Ccy | 3 letters | yes | currency |
CdtDbtInd | enumeration | yes | Debit/Credit |
Sts | yes | Status | |
Sts/Cd | 1-4 characters | yes (or Prtry) | Status |
ValDt | no | valuta date | |
ValDt/Dt | YYYY-MM-DD | yes (or DtTm) | date |
AcctSvcrRef | 1 to 35 characters (if available) | no | Account Servicer Reference |
BkTxCd | yes | ||
BkTxCd/Domn | no | Domaine | |
BkTxCd/Domn/Cd | 1-4 characters | yes | |
BkTxCd/Domn/Fmly | yes | ||
BkTxCd/Domn/Fmly/Cd | 1-4 characters | yes | |
BkTxCd/Domn/Fmly/SubfmlyCd | 1-4 characters | yes | |
BkTxCd/Prtry | no | ||
BkTxCd/Prtry/Cd | max 35. characters | yes | |
BkTxCd/Prtry/Issr | max 35. characters | no | |
NtryDtls | no, 0..n | ||
NtryDtls/TxDtls | no, 0..n | ||
NtryDtls/TxDtls/RltdPties | no | ||
NtryDtls/TxDtls/RltdPties/Dbtr | no | ||
NtryDtls/TxDtls/RltdPties/Dbtr/Pty | yes (or Agt) | ||
NtryDtls/TxDtls/RltdPties/Dbtr/Pty/Nm 1-140 characters | no | ||
NtryDtls/TxDtls/RltdPties/DbtrAcct | no | ||
NtryDtls/TxDtls/RltdPties/DbtrAcct/Id | yes | ||
NtryDtls/TxDtls/RltdPties/DbtrAcct/Id/IBAN | [A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30} | yes (or Othr) | |
NtryDtls/TxDtls/RltdPties/Cdtr | no | ||
NtryDtls/TxDtls/RltdPties/Cdtr/Pty | yes (or Agt) | ||
NtryDtls/TxDtls/RltdPties/Cdtr/Pty/Nm | 1-140 characters | no | |
NtryDtls/TxDtls/RltdPties/CdtrAcct | no | ||
NtryDtls/TxDtls/RltdPties/CdtrAcct/Id | yes | ||
NtryDtls/TxDtls/RltdPties/CdtrAcct/Id/IBAN | [A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30} | yes (or Othr) | |
NtryDtls/TxDtls/RltdAgts | no | ||
NtryDtls/TxDtls/RltdAgts/DbtrAgt | no | ||
NtryDtls/TxDtls/RltdAgts/DbtrAgt/FinInstnId | yes | ||
NtryDtls/TxDtls/RltdAgts/DbtrAgt/FinInstnId/BICFI | BIC ( [A-Z]{6,6}[A-Z2-9][A-NP-Z0-9][A-Z0-9]{3,3}{0,1} ) | no | |
NtryDtls/TxDtls/RltdAgts/DbtrAgt/FinInstnId/Nm | 1 - 140 characters | no | |
NtryDtls/TxDtls/RltdAgts/CdtrAgt | no | ||
NtryDtls/TxDtls/RltdAgts/CdtrAgt/FinInstnId | yes | financial institution | |
NtryDtls/TxDtls/RltdAgts/CdtrAgt/FinInstnId/BICFI | BIC ( [A-Z]{6,6}[A-Z2-9][A-NP-Z0-9][A-Z0-9]{3,3}{0,1} ) | no | BIC |
NtryDtls/TxDtls/RltdAgts/CdtrAgt/FinInstnId/Nm | 1 - 140 characters | no | Name |
camt.053
This message is used to download a camt053 report. This export format only contains booked transactions either from successful processed payment orders or other external transactions, similar to the “Executed” tab in the transaction overview of the online banking frontend.
GET
GET /v2/camt053
Request
GET https://olbtest.bankfrick.li/webapi/v2/camt053?iban=LI11188110101101K001E
Content-Type: */*
Accept: application/xml
Authorization: ...
Signature: ...
algorithm: ...
DELETE https://olb.bankfrick.li/webapi/v2/camt053?iban=LI11188110101101K001E
Content-Type: */*
Accept: application/xml
Authorization: ...
Signature: ...
algorithm: ...
Retrieve a camt.053 report.
Request Parameters
name | type | description |
---|---|---|
Authorization | header | Bearer <token> |
Signature | header | <signature> |
algorithm | header | The used signing algorithm, e.g. rsa-sha512 |
iban | query | (mandatory) The iban of the account to get the camt.053 report for. If an account does not have an iban, accountnumber must be used. |
accountnumber | query | (mandatory) The account number of the account to get the camt.053 report for, this parameter should be URL-Encoded. Either iban or accountnumber must be given; the report can only be created for one account per request. If an account does not have an iban, accountnumber must be used. |
fromDate | query | (optional) Starting date of the timespan for which to retrieve the data. The date should be provided in ISO 8601 format: YYYY-MM-DD, defaults to current day minus 30 days. |
toDate | query | (optional) Ending date of the timespan for which to retrieve the data. The date should be provided in ISO 8601 format: YYYY-MM-DD |
maxAmount | query | (optional) Maximum amount for a transaction to appear in the report, this parameter should be URL-Encoded |
minAmount | query | (optional) Minimum amount for a transaction to appear in the report, this parameter should be URL-Encoded |
reference | query | (optional) Search in the reference (transaction information), this parameter should be URL-Encoded |
searchIban | query | (optional) Search of either the beneficiary account iban or sender account, depending on the transaction type, this parameter should be URL-Encoded |
searchName | query | (optional) Search of either the beneficiary name or sender account, depending on the transaction type, this parameter should be URL-Encoded |
Response Body
media type | data type | description |
---|---|---|
application/xml | Document (XML) | The camt053 response message as xml. |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | Document (XML) |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
Response
Response
HTTP/1.1 200 OK
Content-Type: application/xml
Signature: ...
algorithm: ...
sts<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.07">
<BkToCstmrStmt>
<GrpHdr>
<MsgId>1524148795099-aaa9380b-0bed-44a2-8a</MsgId>
<CreDtTm>2018-04-19T16:39:50.954+02:00</CreDtTm>
<MsgRcpt>
<PstlAdr>
<AdrLine>Kundenname XY</AdrLine>
<AdrLine>123 Road</AdrLine>
<AdrLine>123123 Bern</AdrLine>
<AdrLine>SCHWEIZ</AdrLine>
</PstlAdr>
<Id>
<PrvtId>
<Othr>
<Id>5697</Id>
</Othr>
</PrvtId>
</Id>
</MsgRcpt>
<MsgPgntn>
<PgNb>1</PgNb>
<LastPgInd>true</LastPgInd>
</MsgPgntn>
</GrpHdr>
<Stmt>
<Id>1524148795099-b8258e37-ebc0-4c3f-92</Id>
<CreDtTm>2018-04-19T16:39:50.954+02:00</CreDtTm>
<FrToDt>
<FrDtTm>1970-01-01T00:00:00.000+01:00</FrDtTm>
<ToDtTm>2018-04-19T23:59:59.999+02:00</ToDtTm>
</FrToDt>
<Acct>
<Id>
<IBAN>LI50088110111111K000C</IBAN>
</Id>
<Tp>
<Cd>CACC</Cd>
</Tp>
<Ccy>EUR</Ccy>
<Nm>KONTOKORRENT </Nm>
<Ownr>
<Nm>Test Company (remitter)</Nm>
<PstlAdr>
<AdrLine>TEST COMPANY (REMITTER)</AdrLine>
<AdrLine>Test street 99</AdrLine>
<AdrLine>9472 Grabs</AdrLine>
<AdrLine>SCHWEIZ</AdrLine>
</PstlAdr>
<Id>
<PrvtId>
<Othr>
<Id>0606323</Id>
</Othr>
</PrvtId>
</Id>
</Ownr>
<Svcr>
<FinInstnId>
<BICFI>BFRILI22XXX</BICFI>
<Nm>Bank Frick & Co. Aktiengesellschaft</Nm>
<PstlAdr>
<AdrLine>Landstrasse 14</AdrLine>
<AdrLine>9496 Balzers</AdrLine>
<AdrLine>Liechtenstein</AdrLine>
</PstlAdr>
<Othr>
<Id>53884</Id>
<Issr>VAT-ID</Issr>
</Othr>
</FinInstnId>
</Svcr>
</Acct>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>OPBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">0.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2018-01-12+01:00</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>CLBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">1500.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2018-04-17+02:00</Dt>
</Dt>
</Bal>
<Ntry>
<Amt Ccy="EUR">305.00</Amt>
<CdtDbtInd>DBIT</CdtDbtInd>
<Sts>
<Cd>BOOK</Cd>
</Sts>
<BookgDt>
<Dt>2018-04-17+02:00</Dt>
</BookgDt>
<ValDt>
<Dt>2018-04-17+02:00</Dt>
</ValDt>
<AcctSvcrRef>2520486</AcctSvcrRef>
<BkTxCd>
<Domn>
<Cd>XTND</Cd>
<Fmly>
<Cd>NTAV</Cd>
<SubFmlyCd>NTAV</SubFmlyCd>
</Fmly>
</Domn>
<Prtry>
<Cd>081</Cd>
<Issr>Bank Frick OPID transaction code</Issr>
</Prtry>
</BkTxCd>
<NtryDtls>
<TxDtls>
<RmtInf>
<Ustrd>redemption foreign currency without Agio</Ustrd>
</RmtInf>
</TxDtls>
</NtryDtls>
</Ntry>
<Ntry>
<Amt Ccy="EUR">2097.00</Amt>
<CdtDbtInd>DBIT</CdtDbtInd>
<Sts>
<Cd>BOOK</Cd>
</Sts>
<BookgDt>
<Dt>2018-03-01+01:00</Dt>
</BookgDt>
<ValDt>
<Dt>2018-03-01+01:00</Dt>
</ValDt>
<AcctSvcrRef>2466849</AcctSvcrRef>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>ICDT</Cd>
<SubFmlyCd>ESCT</SubFmlyCd>
</Fmly>
</Domn>
<Prtry>
<Cd>116-reimbursement SWIFT </Cd>
<Issr>Bank Frick OPID transaction code</Issr>
</Prtry>
</BkTxCd>
<NtryDtls>
<TxDtls>
<RltdPties>
<Dbtr>
<Pty>
<Nm>TEST COMPANY (REMITTER) Test street 99</Nm>
</Pty>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>LI50088110111111K000C</IBAN>
</Id>
</DbtrAcct>
<Cdtr>
<Pty>
<Nm>BENEFICIARY_name</Nm>
</Pty>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>AT026000000001349870</IBAN>
</Id>
</CdtrAcct>
</RltdPties>
<RltdAgts>
<CdtrAgt>
<FinInstnId>
<Nm>TEST BANK</Nm>
</FinInstnId>
</CdtrAgt>
</RltdAgts>
<RmtInf>
<Ustrd>1109 7890 0011 6158</Ustrd>
</RmtInf>
</TxDtls>
</NtryDtls>
</Ntry>
<Ntry>
<Amt Ccy="EUR">1800.00</Amt>
<CdtDbtInd>DBIT</CdtDbtInd>
<Sts>
<Cd>BOOK</Cd>
</Sts>
<BookgDt>
<Dt>2018-01-15+01:00</Dt>
</BookgDt>
<ValDt>
<Dt>2018-01-16+01:00</Dt>
</ValDt>
<AcctSvcrRef>2411569</AcctSvcrRef>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>ICDT</Cd>
<SubFmlyCd>PRCT</SubFmlyCd>
</Fmly>
</Domn>
<Prtry>
<Cd>117-REIMBURSEMENT SWIFT - Express </Cd>
<Issr>Bank Frick OPID transaction code</Issr>
</Prtry>
</BkTxCd>
<NtryDtls>
<TxDtls>
<RltdPties>
<Dbtr>
<Pty>
<Nm>TEST COMPANY (REMITTER) Test street 99</Nm>
</Pty>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>LI50088110111111K000C</IBAN>
</Id>
</DbtrAcct>
<Cdtr>
<Pty>
<Nm>BENEFICIARY_name</Nm>
</Pty>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>AT026000000001349870</IBAN>
</Id>
</CdtrAcct>
</RltdPties>
<RltdAgts>
<CdtrAgt>
<FinInstnId>
<Nm>TEST BANK </Nm>
</FinInstnId>
</CdtrAgt>
</RltdAgts>
<RmtInf>
<Ustrd>ACCOUNTING ENTRY DSR0B21E7BSW0</Ustrd>
<Ustrd>Test Company (remitter) </Ustrd>
<Ustrd>20.1.-27.1.18</Ustrd>
</RmtInf>
</TxDtls>
</NtryDtls>
</Ntry>
</Stmt>
</BkToCstmrStmt>
</Document>
Header
Path: Prefix: Document/BkToCstmrRpt
Path | Format | Mandatory | Description |
---|---|---|---|
GrpHdr | yes | Header | |
GrpHdr/MsgId | 1-35 characters | yes | Message Id |
GrpHdr/CreDtTm | IsoDateTime | yes | creation date |
GrpHdr/MsgRcpt | no | Receiver | |
GrpHdr/MsgRcpt/PstlAdr | no | address | |
GrpHdr/MsgRcpt/PstlAdr/AdrLine | 1-70 characters | no, 0..7 | row of an address |
GrpHdr/MsgRcpt/Id | no | Id | |
GrpHdr/MsgRcpt/Id/PrvtId | yes (or OrgId) | ||
GrpHdr/MsgRcpt/Id/PrvtId/Othr/Id | 1-35 characters | Identification of the private individual | |
GrpHdr/MsgPgntn | no | ||
GrpHdr/MsgPgntn/PgNb | 1-5 digits | yes | Page number (in paging) |
GrpHdr/MsgPgntn/LastPgInd | boolean | yes | Last page? |
Stmt | yes, 1…n | ||
Stmt/Id | 1-35 characters | yes | identification |
Stmt/CreDtTm | IsoDateTime | no | creation date |
Stmt/FrToDt | no | Time interval of the move-out | |
Stmt/FrToDt/FrDtTm | IsoDateTime | yes | Starting time of the account statement |
Stmt/FrToDt/ToDtTm | IsoDateTime | yes | End time of the account statement |
Stmt/Acct | yes | ||
Stmt/Acct/Id | yes | account identification structure | |
Stmt/Acct/Id/IBAN | [A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30} yes (or Othr) | ||
Stmt/Acct/Tp | no | account type | |
Stmt/Acct/Tp/Cd | 1-4 characters | no | account type |
Stmt/Acct/Ccy | 3 capital letters | no | currency |
Stmt/Acct/Nm | 1-70 characters | no | account name |
Stmt/Acct/Ownr | no | ||
Stmt/Acct/Ownr/Nm | no | Name of the Owner | |
Stmt/Acct/Ownr/PstlAdr | no | address | |
Stmt/Acct/Ownr/PstlAdr/AdrLine | no | row of an address | |
Stmt/Acct/Ownr/Id | |||
Stmt/Acct/Ownr/Id/PrvtId | |||
Stmt/Acct/Ownr/Id/PrvtId/Othr | |||
Stmt/Acct/Ownr/Id/PrvtId/Othr/Id | no | Id | |
Stmt/Acct/Svcr | no | ||
Stmt/Acct/Svcr/FinInstnId | yes | identification | |
Stmt/Acct/Svcr/FinInstnId/BICFI | BIC ( [A-Z]{6,6}[A-Z2-9][A-NP-Z0-9][A-Z0-9]{3,3}{0,1} ) | no | BIC |
Stmt/Acct/Svcr/FinInstnId/Nm | 1-140 characters | no | Name of the bank |
Stmt/Acct/Svcr/FinInstnId/PstlAdr | no, 0..7 | mailing address | |
Stmt/Acct/Svcr/FinInstnId/PstlAdr/AdrLine | 1-70 characters | no | address bar |
Stmt/Acct/Svcr/FinInstnId/Othr | no | Further identification | |
Stmt/Acct/Svcr/FinInstnId/Othr/Id | 1-35 characters | yes | identification number |
Stmt/Acct/Svcr/FinInstnId/Orth/Issr | 1-35 characters | no | Type of identification number |
Stmt/Bal | yes, 1..n | ||
Stmt/Ntry | no, 0..n | transaction |
Balance
Path: Prefix: Document/BkToCstmrStmt/Stmt/Bal
Example of opening and closing balance
Path | Format | Mandatory | Description |
---|---|---|---|
Tp | yes | ||
Tp/CdOrPrtry | yes | ||
Tp/CdOrPrtry/Cd | 1 to 4 characters | yes (or Prtry) | |
Tp/CdOrPrtry/Prtry | Amt 18 digits (5 decimal places) | yes | amount |
Amt/@Ccy | 1-3 characters | yes | currency |
CdtDbtInd | Enumeration | yes | |
Dt | yes | date | |
Dt/Dt | YYYY-MM-DD | yes (or DtTm) | Date (as opposed to a date with time) |
Entry
Path: Prefix: Document/BkToCstmrStmt/Stmt/Ntry
Path | Format | Mandatory | Description |
---|---|---|---|
Amt | 18 digits (5 decimal places) | yes | amount |
Amt/@Ccy | 3 letters | yes | currency |
CdtDbtInd | enumeration | yes | Debit/Credit |
Sts | yes | Status | |
Sts/Cd | 1-4 characters | yes (or Prtry) | Status |
BookgDt | no | entry date | |
BookgDt/Dt | YYYY-MM-DD | yes (alternate DtTm) | date |
ValDt | no | valuta date | |
ValDt/Dt | YYYY-MM-DD | yes (or DtTm) | date |
AcctSvcrRef | 1 to 35 characters (if available) | no | Account Servicer Reference |
BkTxCd | yes | ||
BkTxCd/Domn | no | Domain | |
BkTxCd/Domn/Cd | 1-4 characters | yes | |
BkTxCd/Domn/Fmly | yes | ||
BkTxCd/Domn/Fmly/Cd 1-4 characters | yes | ||
BkTxCd/Domn/Fmly/SubfmlyCd | 1-4 characters | yes | |
BkTxCd/Prtry | no | ||
BkTxCd/Prtry/Cd | max 35. characters | yes | |
BkTxCd/Prtry/Issr | max 35. characters | no | |
NtryDtls | no, 0..n | ||
NtryDtls/TxDtls | no, 0..n | ||
NtryDtls/TxDtls/RltdPties | no | ||
NtryDtls/TxDtls/RltdPties/Dbtr | no | ||
NtryDtls/TxDtls/RltdPties/Dbtr/Pty | yes (or Agt) | ||
NtryDtls/TxDtls/RltdPties/Dbtr/Pty/Nm | 1-140 characters | no | |
NtryDtls/TxDtls/RltdPties/DbtrAcct | no | ||
NtryDtls/TxDtls/RltdPties/DbtrAcct/Id | yes | ||
NtryDtls/TxDtls/RltdPties/DbtrAcct/Id/IBAN | [A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30} | yes (or Othr) | |
NtryDtls/TxDtls/RltdPties/Cdtr | no | ||
NtryDtls/TxDtls/RltdPties/Cdtr/Pty | yes (or Agt) | ||
NtryDtls/TxDtls/RltdPties/Cdtr/Pty/Nm | 1-140 characters | no | |
NtryDtls/TxDtls/RltdPties/CdtrAcct | no | ||
NtryDtls/TxDtls/RltdPties/CdtrAcct/Id | yes | ||
NtryDtls/TxDtls/RltdPties/CdtrAcct/Id/IBAN | [A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30} | yes (or Othr) | |
NtryDtls/TxDtls/RltdAgts | no | ||
NtryDtls/TxDtls/RltdAgts/CdtrAgt | no | ||
NtryDtls/TxDtls/RltdAgts/CdtrAgt/FinInstnId | yes | financial institution | |
NtryDtls/TxDtls/RltdAgts/CdtrAgt/FinInstnId/Nm | 1 - 140 characters | no | Name |
NtryDtls/TxDtls/RmtInf | no | purpose of use | |
NtryDtls/TxDtls/RmtInf/Ustrd | 1 - 140 characters | no | purpose of use |
pain.001
Resource for the pain.001 message upload.
PUT
PUT /v2/pain001
Upload a pain.001 message. Note that errors respectively the status regarding pain001 is returned as pain002 message with the HTTP 200 or 207 status code.
Request Parameters
name | type | description |
---|---|---|
Authorization | header | Bearer <token> |
Signature | header | <signature> |
algorithm | header | The used signing algorithm, e.g. rsa-sha512 |
Request Body
media type | data type | description |
---|---|---|
application/xml | Document (XML) | The pain.001 message as xml. |
Response Codes
code | condition | type |
---|---|---|
200 | Request successful | Document (XML) |
207 | Request successful, but with pain.002 error states | Document (XML) |
Response Body
media type | data type | description |
---|---|---|
application/xml | Document (XML) | The pain.002 response message as xml. |
Response Headers
name | description |
---|---|
signature | <signature> |
algorithm | The used signing algorithm, e.g. rsa-sha512 |
Payment Types and Example Files
Description | Local Instrument | Creditor Account | Creditor Agent | Currency |
---|---|---|---|---|
Domestic Payment (CH/LI) - with IBAN | IBAN in CH/LI | CHF/EUR | ||
Domestic Payment (CH/LI) - with IBAN | IBAN in CH/LI | All except CHF/EUR | ||
Foreign Payment - SEPA | IBAN in Europe | EUR | ||
Foreign Payment not SEPA - SWIFT | IBAN | BIC | Any Currency | |
Foreign Payment not SEPA - SWIFT | Account Number | BIC | Any Currency |
Response
Header
Path | Format | Mandatory | Description |
---|---|---|---|
MsgId | string | yes | Checking for duplicates usually takes place at the Swiss financial institutions at document (message) level. This is why the „Message Identification“ element must have a unique value. The uniqueness is checked by most of the financial institutions over a period of at least 90 days. It is recommended that the „Message“ |
CreDtTm | string | yes | Recommendation: Should be the same as the actual date/time of creation. |
NbOfTxs | string | yes | If there is an error, the whole message is rejected. Messages that exceed 99,999 payments (C-Level) will be rejected by the financial institutions. Depending on the financial institution, the size of the message that can be delivered may be smaller. |
CtrlSum | decimal | Value is the same as the sum of all the „Amount elements“ („Instructed Amount“ or „Equivalent Amount“) (2.42) Recommendation: the control sum should be sent in this element in Level A. If there is an error, the whole message is rejected. | |
InitgPty (Group) | yes | At least one of the two elements „Name“ or „Identification“ must be sent. | |
InitgPty/Nm | string | Name of the message sender, maximum 70 characters. |
Payment
Path | Format | Mandatory | Description |
---|---|---|---|
PmtInfId | string | yes | Value must be unique within the whole message (is used as reference in the Status Report „pain.002“). Only the SWIFT character set is permitted for this element (see section 2.4.1). |
PmtMtd | string | yes | TRA and „TRF“: same meaning, no effect on the way the debit advices are controlled. In Switzerland the „TRA“ value is processed in the same way as the „TRF“ value, it has no special function. Furthermore, for check payments, the „CHK“ value is permitted. |
BtchBookg | boolean | The option „true“ is recommended. „true“: Wherever possible, one batch booking is made per „Payment Information“ (B). A separate B-level must be created for each currency being transferred. The booking is identified using the Payment Information Identification (B). „false“: One booking should be made for each „Credit Transfer Transaction Information“ (C). Bookings are usually identified by the „Payment Identification“ (C). Alternatively, the financial institution can also identify the booking using, for example, the „Payment Information Identification“ (B) element. If this element is not sent, then the booking proceeds as for „true“. | |
ReqdExctnDt | string | yes | Contains the required date of execution. Where appropriate, the value data is automatically modified to the next possible banking/Post Office business day. |
Dbtr (Group) | yes | The debtor is only identified by the „Debtor Account“ element. Information in the „Debtor“ field will be ignored. What is required is the master data for the financial institution for this debtor. | |
Dbtr/Nm | string | Recommendation: Use, maximum 70 characters. | |
DbtrAcct (Group) | yes | Recommendation: IBAN should be used. . However, „Other“ is currently also still permitted by some financial institutions for the proprietary account number. The „Type/Proprietary“ element can also be used to define the way the debit advice is controlled. When using the AOS „Additional participants“ (multi-banking), the third-party bank must be specified here. | |
DbtrAcct/Id/IBAN | string | Recommendation: Use. If used, „Other“ must not be present. | |
DbtrAgt (Group) | yes | The Swiss financial institutions recommend entering the BIC or IID (institutional identification) in this element. When using the AOS „Additional participants“ (multi-banking), the third-party bank must be specified here. | |
DbtrAgt/FinInstnId/BIC | string | BIC of the Debtor Bank. If used, then „Clearing System Member Identification“ must not be present. |
Transaction
Path | Format | Mandatory | Description |
---|---|---|---|
PmntId (Group) | yes | ||
PmntId/InstrId | string | Recommendation: Should be used and be unique within the B-Level. Only the SWIFT character set is permitted for this element | |
PmntId/EndToEndId | string | yes | Customer reference, normally forwarded as far as the beneficiary. Only the SWIFT character set is permitted for this element |
PmtTpInf/InstrPrty | string | Any information about the Express processing should be sent at B- Level, values in this element are ignored. | |
PmtTpInf/LclInstrm (Group) | |||
Amt/InstdAmt | yes | If used, then „Equivalent Amount“ must not be present. | |
Amt/InstdAmt/@Ccy | string | ||
CdtrAgt (Group) | |||
Cdtr/Nm | string | yes | Must be used if "Creditor" is used, maximum 70 characters. |
CdtrAcct/Id (Group) | yes | Recommendation: Whenever possible the IBAN should be used. Must be used if "Creditor Account" is used. | |
RmtInf/Strd/CdtrRefInf (Gruppe) | yes |
Case-Specific Attributes
Payment
Path | Format | Mandatory | Description |
---|---|---|---|
PmtTpInf | Can be used at B-Level or C-Level, but generally not in both at the same time. Some institutions permit it to be sent at both levels but not the same sub-element at both levels. | ||
PmtTpInf/SvcLvl | Service Level affects the way payment is made at the financial institution. The focus is on achieving the fastest possible credit for the creditor. | ||
PmtTpInf/SvcLvl/Cd | string |
Transaction
Path | Format | Mandatory | Description |
---|---|---|---|
CdtrAcct/Id/Othr/IBAN | string |
Transaction
Path | Format | Mandatory | Description |
---|---|---|---|
PmtTpInf/LclInstrm/Prtry | string | If used, then „Code“ must not be present. | |
CdtrAcct/Id/Othr/Id | string | Must be used if "Other" is used. | |
RmtInf/Strd/CdtrRefInf/Ref | string |
Transaction
Path | Format | Mandatory | Description |
---|---|---|---|
PmtTpInf/LclInstrm/Prtry | string | If used, then „Code“ must not be present. | |
CdtrAcct/Id/Othr/IBAN | string |
Transaction
Path | Format | Mandatory | Description |
---|---|---|---|
CdtrAgt/FinInstnId/BIC | string | If used, then "Clearing System Member Identification" must not be present. | |
CdtrAcct/Id/Othr/Id | string | Must be used if "Other" is used. |
Transaction
Path | Format | Mandatory | Description |
---|---|---|---|
CdtrAgt/FinInstnId/BIC | string | If used, then "Clearing System Member Identification" must not be present. | |
CdtrAcct/Id/Othr/IBAN | string |
Errors
code | condition | type |
---|---|---|
400 | Validation of input parameters failed | Errors (JSON) |
401 | If no JWT was provided or JWT is invalid | Errors (JSON) |
403 | API key is invalid or any other condition hinders the login | Errors (JSON) |
423 | The Authorization is valid but the user account is locked and cannot be accessed | Errors (JSON) |
Data Types
Account
Response
{
"account" : "00012345/001.000.001",
"type" : "CURRENT ACCOUNT",
"iban" : "LI6808811000000001234",
"customer" : "00012345 Satoshi Nakamoto",
"currency" : "CHF",
"balance" : 1000.0,
"available" : 0.0
}
A single account instance
Properties
name | data type | constraints | description |
---|---|---|---|
account | string | required | The account number of the account |
type | string | required | The type of the account |
iban | string | The iban of the account if exists | |
customer | string | required | The customer data of the account which consists of the customer number and name |
currency | string | required | The account currency |
balance | number | required | The current account balance |
available | number | The available amount of the account as defined in the online banking |
Accounts
Response
{
"date" : "2018-12-31",
"moreResults" : false,
"resultSetSize" : 2,
"accounts" : [ {
"account" : "00012345/001.000.001",
"type" : "CURRENT ACCOUNT",
"iban" : "LI6808811000000001234",
"customer" : "00012345 Satoshi Nakamoto",
"currency" : "CHF",
"balance" : 1000.0,
"available" : 0.0
}, {
"account" : "00012345/001.000.978",
"type" : "CURRENT ACCOUNT",
"iban" : "LI6808811000000001234",
"customer" : "00012345 Satoshi Nakamoto",
"currency" : "EUR",
"balance" : -1321.0,
"available" : 0.0
} ]
}
The accounts message response body.
Properties
name | data type | constraints | description |
---|---|---|---|
date | string | required | The balance date (today) |
moreResults | boolean | required | Attribute indicates that more results are available on the server |
resultSetSize | number | required | Number of results in the returned result set |
accounts | array of Account | The list of accounts |
Approval
Response
{
"contact" : "1234 Satoshi Nakamoto",
"group" : 1,
"dateOfApproval" : "2018-08-22T10:07:02"
}
A approval of a transaction.
Properties
name | data type | constraints | description |
---|---|---|---|
contact | string | The contact information about the user who gave the approval | |
group | number | The contacts group if a special group policy applies | |
dateOfApproval | string | The date the approval was given |
Authorize
Request
{
"key" : "YourAPIkeyFromOnlineBanking"
}
The authorization message request body.
Properties
name | data type | constraints | description |
---|---|---|---|
key | string | required | The previously generated API-Key (Personal Access Token) |
AuthorizeResponse
Response
{
"token" : "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJCYW5rIEZyaWNrIFdlYkFQSSIsInN1YiI6IlRhZ2VzYWJzY2hsdXNzIiwiY29udGFjdCI6IjY3ODkiLCJuYW1lIjoiTWF4IE11c3RlciIsInBlcm1pc3Npb25zIjpbImFjY291bnRzIiwidHJhbnNhY3Rpb25zIiwiY2FtdDA1MiIsImNhbXQwNTMiXSwiYXVkIjoicHJvZHVjdGlvbiIsImV4cCI6MTU0NjMwMDgwMCwiaWF0IjoxNTMzMTA5MzIzfQ.DlxpBZMGAZx1xK-UdA-s9SrHMrEIt60waF1kLYG6kCuTRMrcDiS3KR8p0bAyZaLUWlfSJF3TCMb2Tup5MyLFWc0fZRJfu0mBEyz74ZwbSN9iTrwzzsfIuX2E1d895hR1MgsMy2i1Qu-vwZgsW0WivnNCHBMLZH0jM94v1czt7f0"
}
The authorization message response body.
Properties
name | data type | constraints | description |
---|---|---|---|
token | string | required | The assigned JWT for the login request |
Charge
Enum values for the 'charge' field.
Properties
value | description |
---|---|
BEN | beneficiary pays costs |
OUR | sender pays costs |
SHA | shared costs |
ConfirmMifid
Example
{
"marketorderIds" : [ 12345, 12345 ],
"confirmRiskClassification" : true,
"confirmKnowledge" : true
}
Request body to confirm MiFID check result
Properties
name | data type | constraints | description |
---|---|---|---|
marketorderIds | array of number | required | A list of market order ids to be confirmed if MiFID confirmation is required |
confirmRiskClassification | boolean | required | Must be set to true in order to confirm the MiFID check result CONFIRMATION_REQURED for riskClassification of the instrument. |
confirmKnowledge | boolean | required | Must be set to true in order to confirm the MiFID check result CONFIRMATION_REQURED for riskClassification of the instrument. |
CreateMarketorders
Request
{
"marketorders" : [ {
"customId" : "4711",
"valoren" : "908440",
"suffix" : "001",
"isin" : "US0378331005",
"tradingType" : "SELL",
"totalQuantity" : 15.0,
"limit" : 100.05,
"validUntil" : "2020-08-27",
"depot" : [ {
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 15.0
}, {
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 15.0
} ]
}, {
"customId" : "4711",
"valoren" : "908440",
"suffix" : "001",
"isin" : "US0378331005",
"tradingType" : "BUY",
"totalQuantity" : 15.0,
"limit" : 100.05,
"validUntil" : "2020-08-27",
"depot" : [ {
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 15.0
}, {
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 15.0
} ]
} ]
}
The create marketorder request body.
Properties
name | data type | constraints | description |
---|---|---|---|
marketorders | array of Marketorder | required | the list of marketorders to be created |
CreateTransaction
Request
{
"transactions" : [ {
"customId" : "A4711",
"type" : "SEPA",
"amount" : 1000.00,
"currency" : "EUR",
"express" : true,
"valuta" : "2019-04-28",
"valutaIsExecutionDate" : true,
"reference" : "some individual text",
"charge" : "SHA",
"debitor" : {
"iban" : "LI6808811000000001234"
},
"creditor" : {
"name" : "Satoshi Nakamoto",
"iban" : "DE12500105170648489890"
}
}, {
"customId" : "A4712",
"type" : "FOREIGN",
"amount" : 1337.00,
"currency" : "EUR",
"express" : true,
"reference" : "some individual text",
"charge" : "SHA",
"debitor" : {
"iban" : "LI6808811000000001234"
},
"creditor" : {
"accountNumber" : "123456123",
"name" : "Satoshi Nakamoto",
"address" : "Street 100",
"postalcode" : "150004",
"city" : "Tokyo",
"country" : "Japan",
"bic" : "MHCBJPJ6",
"creditInstitution" : "MIZUHO BANK"
}
} ]
}
The create transactions request body.
Properties
name | data type | constraints | description |
---|---|---|---|
transactions | array of Transaction (new instance) | required | the list of transactions to be created |
CustodyAccounts
Example
{
"date" : "2018-12-31",
"moreResults" : false,
"resultSetSize" : 2,
"custodyAccount" : "00012345-000",
"type" : "DEPOT Satoshi Nakamoto",
"customer" : "00012345 Satoshi Nakamoto",
"positions" : [ {
"valorNumber" : "000037310703-000",
"valorName" : "BK FRICK CRYPTOCURRENCY I 01.7.22",
"isin" : "LI0373107031",
"valorCurrency" : "CHF",
"currency" : "CHF",
"currentPrice" : 234.14,
"quantity" : 10.0,
"marketValutation" : 2341.40,
"valorCategory" : "181 - HYBRIDE INSTRUMENTE EIGENE",
"courseDate" : "2018-04-10",
"acqPrice" : 420000.0,
"avePrice" : 450000.0,
"winLoss" : 14250.0
}, {
"valorNumber" : "000000324410-000",
"valorName" : "BMW AG",
"isin" : "DE0005190003",
"valorCurrency" : "EUR",
"currency" : "CHF",
"currentPrice" : 125.0,
"quantity" : 4500.0,
"marketValutation" : 562500.0,
"valorCategory" : "201 - AKTIEN",
"courseDate" : "2018-04-10",
"acqPrice" : 4200000.0,
"avePrice" : 4500000.0,
"winLoss" : 142500.0
} ]
}
A single custody account instance
Properties
name | data type | constraints | description |
---|---|---|---|
date | string | The market valutation date | |
moreResults | boolean | Attribute indicates that more results are available on the server | |
resultSetSize | number | Number of results in the returned result set | |
custodyAccount | string | required | The custody account number. This identifier can be used to access details information for the depot |
type | string | The depot name/type | |
customer | string | customer | The customer data of the account which consists of the customer number and name |
positions | array of CustodyAccountPosition |
CustodyAccountPosition
Example
{
"valorNumber" : "000000324410-000",
"valorName" : "BMW AG",
"isin" : "DE0005190003",
"valorCurrency" : "EUR",
"currency" : "CHF",
"currentPrice" : 125.0,
"quantity" : 4500.0,
"marketValutation" : 562500.0,
"valorCategory" : "201 - AKTIEN",
"courseDate" : "2018-04-10",
"acqPrice" : 4200000.0,
"avePrice" : 4500000.0,
"winLoss" : 142500.0
}
A single depot position item.
Properties
name | data type | constraints | description |
---|---|---|---|
valorNumber | string | required | The valor number |
valorName | string | The valor name | |
isin | string | The valor position ISIN International Securities Identification Number | |
valorCurrency | string | The valor currency | |
currency | string | The customer currency | |
currentPrice | string | The current market price | |
quantity | number | The quantity | |
marketValutation | number | The current market valutation | |
valorCategory | string | The valor category | |
courseDate | string | Date of the current rating | |
acqPrice | number | The entry price of the position | |
avePrice | number | The average price | |
winLoss | number | The net profit/loss |
CustodyAccountTransaction
Example
{
"refid" : "123123",
"status" : "BOOKED",
"orderType" : "VCN - REDEMPTION",
"valorNumber" : "000000008882",
"valorName" : "ACTIVE BOND FUND PLUS - CHF",
"isin" : "LI0326842163",
"rate" : 100.34,
"transactionDate" : "2018-12-31",
"quantity" : 123.1234,
"courtage" : 10.0,
"fees" : 10.0,
"exchange" : "011 - BALZERS",
"currency" : "CHF",
"totalAmount" : 123.12
}
A single transaction on a custody account.
Properties
name | data type | constraints | description |
---|---|---|---|
refid | string | required | The transaction reference id |
status | TransactionStatus | required | The transaction status |
orderType | string | The order type | |
valorNumber | string | required | The valor number |
valorName | string | The valor name | |
isin | string | The valor position ISIN International Securities Identification Number | |
rate | number | The transaction rate | |
transactionDate | string | required | The transaction date |
quantity | number | The transaction quantiy | |
courtage | number | Transaction courtage | |
fees | number | Transaction fees amount | |
exchange | string | The exchange place | |
currency | string | required | The transaction currency |
totalAmount | number | required | The transaction total amount |
CustodyAccountTransactions
Example
{
"date" : "2018-12-31",
"moreResults" : false,
"resultSetSize" : 2,
"transactions" : [ {
"refid" : "123123",
"status" : "BOOKED",
"orderType" : "VCN - REDEMPTION",
"valorNumber" : "000000008882",
"valorName" : "ACTIVE BOND FUND PLUS - CHF",
"isin" : "LI0326842163",
"rate" : 100.34,
"transactionDate" : "2018-12-31",
"quantity" : 123.1234,
"courtage" : 10.0,
"fees" : 10.0,
"exchange" : "011 - BALZERS",
"currency" : "CHF",
"totalAmount" : 123.12
}, {
"refid" : "123123",
"status" : "BOOKED",
"orderType" : "VCN - REDEMPTION",
"valorNumber" : "000000008882",
"valorName" : "ACTIVE BOND FUND PLUS - CHF",
"isin" : "LI0326842163",
"rate" : 100.34,
"transactionDate" : "2018-12-31",
"quantity" : 123.1234,
"courtage" : 10.0,
"fees" : 10.0,
"exchange" : "011 - BALZERS",
"currency" : "CHF",
"totalAmount" : 123.12
} ]
}
The custodyaccounts transactions message response body.
Properties
name | data type | constraints | description |
---|---|---|---|
date | string | required | The result set date |
moreResults | boolean | Attribute indicates that more results are available on the server | |
resultSetSize | number | Number of results in the returned result set | |
transactions | array of CustodyAccountTransaction |
DeleteMarketorders
Response
{
"marketorderIds" : [ 12345, 12345 ]
}
The delete marketorder request body.
Properties
name | data type | constraints | description |
---|---|---|---|
marketorderIds | array of number | required | The marketorder ids (as assigned from the server) to be deleted |
DeleteRequestTan
Response
{
"challengeId" : "c6f8dd20-aad0-11e8-98d0-529269fb1459"
}
The delete request tan request body.
Properties
name | data type | constraints | description |
---|---|---|---|
challengeId | string | required | The challenge ID to be deleted, cancels the TAN challenge |
DeleteTransaction
Response
{
"orderIds" : [ 12345, 12345 ]
}
The delete transactions request body.
Properties
name | data type | constraints | description |
---|---|---|---|
orderIds | array of number | required | The order ids (as assigned from the server) to be deleted |
ErrorMessage
Response
{
"language" : "en",
"message" : "Parameter iban is missing",
"code" : "request_body_validation_error"
}
A single error message instance.
Properties
name | data type | constraints | description |
---|---|---|---|
language | string | required | The language of the message as ISO 639-1 code |
message | string | required | An explanation about the error |
code | string | required | An internal error code |
Errors
Response
{
"errors" : [ {
"language" : "en",
"message" : "Parameter iban is missing",
"code" : "request_body_validation_error"
}, {
"language" : "en",
"message" : "Parameter iban is missing",
"code" : "request_body_validation_error"
} ]
}
The error message response body.
Properties
name | data type | constraints | description |
---|---|---|---|
errors | array of ErrorMessage | required | the list of error messages |
Info
Response
{
"version" : "2.2.5-20180831-1144",
"environment" : "production",
"messages" : [ {
"title" : "Maintenance",
"message" : "Due to maintenance work, online banking will not be available on 26.07.2018 from 05:00 to 06:00. We apologize for any inconvenience."
}, {
"title" : "Maintenance",
"message" : "Due to maintenance work, online banking will not be available on 26.07.2018 from 05:00 to 06:00. We apologize for any inconvenience."
} ]
}
The info response message body.
Properties
name | data type | constraints | description |
---|---|---|---|
version | string | required | The version information of the webapi service |
environment | string | required | The webapi environment |
messages | array of InfoMessage | The list of messages |
InfoMessage
Response
{
"language" : "en",
"title" : "Maintenance",
"message" : "Due to maintenance work, online banking will not be available on 26.07.2018 from 05:00 to 06:00. We apologize for any inconvenience."
}
A single info message instance.
Properties
name | data type | constraints | description |
---|---|---|---|
language | string | required | The language of the message as ISO 639-1 code |
title | string | The message title | |
message | string | The message content |
Instrument
Response
{
"valoren" : "908440",
"suffix" : "000",
"isin" : "US0378331005",
"symbol" : "AAPL",
"name" : "APPLE INC",
"additionalName" : "APPLE INC",
"currency" : "USD",
"domicile" : "US",
"type" : "BONDS",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "2020-08-22T10:07:02",
"price" : 12345.0,
"currency" : "...",
"percentPrice" : true
},
"denomination" : 12345.0
}
Object representing a specific financial instrument.
Properties
name | data type | constraints | description |
---|---|---|---|
valoren | string | required | The valoren number of the instrument. |
suffix | string | In case the valoren number is not unique (e.g. securities exists for different currencies) the suffix must be given to identify the instrument correctly. Defaults to 000. | |
isin | string | The ISIN of the financial instrument | |
symbol | string | The symbol of valoren if available | |
name | string | The name of the valoren | |
additionalName | string | An additional name or details, e.g. company name | |
currency | string | The currency of the financial instrument | |
domicile | string | The domicile of the instrument | |
type | InstrumentTypeGroup | The type of the securities | |
canTrade | boolean | If false this financial instrument cannot currently be purchased in online banking. Please contact your client advisor if you are interested in this instrument. | |
recentPrice | ValuationPrice | The most recent valuation price | |
denomination | number |
InstrumentSearchResult
Example
{
"moreResults" : false,
"resultSetSize" : 2,
"instruments" : [ {
"valoren" : "908440",
"suffix" : "000",
"isin" : "US0378331005",
"symbol" : "AAPL",
"name" : "APPLE INC",
"additionalName" : "APPLE INC",
"currency" : "USD",
"domicile" : "US",
"type" : "FUNDS",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "2020-08-22T10:07:02",
"price" : 12345.0,
"currency" : "...",
"percentPrice" : true
},
"denomination" : 12345.0
}, {
"valoren" : "908440",
"suffix" : "000",
"isin" : "US0378331005",
"symbol" : "AAPL",
"name" : "APPLE INC",
"additionalName" : "APPLE INC",
"currency" : "USD",
"domicile" : "US",
"type" : "BONDS",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "2020-08-22T10:07:02",
"price" : 12345.0,
"currency" : "...",
"percentPrice" : true
},
"denomination" : 12345.0
} ]
}
Result container for a securities search.
Properties
name | data type | constraints | description |
---|---|---|---|
moreResults | boolean | required | Attribute indicates that more results are available on the server |
resultSetSize | number | required | Number of results in the returned result set |
instruments | array of Instrument |
InstrumentTypeGroup
Securities type
Properties
value | description |
---|---|
STOCKS | Equities |
BONDS | Bonds / Obligations |
STRUCTURED_PRODUCTS | Structured products |
FUNDS | Funds |
CRYPTO_CURRENCIES | Crypto currencies |
Marketorder
Example
{
"marketorderId" : 4711,
"customId" : "4711",
"state" : "ERROR",
"tradingType" : "SELL",
"totalQuantity" : 15.0,
"limit" : 100.05,
"validUntil" : "2020-08-27",
"instrument" : {
"valoren" : "908440",
"suffix" : "000",
"isin" : "US0378331005",
"symbol" : "AAPL",
"name" : "APPLE INC",
"additionalName" : "APPLE INC",
"currency" : "USD",
"domicile" : "US",
"type" : "STOCKS",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "2020-08-22T10:07:02",
"price" : 12345.0,
"currency" : "...",
"percentPrice" : true
},
"denomination" : 12345.0
},
"depot" : [ {
"accountNumber" : "00012345/001.000.001",
"name" : "Max Muster",
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 15.0,
"riskClassification" : "CONFIRMATION_REQUIRED",
"knowledge" : "CONFIRMED"
}, {
"accountNumber" : "00012345/001.000.001",
"name" : "Max Muster",
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 15.0,
"riskClassification" : "CONFIRMATION_REQUIRED",
"knowledge" : "CONFIRMATION_REQUIRED"
} ],
"creator" : "1234 Max Muster",
"createDate" : "2018-08-22T10:07:02",
"approvals" : [ {
"contact" : "1234 Max Muster",
"group" : 1,
"dateOfApproval" : "2018-08-22T10:07:02",
"dateOfRejection" : "2018-08-22T10:07:02"
}, {
"contact" : "1234 Max Muster",
"group" : 1,
"dateOfApproval" : "2018-08-22T10:07:02",
"dateOfRejection" : "2018-08-22T10:07:02"
} ],
"rejector" : {
"contact" : "1234 Max Muster",
"group" : 1,
"dateOfApproval" : "2018-08-22T10:07:02",
"dateOfRejection" : "2018-08-22T10:07:02"
},
"date" : "..."
}
List of market orders response body
Properties
name | data type | constraints | description |
---|---|---|---|
marketorderId | number | required | The unique marketorder id as assigned by the system |
customId | string | required | Unique custom marketorder id for a order given by the client |
state | State | required | The state of the market order |
tradingType | TradingType | required | The trading type of the order |
totalQuantity | number | required, min: 0, max digits: 16 (integer), 6 (fraction) | The total quantity of the order, must be the sum of all individual quantities in case of a block order. |
limit | number | min: 0, max digits: 16 (integer), 6 (fraction) | The limit of the order. The limit always refers to a single position. |
validUntil | string | The date until the order is valid. Must not exceed 90 days in the future. | |
instrument | Instrument | The financial instrument to be traded by the market order | |
depot | array of MarketOrderDepot | required | The list of depots. Must at least contain one entry. |
creator | string | The creator contact information | |
createDate | string | The create date | |
approvals | array of Approval | A list of confirmation approvals given to the market order | |
rejector | Approval | Person who has rejected the market order so the order will not be executed | |
date | string |
Marketorders
Example
{
"moreResults" : false,
"resultSetSize" : 2,
"marketorders" : [ {
"marketorderId" : 4711,
"customId" : "4711",
"state" : "BOOKED",
"tradingType" : "SELL",
"totalQuantity" : 15.0,
"limit" : 100.05,
"validUntil" : "2020-08-27",
"instrument" : {
"valoren" : "908440",
"suffix" : "000",
"isin" : "US0378331005",
"symbol" : "AAPL",
"name" : "APPLE INC",
"additionalName" : "APPLE INC",
"currency" : "USD",
"domicile" : "US",
"type" : "STOCKS",
"canTrade" : true,
"recentPrice" : { },
"denomination" : 12345.0
},
"depot" : [ {
"accountNumber" : "00012345/001.000.001",
"name" : "Max Muster",
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 15.0,
"riskClassification" : "OK",
"knowledge" : "CONFIRMED"
}, {
"accountNumber" : "00012345/001.000.001",
"name" : "Max Muster",
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 15.0,
"riskClassification" : "OK",
"knowledge" : "OK"
} ],
"creator" : "1234 Max Muster",
"createDate" : "2018-08-22T10:07:02",
"approvals" : [ {
"contact" : "1234 Max Muster",
"group" : 1,
"dateOfApproval" : "2018-08-22T10:07:02",
"dateOfRejection" : "2018-08-22T10:07:02"
}, {
"contact" : "1234 Max Muster",
"group" : 1,
"dateOfApproval" : "2018-08-22T10:07:02",
"dateOfRejection" : "2018-08-22T10:07:02"
} ],
"rejector" : {
"contact" : "1234 Max Muster",
"group" : 1,
"dateOfApproval" : "2018-08-22T10:07:02",
"dateOfRejection" : "2018-08-22T10:07:02"
},
"date" : "..."
}]
}
List of market orders response body
Properties
name | data type | constraints | description |
---|---|---|---|
moreResults | boolean | required | Attribute indicates that more results are available on the server |
resultSetSize | number | required | Number of results in the returned result set |
marketorders | array of Marketorder | required | the list of transactions |
OrderingCustomer
Example
{
"name" : "Max Muster",
"address" : "Street 100",
"postalcode" : "101000",
"city" : "Moscow",
"country" : "Russia"
}
Detail information about an ordering customer. Only relevant for correspondence payments.
Properties
name | data type | constraints | description |
---|---|---|---|
name | string | required, max size: 35, min size: 0 | The name of the customer |
address | string | required, max size: 70, min size: 0 | Address information of the ordering customer (e.g. Street) |
postalcode | string | required, max size: 11, min size: 0 | Postalcode of the ordering customer address |
city | string | required, max size: 70, min size: 0 | City of the ordering customer address |
country | string | required, max size: 70, min size: 0 | Country of the ordering customer |
MarketorderDepot
Example
{
"accountNumber" : "00012345/001.000.001",
"name" : "Max Muster",
"iban" : "LI6808811000000001234",
"depot" : "1234567-000",
"quantity" : 15.0,
"riskClassification" : "CONFIRMED",
"knowledge" : "CONFIRMED"
}
A depot entry for the marketorder.
Properties
name | data type | constraints | description |
---|---|---|---|
accountNumber | string | required | The account number of the settlement account |
name | string | required | The name of the customer |
iban | string | required, max size: 34, min size: 0 | The iban of the settlement account |
depot | string | required, max size: 11, min size: 0 | The depot reference number |
quantity | number | required, min: 0, max digits: 16 (integer), 6 (fraction) | The quantity for the depot. In case the order has only one depot position, the quantity must be equal to the total quantity. |
riskClassification | MifidStatus | Verification of the risk profile of the customer compared to the instrument risk of the securities. If the instrument risk is exceeded, the order must be explicitly confirmed using the mifid confirmation resource. | |
knowledge | MifidStatus | Verification of the product knowledge of the customer. If the knowledge check failed, the order must be explicitly confirmed using the mifid confirmation resource. |
Method
Enum values for the 'method' field
Properties
value | description |
---|---|
SMS_TAN | TAN send by SMS |
PUSH_TAN | TAN send by PushTAN App |
SECURITY_TOKEN | TAN generated by hardware token |
MifidStatus
The status of MIFID confirmation
Properties
value | description |
---|---|
OK | |
CONFIRMATION_REQUIRED | |
CONFIRMED |
RequestTan
Response
{
"orderIds" : [ 12345, 12345 ],
"customIds" : [ "...", "..."],
"method" : "SMS_TAN"
}
The request tan request body.
Properties
name | data type | constraints | description |
---|---|---|---|
orderIds | array of number | The order ids (as assigned from the server) to request a tan for. Either orderIds, customIds or combination of both must be given. | |
customIds | array of string | The custom ids (as assigned from the client) to request a tan for. Either orderIds, customIds or combination of both must be given. | |
method | Method | required | The TAN method to be used for sending the TAN |
RequestTanOrder
Response
{
"marketorderIds" : [ 12345, 12345 ],
"customIds" : [ "...", "..." ],
"method" : "SMS_TAN",
"securityTokenSerial" : "..."
}
The request tan response body.
Properties
name | data type | constraints | description |
---|---|---|---|
marketorderIds | array of number | The marketorder ids (as assigned from the server) to request a tan for. Either marketorderIds, customIds or combination of both must be given. | |
customIds | array of string | The custom ids (as assigned from the client) to request a tan for. Either marketorderIds, customIds or combination of both must be given. | |
method | Method | required | The TAN method to be used for sending the TAN |
securityTokenSerial | string | Only for SECURITY_TOKEN method to specify which security token will be used to fulfill the tan challenge. The serial is located on the back on the device and must be linked to the users account. |
RequestTanResponse
Response
{
"challange" : "c6f8dd20-aad0-11e8-98d0-529269fb1459",
"expires" : "2020-08-22T10:07:02.895"
}
The request tan response body.
Properties
name | data type | constraints | description |
---|---|---|---|
challange | string | required | A challenge id which must be returned to the server when resolving the tan request |
expires | string | required | The time until the tan challenge must be resolved |
SignOrdersWithoutTan
Response
{
"marketorderIds" : [ 12345, 12345 ],
"customIds" : [ "...", "..." ]
}
The sign market orders without tan request body message.
Properties
name | data type | constraints | description |
---|---|---|---|
marketorderIds | array of number | required | The marketorder ids (as assigned from the server) to be approved by the user. Either marketorderIds, customIds or combination of both must be given. |
customIds | array of string | required | The custom marketorder ids (as assigned from the client) to be approved by the user. Either marketorderIds, customIds or combination of both must be given. |
SignTransactionsWithTan
Response
{
"challengeId" : "zRsFYey8/uVscFn3UVxmpisAlbigLEsvy1M5crtRhMc=",
"tan" : "123456"
}
The sign transactions with tan request body message.
Properties
name | data type | constraints | description |
---|---|---|---|
challengeId | string | required | The challenge id as given in the requestTan response message |
tan | string | required | The received (SMS-)TAN |
SignTransactionsWithoutTan
Response
{
"orderIds" : [ 12345, 12345 ]
}
The sign transactions without tan request body message.
Properties
name | data type | constraints | description |
---|---|---|---|
orderIds | array of number | required | The order ids (as assigned from the server) to be approved by the user |
State
Enum values for the 'state' field.
Properties
value | description |
---|---|
PREPARED | The transaction is stored but not yet processed |
IN_PROGRESS | The transaction is being processed |
DELETED | The transaction was deleted |
EXPIRED | The transaction expired |
EXECUTED | The transaction was executed |
REJECTED | The transaction was rejected |
ERROR | The transaction was faulty |
DELETION_REQUESTED | The deletion of the transaction is currently requested in online banking |
BOOKED | Status representing transactions that are booked on the account (camt053 relevant). NOTE: For querying BOOKED transactions, the filter must be set accordingly. |
TradingType
The trading types.
Properties
value | description |
---|---|
BUY | |
SELL |
Transaction (new instance)
Request
{
"transactions" : [ {
"customId" : "A4711",
"type" : "SEPA",
"amount" : 1000.00,
"currency" : "EUR",
"express" : true,
"valuta" : "2019-04-28",
"valutaIsExecutionDate" : true,
"reference" : "some individual text",
"charge" : "SHA",
"debitor" : {
"iban" : "LI6808811000000001234"
},
"creditor" : {
"name" : "Satoshi Nakamoto",
"iban" : "DE12500105170648489890"
}
} ]
}
A single transaction instance to be created.
Properties
name | data type | constraints | description |
---|---|---|---|
customId | string | required, max size: 50, min size: 0 | Unique custom id for a transaction given by the client |
type | Type | required | The type of the payment order |
amount | number | required, min: 0.01, max digits: 12 (integer), 2 (fraction) | The amount of the transaction |
currency | string | required, max size: 3, min size: 0 | The transaction currency |
express | boolean | required | Information if it is a express transaction |
valuta | string | The value date or execution date of the transaction. If not set, it will be set to the current day (default) | |
valutaIsExecutionDate | boolean | Indicates if the valuta date is the requested execution date (true) or desired value date (false). If not set it will be the requested execution date (default) | |
reference | string | max size: 140, min size: 0 | The reference text or individual note |
charge | Charge | required when type FOREIGN | The charging type |
correspondence | boolean | Must be set to true in case of correspondence payment | |
orderingCustomer | OrderingCustomer | In case of correspondence payment information about the ordering customer must be given | |
debitor | TransactionDebitorAccount | required | The client information about the transaction |
creditor | TransactionCreditorAccount | required | The beneficiary information about the transaction |
Transaction (existing instance)
Response
{
"transactionNr" : "3307348",
"serviceType" : "EUROSIC",
"transactionCode" : "120 - Eingang (Kundenvergütungen)",
"state" : "BOOKED",
"fxrate" : 1.05000000,
"fxPair" : "CHF/EUR",
"fxTransactionAmount" : 10000.00,
"fxTransactionCurrency" : "CHF",
"md" : "D",
"amount" : 9523.80,
"totalAmount" : 9523.80,
"currency" : "EUR",
"valuta" : "2022-05-01",
"bookingDate" : "2022-05-01",
"reference" : "Some Individual Text",
"direction" : "incoming",
"debitor" : {
"name" : "Satoshi Nakamoto",
"address" : "Street 100",
"iban" : "CH10001000111000100110",
"bic" : "ZKBKCHZZ80A",
"creditInstitution" : "Zuercher Kantonalbank"
},
"creditor" : {
"name" : "Satoshi Nakamoto",
"iban" : "LI6808811000000001234",
"bic" : "BFRILI22XXX",
"creditInstitution" : "Bank Frick and Co. AG"
}
},{
"orderId" : 123456,
"transactionNr" : "3307350",
"serviceType" : "SWIFT",
"transactionCode" : "116 - Vergütung SWIFT",
"state" : "BOOKED",
"amount" : -100.00,
"totalAmount" : -100.00,
"currency" : "EUR",
"valuta" : "2022-05-01",
"bookingDate" : "2022-05-01",
"reference" : "Some Individual Text",
"direction" : "outgoing",
"debitor" : {
"name" : "Max Muster",
"iban" : "LI08088110102720K000E",
"bic" : "BFRILI22XXX",
"creditInstitution" : "Bank Frick and Co. AG"
},
"creditor" : {
"name" : "Satoshi Nakamoto",
"iban" : "LT100101101010010101",
"bic" : "REVOLT21XXX",
"creditInstitution" : "REVOLUT PAYMENTS UAB"
}
A single transaction existing instance.
Properties
name | data type | constraints | description |
---|---|---|---|
orderId | number | The order id as assigned by the system | |
customId | string | Unique custom id for a transaction given by the client | |
transactionNr | number | Unique reference of the booking assigned by the financial institution | |
serviceType | string | required | The type of the transaction - SWIFT / SIC / EUROSIC |
type | Type | required | The type of the payment order |
state | State | required | The state of the payment order |
transactionCode | string | The transaction code. This is only available for booked transactions | |
fees | number | The fees of the transaction. This is only available for booked transactions | |
fxrate | number | The exchange rate of the transaction. Only relevant in case of currency change. | |
fxPair | string | The currency pair in case of foreign exchange. Only relevant in case of currency change. | |
fxTransactionAmount | number | The transaction amount in foreign currency. Only relevant in case of currency change. | |
fxTransactionCurrency | string | The foreign currency. Only relevant in case of currency change. | |
md | string | The exchange rate multiplicant (M = multiply, D = devision). Only relevant in case of currency change. | |
amount | number | required | The amount of the transaction (net amount) |
totalAmount | number | required | The total amount of the transaction |
currency | string | required | The transaction currency |
express | boolean | required | Information if it is a express transaction |
valuta | string | The value date or execution date of the transaction | |
bookingDate | string | The booking date of the transaction. This is only available for booked transactions | |
valutaIsExecutionDate | boolean | Indicates if the valuta date is the requested execution date (true) or desired value date (false). If not set it will be the requested execution date (default) | |
reference | string | The reference text of individual notes | |
charge | Charge | The charging system of the transaction | |
correspondence | boolean | Must be set to true in case of correspondence payment | |
direction | string | Either "incoming", "outgoing" or "return". | |
orderingCustomer | OrderingCustomer | In case of correspondence payment information about the ordering customer must be given | |
debitor | TransactionAccount | required | The client information about the transaction |
creditor | TransactionAccount | required | The beneficiary information about the transaction |
creator | string | required | The creator contact information |
createDate | string | The create date | |
right | string | required | The write privilege of the creator in regards to the customer |
groupPolicy | string | Information about applied group policy | |
group | number | Information about the creators group in case a group policy applies | |
quorum | number | The total number of approvals required for the transaction | |
approvals | array of Approval | A list of approvals given to the payment order |
TransactionAccount
Request
{
"accountNumber" : "00012345678",
"iban" : "DE12500105170648489890",
"name" : "Satoshi Nakamoto",
"address" : "Street 100",
"postalcode" : "150004",
"city" : "Berlin",
"country" : "Germany",
"bic" : "INGDDEFFXXX",
"creditInstitution" : "ING-DiBa",
"qrReference" : "961116900000006600000009284"
}
Debitor or creditor account information of the transaction.
Properties
name | data type | constraints | description |
---|---|---|---|
accountNumber | string | max size: 30, min size: 0 | The account number of the recipient (instead of IBAN, only type = FOREIGN ) |
aba | string | max size: 11, min size: 0 | The aba routing number of the recipient credit institution (only type = FOREIGN) |
iban | string | max size: 34, min size: 0 | The iban of the recipient account |
name | string | required, max size: 35, min size: 0 | The name of the recipient |
address | string | max size: 70, min size: 0 | Address information of the recipient (e.g. Street), for international transfers or payments in USD |
postalcode | string | max size: 11, min size: 0 | Postalcode of the recipient address, for international transfers or payments in USD |
city | string | max size: 70, min size: 0 | City of the recipient, for international transfers or payments in USD |
country | string | max size: 70, min size: 0 | Country of the recipient, for international transfers or payments in USD |
bic | string | max size: 11, min size: 0 | The bic of the recipient credit institution (only type = FOREIGN) |
creditInstitution | string | max size: 50, min size: 0 | The recipient credit institution (only type = FOREIGN) |
qrReference | string | max size: 27, min size: 0 | The qr bill reference number in case of type = QR_BILL) |
TransactionCreditorAccount
Request
{
"accountNumber" : "00012345678",
"iban" : "DE12500105170648489890",
"name" : "Satoshi Nakamoto",
"address" : "Street 100",
"postalcode" : "150004",
"city" : "Berlin",
"country" : "Germany",
"bic" : "INGDDEFFXXX",
"creditInstitution" : "ING-DiBa",
"qrReference" : "961116900000006600000009284"
}
The transactions beneficiary account information.
Properties
name | data type | constraints | description |
---|---|---|---|
accountNumber | string | max size: 30, min size: 0 | The account number of the recipient (instead of IBAN, only type = FOREIGN ) |
aba | string | max size: 11, min size: 0 | The aba routing number of the recipient credit institution (only type = FOREIGN) |
iban | string | max size: 34, min size: 0 | The iban of the recipient account |
name | string | required, max size: 35, min size: 0 | The name of the recipient |
address | string | max size: 70, min size: 0 | Address information of the recipient (e.g. Street), for international transfers or payments in USD |
postalcode | string | max size: 11, min size: 0 | Postalcode of the recipient address, for international transfers or payments in USD |
city | string | max size: 70, min size: 0 | City of the recipient, for international transfers or payments in USD |
country | string | max size: 70, min size: 0 | Country of the recipient, for international transfers or payments in USD |
bic | string | max size: 11, min size: 0 | The bic of the recipient credit institution (only type = FOREIGN) |
creditInstitution | string | max size: 50, min size: 0 | The recipient credit institution (only type = FOREIGN) |
qrReference | string | max size: 27, min size: 0 | The qr bill reference number in case of type = QR_BILL) |
TransactionDebitorAccount
Request
{
"iban" : "LI6808811000000001234"
}
The transactions client account information.
Properties
name | data type | constraints | description |
---|---|---|---|
iban | string | required, max size: 34, min size: 0 | the account iban of the sender |
Transactions
Response
{
"moreResults" : false,
"resultSetSize" : 2,
"transactions" : [ {
"orderId" : 20222,
"customId" : "4711",
"type" : "FOREIGN",
"state" : "EXPIRED",
"amount" : 1321.00,
"currency" : "EUR",
"valuta" : "2018-08-27",
"express" : true,
"valuta" : "2019-04-28",
"valutaIsExecutionDate" : true,
"reference" : "Some Individual Text",
"charge" : "OUR",
"debitor" : {
"accountNumber" : "00012345/001.000.001",
"name" : "Satoshi Nakamoto",
"iban" : "LI6808811000000001234",
"bic" : "INGDDEFFXXX",
"creditInstitution" : "ING-DiBa",
"qrReference" : "961116900000006600000009284"
},
"creditor" : {
"accountNumber" : "00012345/001.000.001",
"name" : "Satoshi Nakamoto",
"iban" : "LI6808811000000001234",
"bic" : "INGDDEFFXXX",
"creditInstitution" : "ING-DiBa",
"qrReference" : "961116900000006600000009284"
},
"creator" : "1234 Satoshi Nakamoto",
"createDate" : "2018-08-22T10:07:02",
"right" : "Bevollmächtigter kollektiv zu 2",
"groupPolicy" : "Group intern",
"group" : 1,
"quorum" : 2,
"approvals" : [ {
"contact" : "1234 Satoshi Nakamoto",
"group" : 1,
"dateOfApproval" : "2018-08-22T10:07:02"
}, {
"contact" : "1234 Satoshi Nakamoto",
"group" : 1,
"dateOfApproval" : "2018-08-22T10:07:02"
} ]
},
{
"orderId": 12345,
"transactionNr": "1234567",
"serviceType": "SIC",
"transactionCode": "102-Transfer int. with Avis/Geb",
"state": "BOOKED",
"amount": -200.00,
"totalAmount": 10060.00,
"currency": "CHF",
"valuta": "2020-04-01",
"bookingDate": "2020-04-01",
"reference": "Payment to Satoshi Nakamoto",
"debitor": {
"name": "Michael Tester",
"iban": "LI6808811000000001234",
"bic": "BFRILI22XXX",
"creditInstitution": "Bank Frick and Co. AG"
},
"creditor": {
"name": "Satoshi Nakamoto",
"iban": "DE12500105170648489890",
"bic": "INGDDEFFXXX",
"creditInstitution": "ING-DiBa GERMANY"
}
}
]
}
The transactions message response body.
Properties
name | data type | constraints | description |
---|---|---|---|
moreResults | boolean | required | Attribute indicates that more results are available on the server |
resultSetSize | number | required | Number of results in the returned result set |
transactions | array of Transaction (existing instance) | required | the list of transactions |
TransactionStatus
Enum values for the 'status' field.
Properties
name | description |
---|---|
BOOKED |
Type
Enum values for the 'type' field
Properties
value | currency | description |
---|---|---|
INTERNAL | Any | Transfer to another bank account within the same customer account |
BANK_INTERNAL | Any | Transfer to another bank account at Bank Frick owned by another customer account |
SEPA | Euro | SEPA Payment (Only transactions in Euro to European countries) |
FOREIGN | Any | International Transfer (SWIFT) |
QR_BILL | CHF | QR Bill Payment Slip with QR reference (Only in Switzerland) |
ValuationPrice
Example
{
"dateTime" : "2020-08-22T10:07:02",
"price" : 12345.0,
"currency" : "...",
"percentPrice" : true
}
Container for a valuation price
Properties
name | data type | constraints | description |
---|---|---|---|
dateTime | string | required | The iso date time of the valuation |
price | number | required | |
currency | string | required | |
percentPrice | boolean |