Transactions
Given a user’s online banking credentials, the Transactions Service allows to gather transactions for a user’s account.
Depending on your use case, the service sends the requested transaction data either to your frontend or to a webhook endpoint.
Issue a service ticket 
Use Transactions
as a service identifier when issuing tickets.
The service expects the following ticket data:
Issue a service ticket:
-
Python
-
Java
-
Node.js
-
Rust
-
PHP
ticket_id = str(uuid.uuid4())
ticket = issue_ticket(
ticket_id,
"Transactions",
{
"account": {
"iban": "NL58YAXI1234567890",
"currency": "EUR",
},
"range": {
"from": "2019-01-13",
},
},
)
String ticketId = UUID.randomUUID().toString();
String ticket = issueTicket(
ticketId,
"Transactions",
Map.of(
"account", Map.of(
"iban", "NL58YAXI1234567890",
"currency", "EUR"
),
"range", Map.of(
"from", "2019-01-13"
)
)
);
let ticketId = uuidv4()
let ticket = issueTicket(
ticketId,
'Transactions',
{
account: { iban: 'NL58YAXI1234567890', currency: 'EUR' },
range: { from: '2019-01-13' }
}
)
let ticket_id = Uuid::new_v4().to_string();
let ticket = issue_ticket(
&ticket_id,
"Transactions",
json!({
"account": {
"iban": "NL58YAXI1234567890",
"currency": "EUR",
},
"range": {
"from": "2019-01-13",
},
}),
)?;
$ticketId = uniqid();
$ticket = issueTicket(
$ticketId,
'Transactions',
json_encode([
'account' => [
'id' => [
'iban' => 'NL58YAXI1234567890',
],
'currency' => 'EUR',
],
'range' => [
'from' => '2019-01-13',
],
])
);
Call the service 
The service does not support any specific client arguments.
Call the service:
-
JavaScript
-
Kotlin
-
Rust
await client.transactions({
credentials,
ticket,
})
client.transactions(
credentials,
ticket = ticket,
)
client.transactions(
credentials,
None,
ticket,
).await?;
Result

Process the resulting transactions in the frontend or forward them to your backend system that can verify their authenticity.
The resulting JWT contains the following data:
ISO 20022 external code sets are available at https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets.
Example result:
-
Result JWT
-
Decoded JWT header
-
Decoded JWT payload
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6ImFwaS1rZXktMjE0YWQ 2MDEtZmFlNS00NWY4LTllNDItYTFiNTdkNTA0MTRjIn0.eyJkYXRhIjp7ImRhdG EiOlt7ImJvb2tpbmdEYXRlIjoiMjAyNC0wNS0wMiIsInZhbHVlRGF0ZSI6IjIwM jQtMDUtMDIiLCJ0cmFuc2FjdGlvbkRhdGEiOiIyMDI0LTA1LTAxIiwic3RhdHVz IjoiQm9va2VkIiwiZW5kVG9FbmRJZCI6Ijc4NTY0MyIsImFtb3VudCI6eyJjdXJ yZW5jeSI6IkVVUiIsImFtb3VudCI6Ii0xOS45OSJ9LCJjcmVkaXRvciI6eyJuYW 1lIjoiQXdlc29tZVNob3AiLCJpYmFuIjoiTkwzMVlBWEkxMjM0NTY3ODkxIn0sI mRlYnRvciI6eyJpYmFuIjoiTkw1OFlBWEkxMjM0NTY3ODkwIn0sInJlbWl0dGFu Y2VJbmZvcm1hdGlvbiI6WyJBd2Vzb21lU2hvcCBZb3VyIHB1cmNoYXNlIiwiMjA yNC0wNS0wMSBUaGFuayB5b3UiXX1dLCJ0aWNrZXRJZCI6IjgxNDJkYTM4LTNjM2 EtNGUzYi1hZDlhLTI5OWQ1NjFmNjMyOSIsInRpbWVzdGFtcCI6IjIwMjUtMDYtM DFUMTE6MDE6MjYuNzcyNTk2MjMxWiJ9LCJleHAiOjI1NDA4MDgwMDB9.rw0RSrD afcTiZICwpNZ-stxOQMY24Q0RYhcCtZlElyE
{
"typ": "JWT",
"alg": "HS256",
"kid": "api-key-214ad601-fae5-45f8-9e42-a1b57d50414c"
}
{
"data": {
"data": [
{
"bookingDate": "2024-05-02",
"valueDate": "2024-05-02",
"transactionData": "2024-05-01",
"status": "Booked",
"endToEndId": "785643",
"amount": {
"currency": "EUR",
"amount": "-19.99"
},
"creditor": {
"name": "AwesomeShop",
"iban": "NL31YAXI1234567891"
},
"debtor": {
"iban": "NL58YAXI1234567890"
},
"remittanceInformation": [
"AwesomeShop Your purchase",
"2024-05-01 Thank you"
]
}
],
"ticketId": "8142da38-3c3a-4e3b-ad9a-299d561f6329",
"timestamp": "2025-06-01T11:01:26.772596231Z"
},
"exp": 2540808000
}
Webhook 
If you provide a webhook
URL, YAXI sends the result JWT to that URL via an HTTP POST request, while the client on your frontend receives an empty result.
This approach eliminates the need for your frontend to download large amounts of transaction data only to upload it to a backend for further processing or storage.
We recommend using this approach unless you are only processing the transaction data locally on the frontend.
You must handle the received data as a forwarded result, verifying its HMAC and ticket identifier.