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

← All documentation

Confirmation of funds

For card-based payment instrument issuers (CBPII) under PSD2 Art. 65.

Prerequisite

A consent of type cbpii, authorised by the customer. An account-information consent cannot be used here — the two grant different things, and a data consent must not become a way to poll someone’s solvency. Trying returns CONSENT_UNKNOWN.

Your certificate must carry the PSP_IC role, or you get ROLE_INVALID.

It has its own endpoint. POST /v1/consents creates account-information consents only and will not give you one that works here.

curl -X POST https://xs2a.paysaxas.com/v1/consents/confirmation-of-funds \
  --cert qwac.pem --key qwac.key \
  -H "Content-Type: application/json" \
  -H "X-Request-ID: 0f9c1a2e-8f1a-4f57-9a1e-0f4b1b6c9d21" \
  -H "TPP-Redirect-URI: https://your-app.example/psd2/return" \
  -d '{
        "account": {"iban": "FI2112345600000785"},
        "cardNumber": "4111111111111111",
        "cardExpiryDate": "2028-05-31"
      }'

Request

curl -X POST https://xs2a.paysaxas.com/v1/funds-confirmations \
  --cert tpp-qwac.pem --key tpp-qwac.key \
  -H "Content-Type: application/json" \
  -H "X-Request-ID: 1a7c9d2e-77d2-4a1c-9e6b-5a3f1b2c8d90" \
  -H "Consent-ID: PSXS-CONSENT-9a1c..." \
  -d '{
        "account":          {"iban": "FI2112345600000785"},
        "instructedAmount": {"currency": "EUR", "amount": "125.50"}
      }'

Response

{ "fundsAvailable": true }

That is the entire response, and it always will be. No balance, no shortfall, no account status, no reason. PSD2 entitles you to a yes or a no; anything more would be a running read on the customer’s finances that no consent covers.

Our own tests assert the response has exactly one key, so a future addition cannot slip in unnoticed.

Notes