Accounting Connections
Connect an accounting platform via OAuth2 so converted files are delivered there automatically — with an honest statement of what platforms allow.
What connections do — honestly
/v1/connections links transmute to your accounting platform so batch results are delivered there on completion: the generated CSV/OFX/XML file lands in the platform's file library for one-click import by a user.
The honest scope: no accounting platform exposes a public API that writes bank statement lines directly. Delivery-to-file-library is what their public APIs actually permit, and transmute never claims otherwise.
| Platform | Delivery |
|---|---|
| Xero | Automatic — file lands in the Xero file library via its Files API |
| QuickBooks | Manual import runbook — we generate the right file, you import it |
| Sage | Manual import runbook — same |
Set up a connection (Xero)
Requires the opt-in connections:manage scope:
curl -sS -X POST https://api.transmute.403fin.io/v1/connections \
-H "Authorization: Bearer $TRANSMUTE_KEY" \
-H "Content-Type: application/json" \
-d '{"provider": "xero"}'
# → {"id": "...", "authorizeUrl": "https://login.xero.com/..."}
Open authorizeUrl in a browser and approve access; the OAuth callback completes the connection. Then reference the connection when enqueuing a batch job with a file target (to: "csv", "ofx", ...), and each result file is pushed on completion.
GET /v1/connections lists connections; DELETE /v1/connections/{id} disconnects (revoking our access).
Failure modes
connection-failed422 — the connection is broken (revoked/expired authorization). Re-connect.provider-error502 — the platform's API failed on delivery. Retryable; the file remains fetchable viaGET /v1/jobs/{id}for the job TTL.
Privacy
Delivery is payload transit at your explicit instruction — it extends no retention (the normal batch TTL and purge apply unchanged). Provider tokens are stored encrypted (AES-256-GCM), never appear in any response or log, and delivery errors never echo provider payloads.