Readiness Test Cases - Account & Payment Services
This page lists all test cases executed by the bLink Readiness Check against a Service Provider's API implementation. Each test validates a specific aspect of the API behavior against the respective API specification.
How tests are organized
Tests are grouped by endpoint resource (e.g. Accounts, Balance, Transactions, Diagnostics, ISO 20022 Statements & Reports). The Readiness Check executes both positive tests (valid requests and expected payloads) and negative tests (invalid input and expected error handling).
The Syntax Readiness Check covers only a subset of the test scenarios listed on this page. The full range of scenarios is only covered by the Extended Readiness Check.
In addition to status codes, content attributes in the response payload are validated against specific rules per test. The detailed assertions can be looked up in the Readiness Report, where non-conforming attributes are highlighted in red.
AIS v6
Accounts
| Test ID | Test Scenario | Expected Status | Expected Content |
|---|
| AIS-V6-ACCTS-01 | GET /accounts without parameters | 200 | List structure and required attributes valid |
| AIS-V6-ACCTS-02 | GET /accounts with limit=1 | 200 | Cursor pagination via X-Next-Cursor until empty |
| AIS-V6-ACCTS-03 | GET /accounts with limit=100 | 200 | Cursor pagination via X-Next-Cursor until empty |
| AIS-V6-ACCTS-04 | GET /accounts with invalid cursor (SIX123) | 400 | Problem type /problems/INVALID_PAYLOAD |
| Test ID | Test Scenario | Expected Status | Expected Content |
|---|
| AIS-V6-ACCT-01 | GET /accounts/{validAccountId} | 200 | Object structure and required attributes valid |
| AIS-V6-ACCT-02 | GET /accounts/{nonExistingAccountId} | 403 / 404 | Problem type /problems/INSUFFICIENT_PRIVILEGES |
| AIS-V6-ACCT-03 | GET /accounts/{unauthorizedAccountId} | 403 / 404 | Problem type /problems/INSUFFICIENT_PRIVILEGES or EXPIRED_TOKEN |
Accounts - Balance
| Test ID | Test Scenario | Expected Status | Expected Content |
|---|
| AIS-V6-BAL-01 | GET /balance without parameters | 200 | balanceType: ITBD |
| AIS-V6-BAL-02 | GET /balance with date=sameDay | 200 / 202 | balanceType: ITBD, date: today |
| AIS-V6-BAL-03 | GET /balance with date=previousWorkingDay | 200 / 202 | balanceType: CLBD or status 202 if not finalized |
| AIS-V6-BAL-04 | GET /balance with date=previous7Days | 200 / 204 | If 200: balanceType: CLBD, date matches request |
| AIS-V6-BAL-05 | GET /balance with date=previousYear | 200 / 204 | If 200: balanceType: CLBD, date matches request |
| AIS-V6-BAL-06 | GET /balance with date=previous2Year | 200 / 204 | If 200: balanceType: CLBD, date matches request |
| AIS-V6-BAL-07 | GET /balance with date=previous5Year | 200 / 204 | If 200: balanceType: CLBD, date matches request |
| AIS-V6-BAL-08 | GET /balance with date=nextDay (future date) | 202 / 400 | Problem type /problems/INVALID_PAYLOAD or MALFORMED_PAYLOAD |
| AIS-V6-BAL-09 | GET /balance for {nonExistingAccountId} | 403 / 404 | Problem type /problems/INSUFFICIENT_PRIVILEGES |
| AIS-V6-BAL-10 | GET /balance for {unauthorizedAccountId} | 403 / 404 | Problem type /problems/INSUFFICIENT_PRIVILEGES |
Accounts - Transactions
| Test ID | Test Scenario | Expected Status | Expected Content |
|---|
| AIS-V6-TRAN-01 | GET /transactions without date, entryStatus=both | 200 | List structure and required attributes valid |
| AIS-V6-TRAN-02 | GET /transactions without date, entryStatus=booked | 200 | Only booked entries returned, required attributes valid |
| AIS-V6-TRAN-03 | GET /transactions without date, entryStatus=pending | 200 | Only pending entries returned, required attributes valid |
| AIS-V6-TRAN-04 | GET /transactions with dateFrom=sameDay, dateTo=sameDay | 202 | Request accepted, day not yet finalized |
| AIS-V6-TRAN-05 | GET /transactions for last 2 years, limit=1000 | 200 | Cursor pagination via X-Next-Cursor until empty |
| AIS-V6-TRAN-06 | GET /transactions for last 2 years, limit=1 | 200 | Cursor pagination via X-Next-Cursor until empty |
| AIS-V6-TRAN-07 | GET /transactions for last 6 years, limit=100 | 200 | Cursor pagination via X-Next-Cursor until empty |
| AIS-V6-TRAN-08 | GET /transactions for range out of supported history, limit=100 | 200 / 204 | Empty list or 204 |
| AIS-V6-TRAN-09 | GET /transactions with invalid cursor (SIX123) | 400 / 404 | Problem type /problems/INVALID_PAYLOAD |
| AIS-V6-TRAN-10 | GET /transactions for {nonExistingAccountId} | 403 / 404 | Problem type /problems/INSUFFICIENT_PRIVILEGES |
| AIS-V6-TRAN-11 | GET /transactions for {unauthorizedAccountId} | 403 / 404 | Problem type /problems/INSUFFICIENT_PRIVILEGES |
| AIS-V6-TRAN-12 | Request invalid endpoint (e.g. /transactions({test})) | 404 | Resource not found |
Accounts - AccountId cross-version validation
| Test ID | Test Scenario | Expected Status | Expected Content |
|---|
| AIS-V6-ACCTID-01 | GET /accounts for AIS v5 and AIS v6 and validate AccountID consistency | 200 | accountId values returned are identical across both API versions |
Diagnostics
| Test ID | Test Scenario | Expected Status | Expected Content |
|---|
| AIS-V6-DIAG-01 | GET /healthcheck with different headers | 200 | receivedHeaders reflects X-Correlation-ID and X-CorAPI-Target-ID |
| AIS-V6-DIAG-02 | GET /healthcheck with different headers | 200 | receivedHeaders reflects request headers; authorization header is null |
| AIS-V6-DIAG-03 | POST /healthcheck | 405 | Problem type /problems/WRONG_METHOD |
ISO 20022 Statements & Reports
| Test ID | Test Scenario | Expected Status | Expected Content |
|---|
| AIS-V6-ISO-00 | GET /statements without parameters | 200 | List structure and required attributes valid |
| AIS-V6-ISO-01 | GET /statements with dateFrom=previous2Year, dateTo=yesterday, limit=1 | 200 | Cursor pagination via X-Next-Cursor until empty |
| AIS-V6-ISO-02 | GET /statements with dateFrom=previous2Year, dateTo=sameDay, limit=1 | 200 | Cursor pagination via X-Next-Cursor until empty |
| AIS-V6-ISO-03 | GET /statements without date parameters, limit=100 | 200 | Cursor pagination via X-Next-Cursor until empty |
| AIS-V6-ISO-04 | GET /statements with dateFrom=sameDay, dateTo=sameDay, limit=10 | 200 | Cursor pagination via X-Next-Cursor until empty |
| AIS-V6-ISO-05 | GET /statements with invalid cursor (SIX123) | 400 / 404 | Problem type for invalid cursor |
| AIS-V6-ISO-07 | GET /statements/{validReportId} | 200 | Statement conforms to schema camt.053.001.08 |
| AIS-V6-ISO-08 | GET /statements/{invalidReportId} | 404 | Problem type /problems/RESOURCE_DOES_NOT_EXIST |
| AIS-V6-ISO-09 | GET /reports without parameters | 200 | List structure and required attributes valid |
| AIS-V6-ISO-10 | GET /reports/{validReportId} | 200 | Report conforms to schema camt.052.001.08 |
PSS v6
Consents
| Test ID | Test Scenario | Expected Status | Expected Content |
|---|
| PSS-V6-CONS-01 | GET /consents without parameters | 200 | List structure and required attributes valid |
| PSS-V6-CONS-02 | GET /consents with limit=1 | 200 | Cursor pagination via X-Next-Cursor until empty |
| PSS-V6-CONS-03 | GET /consents with limit=100 | 200 | Cursor pagination via X-Next-Cursor until empty |
| PSS-V6-CONS-04 | GET /consents with invalid cursor (SIX123) | 400 / 404 | Problem type /problems/INVALID_PAYLOAD or /problems/RESOURCE_DOES_NOT_EXIST |
| PSS-V6-CONS-05 | GET /consents with invalid token | 401 | Problem type /problems/INVALID_TOKEN; error detail in WWW-Authenticate header (not null) |
Diagnostics
| Test ID | Test Scenario | Expected Status | Expected Content |
|---|
| PSS-V6-DIAG-01 | GET /healthcheck with different headers | 200 | receivedHeaders reflects X-Correlation-ID and X-CorAPI-Target-ID |
| PSS-V6-DIAG-02 | GET /healthcheck with different headers | 200 | receivedHeaders reflects request headers; authorization header is null |
| PSS-V6-DIAG-03 | POST /healthcheck with different headers | 200 | receivedHeaders reflects X-Correlation-ID and X-CorAPI-Target-ID |
| PSS-V6-DIAG-04 | POST /healthcheck with different headers | 200 | receivedHeaders reflects X-Correlation-ID, X-CorAPI-Target-ID and x-psu-ip-address |
Payments (ISO20022 / XML)
| Test ID | Test Scenario | Expected Status | Expected Content |
|---|
| PSS-V6-ISO-01 | POST /iso20022/payments, type D with SCOR reference, endToEndId=XML-DV1-001, executionDate=previousWorkingDay → GET /status | 201 → 200 | submissionId in body and Location header; submission status ACCP, ACTC, ACWC, ACSC or RCVD |
| PSS-V6-ISO-02 | POST /iso20022/payments, bulk type D with combined QRR+SCOR references, endToEndId=XML-DV1-003 and XML-DV1-004, executionDate=sameDay → GET /status | 201 → 200 | submissionId returned; submission status ACCP, ACTC, ACWC, ACSC or RCVD |
| PSS-V6-ISO-03 | POST /iso20022/payments, type D with QRR reference, endToEndId=XML-DV1-002, executionDate=previousWorkingDay → GET /status | 201 → 200 | submissionId returned; submission status ACCP, ACTC, ACWC, ACSC or RCVD |
| PSS-V6-ISO-04 | POST /iso20022/payments, type S (SEPA), endToEndId=XML-S01-001, executionDate=previousWorkingDay → GET /status | 201 → 200 | submissionId returned; submission status ACCP, ACTC, ACWC, ACSC or RCVD |
| PSS-V6-ISO-05 | POST /iso20022/payments with invalid payload | 400 | Problem type /problems/INVALID_PAYLOAD |
| PSS-V6-ISO-06 | POST /iso20022/payments with invalid debtorAccount → if 201, GET /status | 403 or 201 → 200 | If 403: rejected at submission. If 201: GET /status returns statusCode: RJCT |
| PSS-V6-ISO-07 | GET /iso20022/payments/{invalidSubmissionId}/status (e.g. SixTest_*) | 404 | Problem type /problems/RESOURCE_DOES_NOT_EXIST |
Payments (JSON)
| Test ID | Test Scenario | Expected Status | Expected Content |
|---|
| PSS-V6-PAYM-01 | POST /payments, type D with SCOR reference, endToEndId=JSON-DV1-001, executionDate=previousWorkingDay → GET /status | 201 → 200 | submissionId in body and Location header; submission status ACCP or RCVD |
| PSS-V6-PAYM-02 | POST /payments, bulk type D with combined QRR+SCOR references, endToEndId=JSON-DV1-003 and JSON-DV1-004, executionDate=sameDay → GET /status | 201 → 200 | submissionId returned; submission status ACCP or RCVD |
| PSS-V6-PAYM-03 | POST /payments, type D with QRR reference, endToEndId=JSON-DV1-002, executionDate=previousWorkingDay → GET /status | 201 → 200 | submissionId returned; submission status ACCP or RCVD |
| PSS-V6-PAYM-04 | POST /payments, type S (SEPA), endToEndId=JSON-S01-001, executionDate=previousWorkingDay → GET /status | 201 → 200 | submissionId returned; submission status ACCP or RCVD |
| PSS-V6-PAYM-05 | POST /payments, max allowed characters, endToEndId=JSON-MAX-001, executionDate=previousWorkingDay → GET /status | 201 → 200 | submissionId returned; submission status ACCP or RCVD |
| PSS-V6-PAYM-06 | POST /payments with invalid payload | 400 | Problem type /problems/INVALID_PAYLOAD |
| PSS-V6-PAYM-07 | POST /payments with invalid or expired token | 401 / 403 | Problem type /problems/INVALID_TOKEN, EXPIRED_TOKEN or INSUFFICIENT_PRIVILEGES |
| PSS-V6-PAYM-08 | POST /payments with invalid debtorAccount → if 201, GET /status | 403 or 201 → 200 | If 403: rejected at submission. If 201: GET /status returns statusCode: RJCT |
| PSS-V6-PAYM-09 | GET /payments/{invalidSubmissionId}/status (e.g. SixTest_*) | 404 | Problem type /problems/RESOURCE_DOES_NOT_EXIST |
Enhanced Validation - Account & Payment Services
How tests are organized
The Enhanced Validation verifies that payments submitted via PSS are processed correctly by the Service Provider and that the submitted attributes are returned as intended via the AIS endpoints.
Tests are grouped by submission format:
- JSON Tests submit payments via
POST /payments and retrieve them via GET /accounts/{accountId}/transactions (JSON response).
- XML Tests submit payments via
POST /iso20022/payments and retrieve them via GET /iso20022/statements/{reportId} (camt.053.001.08 response).
Each test uses the endToEndId from the corresponding PSS submission (e.g. JSON-DV1-001, XML-S01-001) to look up the transaction on the validation date and verifies that all submitted attributes appear correctly mapped in the AIS payload.
JSON Tests
| Test ID | Test Scenario | Expected Status | Expected Content |
|---|
| AIS/PSS-V6-JSON-001 | Lookup transaction with endToEndId=JSON-DV1-001 (Type D, SCOR, with postal address) | 200 | Submitted PSS attributes match returned AIS attributes per JSON mapping. |
| AIS/PSS-V6-JSON-002 | Lookup transaction with endToEndId=JSON-DV1-002 (Type D, QRR, with postal address) | 200 | Submitted PSS attributes match returned AIS attributes per JSON mapping. |
| AIS/PSS-V6-JSON-003+004 | Lookup transactions with endToEndId=JSON-DV1-003 and JSON-DV1-004 (bulk submission, mixed references) | 200 | Submitted PSS attributes match returned AIS attributes for both payments per JSON mapping. |
| AIS/PSS-V6-JSON-005 | Lookup transaction with endToEndId=JSON-S01-001 (Type S, SEPA EUR with currency exchange) | 200 | Submitted PSS attributes match returned AIS attributes per SEPA JSON mapping. |
| AIS/PSS-V6-JSON-006 | Lookup transaction with endToEndId=JSON-Max-001 (Type D, SCOR, maximum allowed field lengths) | 200 | Submitted PSS attributes match returned AIS attributes per JSON mapping. |
| Test ID | Test Scenario | Expected Status | Expected Content |
|---|
| AIS/PSS-V6-MATCH-001 | Retrieve the same transaction via GET /accounts/{accountId}/transactions (JSON) and GET /iso20022/statements/{reportId} (camt.053 XML) using endToEndId=JSON-DV1-001, and compare common attribute values between both formats | 200 | Common attribute values are identical between the JSON and XML response for the same transaction |
XML Tests
| Test ID | Test Scenario | Expected Status | Expected Content |
|---|
| AIS/PSS-V6-XML-001 | Lookup transaction with endToEndId=XML-DV1-001 (Type D, SCOR via Cd, no postal address) | 200 | Submitted PSS attributes match returned AIS camt.053 attributes per XML mapping. |
| AIS/PSS-V6-XML-002 | Lookup transaction with endToEndId=XML-DV1-002 (Type D, with postal address, Prtry reference code) | 200 | Submitted PSS attributes match returned AIS camt.053 attributes per XML mapping. |
| AIS/PSS-V6-XML-003+004 | Lookup transactions with endToEndId=XML-DV1-003 and XML-DV1-004 (bulk submission, mixed references) | 200 | Submitted PSS attributes match returned AIS camt.053 attributes for both payments per XML mapping. |
| AIS/PSS-V6-XML-005 | Lookup transaction with endToEndId=XML-S01-001 (Type S, SEPA EUR with currency exchange) | 200 | Submitted PSS attributes match returned AIS camt.053 attributes per SEPA XML mapping. |