Spend management and corporate card platform testing
FintechAssuranceLabs tests spend management and corporate card platforms, the category of products like Brex, Ramp, Pleo, and Spendesk. Test scope covers card controls at authorisation and clearing, approval workflows, receipt matching, accounting and ERP sync, and business onboarding. FintechAssuranceLabs engineers have tested corporate card programmes and hand over test evidence that an issuing bank or supervisor can review.
What breaks in corporate card money flows
A spend management platform earns interchange on each card transaction and a per-seat subscription for the controls, approvals, and accounting sync around the card. Each defect below hits one of those flows on every affected card.
- Spend counter updated by authorisations only. The control service enforces monthly limits and merchant category blocks on authorisation requests, but hotel incremental authorisations and force-posted clearing records do not update the spend counter. Later authorisations approve against a stale balance, and the business's charge card balance grows past the credit line the issuing bank approved. Interchange on that spend does not cover a default. Card issuing and processing testing delivers the spend control and authorisation rule test matrix.
- Company liability terms applied to a three-person business (US). Every business signs one company liability agreement, and the fraud workflow bills charges made after a lost card report to the business. Regulation Z 1026.12(a) and (b) apply to all credit cards, business cards included (official comment 3-1), and a charge card is a credit card (1026.2(a)(15)). Unauthorized use liability is capped at the lesser of $50 or the charges before notice (1026.12(b)(1)(ii)). Higher agreed liability is allowed only when one issuer issues 10 or more cards for an organisation's employees (1026.12(b)(5)), and comment 12(b)(5)-1 bars it when the business clearly cannot provide 10 cards. Each amount billed above the cap is refunded and appears in the fraud case log as a 1026.12(b) violation. See Regulation Z.
- Commercial card category lost in a processor migration (EU). New virtual cards are issued from a BIN range registered as consumer credit. Regulation (EU) 2015/751 caps interchange at 0.2% for debit and 0.3% for credit card transactions (Articles 3(1) and 4) and excludes commercial card transactions from those caps (Article 1(3)(a)), checked on 2026-09-16. Interchange on those cards is then limited to the caps wherever both payment service providers are in the Union. Article 10(5) requires issuers to make the card category electronically identifiable, so the wrong category is also a regulatory defect.
- Corporate exemption flag on every virtual card payment (EU). The platform marks all virtual card e-commerce payments with the secure corporate payment exemption, including cards an employee types into a public checkout. Article 17 of Delegated Regulation (EU) 2018/389 lets a provider skip SCA only for payments that legal persons initiate through dedicated processes or protocols available only to non-consumer payers, where the competent authority is satisfied that security is at least equivalent. EBA Q&A 2018_4060 (final, 7 June 2019, checked on 2026-09-16) requires that satisfaction before the provider uses the exemption. Under PSD2 Article 74(2), a payer whose provider did not require SCA bears no losses unless it acted fraudulently, so the issuer carries the fraud, unless the framework contract excluded Article 74 as Article 61(1) allows for non-consumer users. See PSD2 SCA.
- Accounting sync that keeps the authorisation amount. The sync writes each transaction to the ERP at authorisation and never replaces it with the cleared amount, so tips, fuel pre-authorisations, and foreign currency spend post at the wrong value, and refunds post as new expenses. The card liability account in the general ledger stops matching the card statement, and the business pays per seat for a sync its finance team reverses by hand. ERP and accounting integration testing delivers the sync scenario suite and the duplicate and missing record report.
Licence flag and the evidence issuing banks and supervisors ask for
Spend management carries the licence flag: a licensed bank or e-money institution issues the cards, and the platform runs the programme for that issuer or holds its own licence. Sources in this section were checked on 2026-09-16.
United States
A platform without a bank charter runs its card programme with an issuing partner bank, which oversees it under the Interagency Guidance on Third-Party Relationships (88 FR 37920, 9 June 2023). On 15 September 2026, the OCC, Federal Reserve, FDIC, and NCUA published a proposal to rescind and replace that guidance; comments close on 16 November 2026, and the proposal is not final.
When the business is the account holder, the bank identifies and verifies each individual owning 25% or more and one control person (31 CFR 1010.230(d)). FinCEN order FIN-2026-R001 (13 February 2026) lets covered institutions do this at the first account opening instead of at every new account, with re-verification when facts call the information into question or risk-based procedures require it.
Regulation Z exempts business-purpose credit (1026.3(a)) except the issuance and liability rules above. Cards funded from a business deposit or prepaid account fall outside Regulation E, which covers only accounts held primarily for personal, family, or household purposes (12 CFR 1005.2(b)(1)). The public Visa Core Rules (18 April 2026, ID# 0029326) bar systematic or wholesale declines, with exceptions that include a Commercial Card issuer's choice to block gambling and non-fiat currency purchases. Evidence to prepare for the partner bank:
- beneficial owner capture and verification test results per legal entity type;
- issuance records showing a request behind every credit card (1026.12(a));
- liability tests for businesses with fewer than 10 cards and with 10 or more;
- platform-wide merchant blocks traced to the network rule exception each one uses;
- reconciliation between the platform ledger, processor settlement, and the bank's programme accounts.
European Union
An EU platform issues cards as an e-money or payment institution, or runs the programme for a licensed issuer. Both institution types are in scope of DORA (Regulation (EU) 2022/2554, Article 2(1)(b) and (d)), which requires entities other than microenterprises to test ICT systems supporting critical or important functions at least yearly (Article 24(6)). The competent authority can request:
- the RTS Article 3 audit report on SCA measures, which Article 3(1) requires to be periodically tested;
- test evidence that the Article 17 exemption indicator appears only on the dedicated corporate process the authority assessed;
- card category identification results per BIN range for Article 10(5) of Regulation (EU) 2015/751;
- DORA test results for authorisation, spend control, and processor failover.
Spend management test scenarios
- Card controls per message type. Merchant category blocks, limits, and country rules on authorisations, incremental authorisations, reversals, refunds, and force-posted clearing, with the spend counter checked after each.
- Decline reasons. Each control returns its configured decline code, and a transaction the issuer has determined illegal returns code 93 on Visa (ID# 0029326).
- Approval workflows. Routing by amount, department, and cost centre; an approver on leave, an approver who is also the requester, and a request edited after approval.
- Card issuance and offboarding. An HR sync proposes a card that issues only after the administrator requests it; a departed employee's frozen card declines, the seat drops from the next invoice, and recurring vendor charges move to a named owner.
- Receipt matching. Matches on amount, date, and merchant name with tips, split payments, foreign currency receipts, and one receipt for two transactions.
- Accounting sync. Authorisation, cleared amount update, refund as a credit, and FX difference posted to the ERP; a retried webhook creates no duplicate journal entry.
- Lost card liability. Charges before and after the report, billed per card count, with nothing billed to an employee beyond Regulation Z limits.
- Interchange posting. Processor settlement interchange matches the ledger per transaction, refunds reverse it, and any share passed to the business uses settled amounts.
Integrations and protocols to cover
- Issuer processor messages. ISO 8583 authorisation, incremental, advice, and reversal messages, and real-time authorisation webhooks with stand-in behaviour when the platform endpoint times out.
- Clearing files. Network clearing records from the processor, reconciled against authorisations.
- Virtual card display and tokens. Card number and security code display in the app, and push provisioning to mobile wallets. Card numbers shown in the app are cardholder data in PCI DSS scope; see how we handle cardholder data and PCI DSS.
- 3-D Secure access control server. Challenge flows and out-of-band approval inside the app.
- Accounting and ERP APIs. Journal entry, bill, and vendor endpoints, chart of accounts and tax code mapping, and OAuth token refresh.
- HR and identity systems. HR employee feeds and SCIM provisioning that create, change, and remove cardholders and approvers.
- Business onboarding. KYB vendor APIs for registry lookups, beneficial owner capture, and sanctions screening.
- Repayment rails. Nacha CCD debits from the business account with return codes in the US, and SEPA Direct Debit business-to-business collections as ISO 20022 pain.008 in the EU.
Related
Standards
- PCI DSS 4.0
- EMV 3-D Secure 2
- EMV chip and contactless
- PSD2 and Strong Customer Authentication
- PSD3 and the Payment Services Regulation
- Digital Operational Resilience Act
- EU AML directives and regulation, KYC obligations
- GDPR for financial data
- ISO 20022
- Truth in Lending Act and Regulation Z
- Equal Credit Opportunity Act and Regulation B
- Nacha Operating Rules for ACH
- SOC 2
- ISO 27001
Services
- Card issuing and processing testing
- ERP and accounting integration testing
- Ledger and reconciliation testing
- Payment flow testing
- BaaS and partner bank integration testing
- Chargeback and dispute testing
- Security testing
- Test automation
- Audit and certification test evidence
- QA audit and test strategy
- Dedicated fintech QA team
Guides
- How to test SCA exemptions: low value, TRA, and trusted beneficiaries
- How to test 3DS2 challenge flows with 3DS test cards
- How to test ledger reconciliation against settlement files and bank statements
- How to test webhook delivery from BaaS and payment providers
- How to test payment idempotency
- How to use test card numbers in payment testing
- How to simulate chargebacks for disputes testing
- How to test FX markup: rate application and markup disclosure
Sample deliverable
Sample, synthetic data
| Control or requirement | Test case IDs | Run date | Result | Evidence file | Reviewer role |
|---|---|---|---|---|---|
| PCI DSS v4.0.1 3.3.1: the card verification code is not stored after authorisation | TC-PCI-031, TC-PCI-032, TC-PCI-033, TC-PCI-034 | 2026-09-08 | Passed: 4 of 4 test cases, no card verification code found in databases, logs, or queues | EP-01_pci-3.3.1_data-store-search.csv | Security test lead |
| PCI DSS v4.0.1 3.4.1: a displayed PAN shows at most the BIN and the last four digits | TC-PCI-040, TC-PCI-041, TC-PCI-042 | 2026-09-10 | Passed on retest: 3 of 3 test cases after the fix for defect DEF-118 (full PAN on the support detail view) | EP-02_pci-3.4.1_masking-per-role_retest.pdf | QA lead |
| PCI DSS v4.0.1 6.2.4: the refund API rejects a refund on a payment that another account owns | TC-SEC-210, TC-SEC-211 | 2026-09-09 | Passed: 2 of 2 test cases, each cross-account refund request returned HTTP 404 | EP-03_pci-6.2.4_refund-object-authorisation.pdf | Security test lead |
| SOC 2 CC6.2: sessions and API tokens of a deactivated user are rejected | TC-ACC-015, TC-ACC-016, TC-ACC-017 | 2026-09-09 | Passed: 3 of 3 test cases, each request after deactivation returned HTTP 401 | EP-04_soc2-cc6.2_deprovisioning-log.csv | QA lead |
| SOC 2 CC8.1: every change in the release ran the regression suite before production | RUN-REG-0907, RUN-REG-0910 | 2026-09-10 | Passed: 27 of 27 change tickets link to a green CI run | EP-05_soc2-cc8.1_ci-runs-per-change.csv | Test automation lead |
| PSD2 RTS Article 4(3)(b): access is blocked after five consecutive failed authentication attempts | TC-SCA-007, TC-SCA-008, TC-SCA-009, TC-SCA-010 | 2026-09-10 | Failed: 3 of 4 test cases passed; the app resets the attempt counter on a new session (defect DEF-131, release blocker) | EP-06_rts-art4-3b_lockout-per-channel.pdf | QA lead |
| PSD2 RTS Article 5(1): the payment executes only with the amount and payee shown at authentication | TC-SCA-020, TC-SCA-021, TC-SCA-022 | 2026-09-08 | Passed: 3 of 3 test cases, a changed payee after authentication invalidated the authentication code | EP-07_rts-art5-1_dynamic-linking.csv | Payments QA engineer |
| PSD2 RTS Article 10a: account information access through a third-party provider requires SCA again after 180 days | TC-AIS-004, TC-AIS-005, TC-AIS-006 | 2026-09-09 | Passed: 3 of 3 test cases, access allowed on day 179 and refused on day 181 without a new SCA | EP-08_rts-art10a_access-decisions.csv | Payments QA engineer |
Test case IDs, defect IDs, run dates, and evidence file names belong to a fictional release; PAN checks used scheme test card numbers, and no real account, customer, or person appears.
Questions
What is spend management software?
How do corporate credit cards work?
What is credit card reconciliation?
Scope your spend management testing
Send your issuing model, card processor, and connected accounting systems, and we return a test scope with the evidence each regulated card flow needs.
Scope your testing