Overview
If you believe an enrichment response may be inaccurate, you can submit a report using the /transactions/report endpoint. Our team will review your report and determine whether a correction is needed. If a correction is made, we’ll send the returned enrichment data to your callback URL so you can update your records automatically.Prerequisites
Before submitting error reports, you’ll need:- A callback URL — Provide an HTTPS endpoint to your Spade representative where we can deliver returned enrichments. Contact support@spade.com to configure this.
- A callback token — Your Spade representative will provide you with a token to validate that incoming callbacks are from Spade. Store this token securely on your server.
- An enrichment ID — The
enrichmentIdfrom the enrichment response you want to report.
Submitting an error report
Send a POST request to the/transactions/report endpoint with the enrichmentId of the enrichment you want to report and a description of what you believe may be inaccurate.
Request fields
Example request
Example response
A successful report returns an HTTP 200 response:Receiving the outcome
Once our team reaches a decision on your report, we automatically send the outcome to the callback URL you configured with your Spade representative — you don’t need to poll or wait for a manual response.Callback format
The callback is a POST request to your callback URL. Its body is a normal card enrichment response — see that page for the full field reference (enrichmentId, transactionInfo, counterparty, etc.) — with the fields below merged in at the top level to describe the report’s outcome. The same enrichment fields are also nested under correctedData, for integrations that prefer reading them from there instead of the top level. The request includes an X-Webhook-Token header that you should validate against the callback token provided by your Spade representative.
reason is usually one of a fixed set of internal codes (e.g. counterparty_correct_spade_verified, location_correct_spade_verified, logo_correct_spade_verified, category_correct_indicated_by_mcc) describing why a report was rejected. When no fixed code fits, it instead carries the reviewer’s free-text explanation in place of the literal code other. Treat the fixed codes as a growing enum rather than an exhaustive list.Validating the callback
You must verify theX-Webhook-Token header matches the token provided to you by Spade before processing the returned enrichment. This ensures the callback is genuinely from Spade and has not been tampered with.
Example callback handler
The Python example above uses Flask for illustrative purposes only. You can implement your callback handler using any web framework or language that can receive HTTP POST requests.
Workflow summary
- You enrich a transaction and receive a response with an
enrichmentId - You believe the enrichment may be inaccurate and submit a report to
/transactions/report - Spade’s team reviews the report and either accepts it with a correction, or rejects it
- Once reviewed, Spade automatically sends the outcome to your callback URL with the
X-Webhook-Tokenheader - Your server validates the token, updates its records with
correctedData, and handles the rejection reason whenstatusisrejected
Error handling
For questions about error reporting or to set up your callback URL, contact support@spade.com.

