Standing Orders

Given a user’s online banking credentials, the Standing Orders Service allows to gather the standing orders of a user’s account.

The Standing Orders Service is in beta and not yet generally available.
sequenceDiagram actor User participant YAXI participant Your Backend participant Bank User->>+Your Backend: Ticket request Your Backend-->>User: Ticket with ID and account rect rgb(243, 243, 243) note right of User: Encrypted and verified channel User->>+YAXI: Ticket YAXI->>+YAXI: Verify authenticity YAXI-->>-User: Bank login form User->>+YAXI: Send login credentials end YAXI->>+Bank: Get standing orders opt Strong Customer Authentication Bank-->>-User: Request authorization User->>+Bank: Authorize end Bank-->>-YAXI: Standing orders YAXI-->>-User: Standing orders opt Transfer authenticated standing orders to backend User->>+Your Backend: Standing orders Your Backend->>+Your Backend: Verify authenticity Your Backend-->>-User: OK end

Issue a service ticket backend

Use StandingOrders 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,
    "StandingOrders",
    {
        "account": {
            "iban": "NL58YAXI1234567890",
            "currency": "EUR",
        },
    },
)
import tech.yaxi.routex.models.AccountReference;
import tech.yaxi.routex.models.Ticket;

Ticket.StandingOrders ticket = issuer.standingOrders(
    new AccountReference("NL58YAXI1234567890", "EUR")
);
let ticketId = uuidv4()
let ticket = issueTicket(
  ticketId,
  'StandingOrders',
  {
    account: { iban: 'NL58YAXI1234567890', currency: 'EUR' }
  }
)
let ticket_id = Uuid::new_v4().to_string();
let ticket = issue_ticket(
    &ticket_id,
    "StandingOrders",
    json!({
        "account": {
            "iban": "NL58YAXI1234567890",
            "currency": "EUR",
        },
    }),
)?;
$ticketId = uniqid();
$ticket = issueTicket(
    $ticketId,
    'StandingOrders',
    json_encode([
        'account' => [
            'iban' => 'NL58YAXI1234567890',
            'currency' => 'EUR',
        ],
    ])
);

Call the service frontend

The service does not support any specific client arguments.

Call the service:

  • JavaScript

  • Kotlin

  • Java

  • Rust

  • C++

  • Lua

await client.standingOrders({
  credentials,
  ticket,
})
client.standingOrders(ticket, credentials)
client.standingOrders(ticket, credentials);
client.standing_orders(
    credentials,
    ticket,
).send().await?;
client.standingOrders(
    credentials,
    ticket
);
client:standingOrders({
  credentials = credentials,
  ticket = standingOrdersTicket,
})

Result frontend backend

Process the resulting standing orders in the frontend or forward them to your backend system that can verify their authenticity.

The resulting JWT contains the following data:

Example result:

  • Result JWT

  • Decoded JWT header

  • Decoded JWT payload

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6ImFwaS1rZXktMjE0YWQ
2MDEtZmFlNS00NWY4LTllNDItYTFiNTdkNTA0MTRjIn0.eyJkYXRhIjp7ImRhdG
EiOlt7InN0YXJ0RGF0ZSI6IjIwMjQtMDEtMDEiLCJleGVjdXRpb25SdWxlIjoiR
m9sbG93aW5nIiwiZnJlcXVlbmN5Ijp7Im1vbnRocyI6MX0sImRheSI6MSwiYW1v
dW50Ijp7ImN1cnJlbmN5IjoiRVVSIiwiYW1vdW50IjoiNzUwLjAwIn0sImNyZWR
pdG9yIjp7Im5hbWUiOiJMYW5kbG9yZCBMdGQuIiwiaWJhbiI6Ik5MMzFZQVhJMT
IzNDU2Nzg5MSJ9LCJyZW1pdHRhbmNlSW5mb3JtYXRpb24iOlsiUmVudCJdfSx7I
nN0YXJ0RGF0ZSI6IjIwMjQtMDEtMTUiLCJleGVjdXRpb25SdWxlIjoiUHJlY2Vk
aW5nIiwiZnJlcXVlbmN5Ijp7InZhcmlhYmxlTW9udGhzIjpbMSw0LDcsMTBdfSw
iZGF5IjoxNSwiYW1vdW50Ijp7ImN1cnJlbmN5IjoiRVVSIiwiYW1vdW50IjoiNT
UuMDgifSwiY3JlZGl0b3IiOnsibmFtZSI6IkJyb2FkY2FzdGluZyBGZWVzIiwia
WJhbiI6Ik5MODdZQVhJMTIzNDU2Nzg5MiJ9LCJyZW1pdHRhbmNlSW5mb3JtYXRp
b24iOlsiQ29udHJpYnV0aW9uIDEyMzQ1Njc4OSJdfV0sInRpY2tldElkIjoiODE
0MmRhMzgtM2MzYS00ZTNiLWFkOWEtMjk5ZDU2MWY2MzI5IiwidGltZXN0YW1wIj
oiMjAyNS0wNi0wMVQxMTowMToyNi43NzI1OTYyMzFaIn0sImV4cCI6MjU0MDgwO
DAwMH0.NxMOPR22iO9humABxk1RLyP3Q_W1BSoyIvAo4R2DPl4
{
  "typ": "JWT",
  "alg": "HS256",
  "kid": "api-key-214ad601-fae5-45f8-9e42-a1b57d50414c"
}
{
  "data": {
    "data": [
      {
        "startDate": "2024-01-01",
        "executionRule": "Following",
        "frequency": {
          "months": 1
        },
        "day": 1,
        "amount": {
          "currency": "EUR",
          "amount": "750.00"
        },
        "creditor": {
          "name": "Landlord Ltd.",
          "iban": "NL31YAXI1234567891"
        },
        "remittanceInformation": [
          "Rent"
        ]
      },
      {
        "startDate": "2024-01-15",
        "executionRule": "Preceding",
        "frequency": {
          "variableMonths": [
            1,
            4,
            7,
            10
          ]
        },
        "day": 15,
        "amount": {
          "currency": "EUR",
          "amount": "55.08"
        },
        "creditor": {
          "name": "Broadcasting Fees",
          "iban": "NL87YAXI1234567892"
        },
        "remittanceInformation": [
          "Contribution 123456789"
        ]
      }
    ],
    "ticketId": "8142da38-3c3a-4e3b-ad9a-299d561f6329",
    "timestamp": "2025-06-01T11:01:26.772596231Z"
  },
  "exp": 2540808000
}