Skip to content

docs(transactions): document the cancel 501 and add a CANCELED transaction status - #862

Draft
ls-bolt[bot] wants to merge 1 commit into
mainfrom
08-24-grid-cancel-501-and-canceled-status
Draft

docs(transactions): document the cancel 501 and add a CANCELED transaction status#862
ls-bolt[bot] wants to merge 1 commit into
mainfrom
08-24-grid-cancel-501-and-canceled-status

Conversation

@ls-bolt

@ls-bolt ls-bolt Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Summary

POST /transactions/{transactionId}/cancel shipped without three things integrators need:

  • The 501 was undocumented. It is the response for every rail whose banking partner exposes no cancellation facility — the endpoint's most common path, not an edge case — so integrators hit an undocumented status.
  • There was no way to see that a cancel succeeded. OutgoingTransactionStatus had no CANCELED, so a confirmed cancellation was indistinguishable from a payment that failed on our side.
  • The description promised wire cancellation, which never works. A wire leg is not cancellable and always returns 409.

Changes: 7 files

  • openapi/paths/transactions/transactions_{transactionId}_cancel.yaml
    • Add the 501 response (Error501, already used by /cards, /customers, /platform/config).
    • Rewrite the 200 description: a success means the partner accepted the request, not that the transfer is already cancelled — it confirms asynchronously, so the returned transaction may still report its pre-cancellation status.
    • Scope the description to ACH. Wires and RTP cannot be withdrawn once submitted and are never cancellable; the old text offered wire cancellation that the API refuses with a 409.
  • openapi/components/schemas/transactions/OutgoingTransactionStatus.yaml — add the terminal CANCELED status.
  • openapi/components/schemas/webhooks/WebhookType.yaml, OutgoingPaymentWebhook.yaml — add OUTGOING_PAYMENT.CANCELED. Without it a cancelled transfer has no webhook type to send under, so a webhook-enabled platform would only learn of the cancellation by polling.
  • mintlify/changelog.mdx — August 2026 entry for the endpoint. The API's own 501 message tells integrators to "track availability in the Grid changelog", which until now never mentioned it.
  • openapi.yaml, mintlify/openapi.yaml — regenerated bundles (make build).

No info.version bump — additive only.

Verification

  • make build regenerates cleanly.
  • make lint-openapi exits 0; remaining output is the pre-existing example/description info+warning noise on *Beneficiary schemas.

Notes

Requested by @aaryaman

@mintlify

mintlify Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
Grid 🟢 Ready View Preview Aug 24, 2026, 11:51 PM

@vercel

vercel Bot commented Aug 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Actions Updated (UTC)
grid-flow-builder Ignored Ignored Preview Aug 25, 2026 11:55pm
grid-wallet-demo Ignored Ignored Preview Aug 25, 2026 11:55pm

Request Review

@ls-bolt ls-bolt Bot added the bolt label Aug 24, 2026

Copy link
Copy Markdown

This stack of pull requests is managed by Graphite. Learn more about stacking.

Co-Authored-By: AaryamanBhute <AaryamanBhute@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant