Export jobs
Exports are asynchronous. You create a job scoped to a context, poll its status by ID, and download the file once it reaches
SUCCEEDED. Statuses are QUEUED, RUNNING, SUCCEEDED, FAILED, EXPIRED, and CANCELED.
Create an export job
POST to the context’s export-jobs collection. Responds 202 Accepted with the job ID and a poll URL.
reportType: one ofMATCHED,UNMATCHED,VARIANCE,EXCEPTIONS(the aliasesMATCHESandUNMATCHED_TRANSACTIONSnormalize to these values).format:CSV,JSON, orXML, in uppercase.dateFrom/dateTo: optionalYYYY-MM-DD.dateFromdefaults to 30 days beforedateTo, anddateTodefaults to tomorrow (UTC).sourceId: optional source filter.
Async export jobs do not support
SUMMARY (400) or PDF (422). The date window spans at most 365 days, and a longer window returns 400. Job creation returns 503 when asynchronous exports are not enabled for your environment.Poll job status
Read the top-level job route (thestatusUrl from creation).
contextId names the context the job exports. error carries the job’s last failure reason, when it has one. downloadUrl is the download route below, and it appears only once the job has SUCCEEDED and the file is still available. You can list a context’s jobs with GET /v1/contexts/{contextId}/export-jobs, list all jobs with GET /v1/export-jobs, and cancel a queued/running job with POST /v1/export-jobs/{jobId}/cancel.
Download the file
Returns a presigned URL, the original file name, a SHA-256 checksum, and the URL’s remaining lifetime in seconds.Disputes
You open a dispute against a specific exception when you need to contest a reconciliation discrepancy. A new dispute is
OPEN. Closing it sets WON or LOST, and both outcomes are terminal.
Open a dispute
POST to the exception’s disputes collection. Responds 201 Created.
category is one of BANK_FEE_ERROR, UNRECOGNIZED_CHARGE, DUPLICATE_TRANSACTION, AMOUNT_MISMATCH, or OTHER. The response omits evidence until the dispute has some. The openedBy field records the opening principal.
Matcher refuses to open a dispute with 409 (MTCH-0511) when the exception is RESOLVED or PENDING_RESOLUTION. It answers 409 (MTCH-0510) while a settlement is in progress on the exception. Retry that request after the settlement completes.
Submit evidence by URL
Attach a reference to an already-hosted evidence file plus a describing comment.fileUrl must be an https URL.
Upload an evidence file
Stream the raw file bytes directly to tenant-scoped object storage. The comment travels as a query parameter and the file as the request body. Responds201 Created with the updated dispute. Allowed content types are application/pdf, image/png, image/jpeg, and text/csv. The body has a 10 MiB limit.
evidence array lists each stored evidence item. For an uploaded file, fileUrl holds the object-storage key, not a download URL:
The upload endpoint returns
503 when evidence storage is unavailable. It rejects oversize bodies with 413 and content types outside the allowlist with 415. The tenant always comes from the JWT and the dispute from the path, never from the body.Close a dispute
Record the outcome.won: true sets the state to WON and won: false sets it to LOST. A resolution note is required.
GET /v1/disputes and fetch one with GET /v1/disputes/{disputeId}. The list endpoint filters by state, category, and date range, and it supports sorting and cursor pagination.

