docs(transactions): document the cancel 501 and add a CANCELED transaction status - #862
Draft
ls-bolt[bot] wants to merge 1 commit into
Draft
docs(transactions): document the cancel 501 and add a CANCELED transaction status#862ls-bolt[bot] wants to merge 1 commit into
ls-bolt[bot] wants to merge 1 commit into
Conversation
Contributor
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
|
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Co-Authored-By: AaryamanBhute <AaryamanBhute@users.noreply.github.com>
ls-bolt
Bot
force-pushed
the
08-24-grid-cancel-501-and-canceled-status
branch
from
August 25, 2026 23:55
7448c3a to
05b5744
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
POST /transactions/{transactionId}/cancelshipped without three things integrators need:501was 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.OutgoingTransactionStatushad noCANCELED, so a confirmed cancellation was indistinguishable from a payment that failed on our side.409.Changes: 7 files
openapi/paths/transactions/transactions_{transactionId}_cancel.yaml501response (Error501, already used by/cards,/customers,/platform/config).200description: 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.409.openapi/components/schemas/transactions/OutgoingTransactionStatus.yaml— add the terminalCANCELEDstatus.openapi/components/schemas/webhooks/WebhookType.yaml,OutgoingPaymentWebhook.yaml— addOUTGOING_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 own501message 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.versionbump — additive only.Verification
make buildregenerates cleanly.make lint-openapiexits 0; remaining output is the pre-existing example/description info+warning noise on*Beneficiaryschemas.Notes
200/501wording is preserved verbatim here; that branch also carried a duplicated commit, so this is rebuilt on currentmain. Close docs(transactions): document the 501 response on the cancel endpoint #774 in favour of this.CANCELEDis spec-only until the backend emits it — that lands in a follow-up on webdev, which maps a cancellation-driven flow-run failure to this status instead of folding it intoFAILED. Ordering is deliberate: the spec accepts the value before anything produces it.Requested by @aaryaman