Finance SystemsArticle

Test the failures before trusting an invoicing integration

3 min read
Illustration of two systems with a broken connection and a checklist of test results

A successful demo proves that one path worked once. It does not prove that the integration will avoid duplicate invoices, suppress reminders after payment or recover cleanly when a connection fails. Those behaviors need explicit acceptance tests before live use.

Stripe documents duplicate webhook delivery and non-guaranteed event ordering. It also provides idempotency keys for safely retrying supported API requests.[1][2] These are reasons to test failure handling; they are not evidence that every third-party connector implements the required controls correctly.

Start with a complete normal transaction

Use test records to trace an approved billing event through invoice creation, delivery, payment, allocation and reporting. Confirm customer identity, legal entity, amounts, dates, identifiers and status at each step. Save the expected and actual result with evidence.

Then test a normal variation: a partial payment, multiple invoices paid together and a credit against an outstanding balance. Confirm that follow-up refers to the remaining valid amount. The cash application article explains why the paid flag alone is not a sufficient test.

Repeat and reorder the information

Send the same approved event twice. The expected business result is one invoice and a record that the repeated event was safely handled. Test an invoice created manually before the automated event arrives, because event-level deduplication alone may not catch that situation.

Deliver an older status after a newer payment update. The balance should not revert merely because the older notification arrived last. Test the same event after a temporary outage and again after a longer recovery interval. The integration needs a durable business reference, not just a short-lived memory of recent notifications.

An idempotency key is one technical control, not a complete business design. The rules must also distinguish a legitimate second milestone from an accidental repeat of the first. System ownership and identifiers provide the foundation for that decision.

Simulate the connection disappearing

Expire credentials, interrupt a transfer and make the destination unavailable in a controlled environment. Confirm the error is visible to a named owner, retries do not create duplicates, and staff can identify whether the destination already accepted the record.

Test a failure after the invoice is created but before its identifier returns to the source. This is especially revealing: an indiscriminate retry can create a second invoice even though the original action succeeded. Recovery should inspect or reconcile the existing business transaction before attempting another creation.

Test permissions and changes

Verify that an unauthorized user cannot release an invoice, approve a credit or alter a payment destination. Amend the contract amount after a draft exists and confirm the required approval and audit history. Reverse or refund a payment and check both financial and communication consequences.

Changes to bank or remittance details deserve particular care. FBI guidance recommends verification of changes to invoices, deposit information and contacts.[3] Integrations should preserve the business's verification process rather than bypass it.

Agree a release gate and a rollback plan

Classify failures by impact. A cosmetic formatting issue and an incorrect charge should not receive the same priority. Do not launch with unresolved failures that could misstate balances, duplicate bills or send materially incorrect customer messages.

Define how to disable automation, preserve queued events and reconcile the affected transactions if a problem appears. Run a limited pilot and review its exceptions before expanding. Testing is complete when the business can demonstrate both normal processing and safe, visible recovery from the failures it is likely to encounter.

Sources

  1. Stripe. Receive Stripe events in your webhook endpoint (opens in a new tab). Living documentation accessed 28 September 2026. Technical documentation.↩
  2. Stripe. Idempotent requests (opens in a new tab). Living documentation accessed 28 September 2026. Technical documentation.↩
  3. FBI Internet Crime Complaint Center. Business Email Compromise Contributes To Large Scale Business Losses Nationwide (opens in a new tab). 11 June 2018. Government advisory.↩