PaySaxas XS2A
PSD2 access to account — Berlin Group NextGenPSD2 v1.3.15

← All documentation

Sandbox

A publicly reachable testing facility, provided under RTS 2018/389 Art. 30(5). Use it for connection and functional testing before you touch production.

https://xs2a.paysaxas.money

Not open yet. The facility and this documentation are published ahead of go-live; the host above does not answer today. The opening date is announced in the changelog, and nothing below changes when it does — the credential, the personas and the flows are the ones you will use.

Getting a test certificate

The sandbox accepts certificates issued by the PaySaxas PSD2 Test QTSP, a CA that exists only for this purpose. Download it directly:

https://paysaxas.com/xs2a/test-certs/paysaxas-psd2-test-ca.pem

The index lists it alongside a plain-text README for scripted setups.

Two ways to test:

  1. Download the demo credential. Nothing to request, nobody to email — the files are live today even though the host is not:

    https://paysaxas.com/xs2a/test-certs/sandbox-demo-tpp.pem
    https://paysaxas.com/xs2a/test-certs/sandbox-demo-tpp.key
    
    curl https://xs2a.paysaxas.money/v1/accounts \
      --cert sandbox-demo-tpp.pem --key sandbox-demo-tpp.key \
      -H "X-Request-ID: $(uuidgen)"
    

    That is the request you will make on day one; today it reaches nothing, and the changelog carries the date it starts answering.

    It carries all three PSD2 roles, so one credential exercises AIS, PIS and CoF. The private key is published deliberately and shared by everyone — it has no security value, authenticates a fictional provider against fictional customers, and is refused in production. Never reuse it outside the sandbox.

  2. Or test with an identity of your own: send a CSR carrying the PSD2 QcStatement extension because it exercises your own certificate handling.

Production QWACs are accepted here too, for identification testing. The sandbox trusts the test QTSP above and the same EU trusted-list authorities production will, so you can present your real eIDAS certificate and confirm it parses, chains, and carries the PSD2 roles you expect — before cutover, not during it. Bring your production QWAC and call any endpoint: a certificate problem surfaces as CERTIFICATE_INVALID or ROLE_INVALID here, where it costs you nothing.

What it does not do is give your production certificate access to production data. It authenticates you against the sandbox’s fictional customers like any other credential; the accounts, balances and payments are the seeded ones.

What is simulated and what is real

  Sandbox
API contract, error codes, status vocabulary Identical to production
Certificate parsing, role gating, consent rules, the four-per-day cap Real
Customers, accounts, balances, transactions Seeded fixtures
SCA Real ceremony, with a documented static code for test personas
Money movement None. Payments settle between test personas only
Sanctions screening, AML monitoring Not exercised

The sandbox is a contract-conformance surface, not a compliance rehearsal. A payment succeeding here says your integration is correct; it says nothing about how a real payment will be screened.

Test personas

Seeded customers with published credentials and IBANs — see the developer portal for the current list, which is regenerated whenever the sandbox resets. Each persona has a static SMS code, documented alongside it, so you can complete the redirect flow unattended.

Personas cover:

Restrictions worth knowing before you plan around them

Moving to production

Nothing to request. Point your client at the production host with your real QWAC. Your registration is created on the first request, and your authorisation is corroborated against the EBA register.

Sanity-check first: