Skip to content

Add SCA_NOT_COMPLETED outgoing transaction failure reason - #760

Closed
ls-bolt[bot] wants to merge 1 commit into
mainfrom
07-29-add-sca-not-completed-failure-reason
Closed

Add SCA_NOT_COMPLETED outgoing transaction failure reason#760
ls-bolt[bot] wants to merge 1 commit into
mainfrom
07-29-add-sca-not-completed-failure-reason

Conversation

@ls-bolt

@ls-bolt ls-bolt Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

This PR has been claimed. The active PR is now #762.

Summary

Adds SCA_NOT_COMPLETED to OutgoingTransactionFailureReason.

When a customer in an SCA-regulated region (e.g. the EU) is issued a Strong Customer Authentication challenge for a money movement and never satisfies it, the challenge expires and the transaction fails. Today that surfaces with no failureReason at all, so integrators can't tell an abandoned authorization apart from a genuine payment failure — the two need completely different follow-up.

The new value is scoped narrowly to the case where nothing moved, so the guidance in the description ("no funds were moved; create a new quote and have the customer authorize it while the challenge is live") is always true when a client sees it. Failures where an intermediate leg already executed and needs operator reconciliation continue to surface as QUOTE_EXECUTION_FAILED, matching how other operational failures are reported.

Compatibility

Non-breaking. oasdiff breaking against main reports 0 errors, 17 warnings — all the same response-property-enum-value-added informational warning, one per operation that returns an outgoing transaction. The repo's breaking-changes gate runs with --fail-on ERR, so this passes, and info.version is unchanged per the repo convention of bumping only for breaking changes.

Test plan

  • make build — rebundled openapi.yaml + mintlify/openapi.yaml; the diff is limited to this enum and its description
  • make lint-openapi — "Woohoo! Your API description is valid. 🎉", 0 errors (remaining warnings are pre-existing repo-wide schema-properties-have-examples noise, untouched by this change)
  • oasdiff breaking main HEAD --fail-on ERR — exit 0

Requested by @jklein24

@ls-bolt ls-bolt Bot added the bolt label Jul 29, 2026
@vercel

vercel Bot commented Jul 29, 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 Jul 29, 2026 6:04am
grid-wallet-demo Ignored Ignored Preview Jul 29, 2026 6:04am

Request Review

akanter commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

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

@github-actions

github-actions Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

✱ Stainless preview builds for grid

This PR will update the grid SDKs with the following commit messages.

cli

chore(internal): regenerate SDK with no functional changes

go

feat(api): add SCA_NOT_COMPLETED to OutgoingTransactionFailureReason enum

kotlin

feat(api): add SCA_NOT_COMPLETED to OutgoingTransaction failure reason

openapi

feat(api): add SCA_NOT_COMPLETED enum value to outgoing failure reasons

php

feat(api): add SCA_NOT_COMPLETED to OutgoingTransaction FailureReason enum

python

feat(api): add SCA_NOT_COMPLETED failure reason to outgoing_transaction

ruby

feat(api): add SCA_NOT_COMPLETED failure reason to OutgoingTransaction

typescript

feat(api): add SCA_NOT_COMPLETED failure reason to OutgoingTransaction

Edit this comment to update them. They will appear in their respective SDK's changelogs.

grid-typescript studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅lint ❗test ✅

npm install https://pkg.stainless.com/s/grid-typescript/3f1b44831db9776576b70dd627837fb727cb0873/dist.tar.gz
grid-openapi studio · code · diff

Your SDK build had at least one "warning" diagnostic, but this did not represent a regression.
generate ⚠️

grid-ruby studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅lint ✅test ✅

grid-go studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅lint ❗test ❗

go get github.com/stainless-sdks/grid-go@a7e97d7918ee0c1dbd227a9a6f8355e398f55b0c
grid-kotlin studio · code · diff

Your SDK build had at least one "warning" diagnostic, but this did not represent a regression.
generate ⚠️build ✅lint ✅test ❗

grid-python studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅lint ❗test ❗

pip install https://pkg.stainless.com/s/grid-python/440c81eb48332330bcc2f9fd9a8168cd98515c80/grid-0.0.1-py3-none-any.whl
grid-php studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅lint ✅test ✅

grid-cli studio · code · diff

Your SDK build had at least one "warning" diagnostic, but this did not represent a regression.
generate ⚠️build ❗lint ❗test ❗


This comment is auto-generated by GitHub Actions and is automatically kept up to date as you push.
If you push custom code to the preview branch, re-run this workflow to update the comment.
Last updated: 2026-07-29 06:09:50 UTC

@mintlify

mintlify Bot commented Jul 29, 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 Jul 29, 2026, 6:05 AM

@mintlify

mintlify Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

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

Project Status Preview Updated (UTC)
Grid 🟡 Building Jul 29, 2026, 6:04 AM

@jklein24 jklein24 closed this Jul 29, 2026
jklein24 added a commit that referenced this pull request Jul 30, 2026
## Summary

Adds `SCA_NOT_COMPLETED` to `OutgoingTransactionFailureReason`.

When a customer in an SCA-regulated region (e.g. the EU) is issued a
Strong Customer Authentication challenge for a money movement and never
satisfies it, the challenge expires and the transaction fails. Today
that surfaces with no `failureReason` at all, so integrators can't tell
an abandoned authorization apart from a genuine payment failure — the
two need completely different follow-up.

The new value is scoped narrowly to the case where nothing moved, so the
guidance in the description ("no funds were moved; create a new quote
and have the customer authorize it while the challenge is live") is
always true when a client sees it. Failures where an intermediate leg
already executed and needs operator reconciliation continue to surface
as `QUOTE_EXECUTION_FAILED`, matching how other operational failures are
reported.

## Compatibility

Non-breaking. `oasdiff breaking` against `main` reports **0 errors, 17
warnings** — all the same `response-property-enum-value-added`
informational warning, one per operation that returns an outgoing
transaction. The repo's breaking-changes gate runs with `--fail-on ERR`,
so this passes, and `info.version` is unchanged per the repo convention
of bumping only for breaking changes.

## Test plan

- `make build` — rebundled `openapi.yaml` + `mintlify/openapi.yaml`; the
diff is limited to this enum and its description
- `make lint-openapi` — "Woohoo! Your API description is valid. 🎉", 0
errors (remaining warnings are pre-existing repo-wide
`schema-properties-have-examples` noise, untouched by this change)
- `oasdiff breaking main HEAD --fail-on ERR` — exit 0

Requested by @jklein24

Original PR: #760
@jklein24
jklein24 deleted the 07-29-add-sca-not-completed-failure-reason branch July 30, 2026 01:19
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.

2 participants