Core concepts
Testing
What you build against, what's already there for you, and what to check before you go live.
Build against the sandbox
Register, take your key, and call. Every documented endpoint answers, your new organisation starts with the records the reference shows, and nothing you do has an effect outside the sandbox.
Every endpoint page carries a Try it panel, already filled in from the documents. Press Send and you've made a real request with your own key, from the page that documents it.
Test the things that are easy to get wrong
- Retry a request with the same idempotency key and check you handle a replay rather than treating it as a second record.
- Send an idempotency key with a changed body and check you handle the refusal.
- Trigger a test webhook, verify the signature over the raw bytes, and answer 2xx before doing your work.
- Read an event list from a sequence and check you can catch up rather than only handling live deliveries.
- Branch on an error
code, never on the title or the detail. - Store amounts as integers. If your own database column is a float, the drift starts on your side of the wire.
Before you go live
Nothing about your integration changes except the credential. Check the things the sandbox can't make happen to you: your webhook endpoint down for a day, a rail that degrades, an authority that rejects a filing.
Read the error index for the module you're integrating and make sure every code it can return has somewhere to go in your code.