Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 3 Skipped Deployments
|
This stack of pull requests is managed by Graphite. Learn more about stacking. |
|
|
⚡ Review rounds — updated in place, latest first. Round 1 · f1830f9
|
8dc0679 to
f1830f9
Compare
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
|
⚡ Review ledger Round 1
Round 2
Round 3
Round 4
Round 5
|
…tion Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
f1830f9 to
2963459
Compare
|
🦣 Congratulations @shreyav - your substantive review earned a Giant bone-crushing dog! (uncommon)
View your Frost-dex: https://zeus.dev.dev.sparkinfra.net/#/dinodex/shreyav?section=ice-age |
AchRailDetails, WireRailDetails, RtpRailDetails and FedNowRailDetails now compose BaseUsdBankRailDetails, which carries bankAccount (UsdBankAccountDetails) and settledAt. Each rail keeps its own paymentRail, status and rail identifiers. bankAccount.bankName is optional on every US rail and is populated on wires. Co-Authored-By: shreyav <shreyav@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
| @@ -14,9 +14,12 @@ allOf: | |||
| type: string | |||
There was a problem hiding this comment.
[Re: line +3]
I think there are some fields in here about the bank account details that need to be marked deprecated?
See this comment inline on Graphite.
There was a problem hiding this comment.
AccountTransactionSource has no bank-account fields of its own: accountId points at the account, and onChainTransaction is deprecated in this PR. The flat bank fields live on RealtimeFundingTransactionSource (accountHolderName, accountIdentifier, bankName, bankIdentifier, paymentRail, remittanceInformation, endToEndId, traceNumber), and all of them are already marked deprecated there in favor of railDetails. Did you have a different field in mind?
|
📌 Bolt Status 2026-10-01 07:31:16 UTC — ⚡ Agent |
|
🦣 Congratulations @pengying - your substantive review earned a Giant rat-kangaroo! (common)
View your Frost-dex: https://zeus.dev.dev.sparkinfra.net/#/dinodex/pengying?section=ice-age |
| @@ -14,9 +14,12 @@ allOf: | |||
| type: string | |||
ACH, RTP and FedNow entries carry no bank name, so UsdBankAccountDetails drops it. WireRailDetails uses WireBankAccountDetails, which adds bankName. Co-Authored-By: akanter <akanter@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@greptile review |
… beside it A returned payout keeps its published lifecycle: COMPLETED, then FAILED with PAYOUT_RETURNED, then REFUND_PENDING and REFUND_COMPLETED. Its destination's railDetails now also reports RETURNED with returnedAt. A returned incoming payment stays COMPLETED, and its webhook is sent again with the source's railDetails showing RETURNED. Restores the published payout status, failure-reason and lifecycle text, and turns the returned-payout webhook example into OUTGOING_PAYMENT.FAILED. Co-Authored-By: shreyav <shreyav@users.noreply.github.com> Co-Authored-By: akanter <akanter@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Summary
Adds
railDetailsto transaction sources and destinations. It is a oneOf over per-rail schemas, discriminated bypaymentRail. Each bank rail has its own status values, bank account fields and identifiers. The schemas carry only fields that will be populated.paymentRailstatusvaluesONCHAINOnChainRailDetailstransactionHash,networkACH,ACH_SAME_DAYAchRailDetailsPENDING,SETTLED,RETURNED,REVERSED,FAILEDbankAccount,traceNumber,addenda,settledAt,returnedAt,reversedAtWIREWireRailDetailsPENDING,SETTLED,FAILEDbankAccount,imad,originatorToBeneficiaryInformation,settledAtFEDNOWFedNowRailDetailsPENDING,SETTLED,FAILEDbankAccount,endToEndId,remittanceInformation,settledAtRTPRtpRailDetailsPENDING,SETTLED,FAILEDbankAccount,endToEndId,remittanceInformation,settledAtThe four US bank rails compose
BaseUsdBankRailDetails, which holds the sharedbankAccount(UsdBankAccountDetails:accountHolderName,routingNumber, maskedaccountNumber) andsettledAt. Wires useWireBankAccountDetails, which addsbankName.railDetailsis onAccountTransactionSource,AccountTransactionDestinationandRealtimeFundingTransactionSource. UMA-address sides don't get one.Top-level status
A transaction's
statusreports the payment, andrailDetails.statusreports the transfer on its rail. Webhook events are unchanged.COMPLETED → FAILED(PAYOUT_RETURNED)→ REFUND_PENDING → REFUND_COMPLETED. TheFAILEDevent's destinationrailDetailsnow also showsRETURNEDwithreturnedAt.COMPLETED. Its webhook is sent again for the current status, with the source'srailDetailsshowingRETURNED.TransactionStatus.REFUNDEDis marked deprecated in its description, because a refund is reported on therefundobject.Deprecations (still populated)
onChainTransactionon all three sides. ItsOnChainTransactionschema is unchanged. TheONCHAINvariant is a separateOnChainRailDetailsthat requirespaymentRail, so the discriminator is required on every variant and oasdiff reports no breaking changes.RealtimeFundingTransactionSource:accountHolderName,accountIdentifier,bankName,bankIdentifier,paymentRail,remittanceInformation,endToEndId,traceNumber.Open for review
RETURNEDstatus, and there is no return reason code yet. Adding either later is an additive change.railDetails. Their deprecated flat originator fields stay populated and are documented as the only source for those rails. A return on those rails has no per-side status until a variant exists.paymentRailreusesPaymentRailvalues and addsONCHAIN, which is only valid insiderailDetails.OutgoingTransaction.paymentRail, which mirrors the destination leg's rail.Docs
OUTGOING_PAYMENT.FAILEDwithPAYOUT_RETURNEDand destinationrailDetailsRETURNED).railDetails.statuschanges under an unchanged status, repeating the event type.FAILEDstep carriesrailDetailsRETURNED.railDetails.Preview
source/destination→railDetailsTest plan
make build: bundles regenerated, andopenapi.yamlis identical tomintlify/openapi.yaml.make lint-openapi: 0 errors.oasdiff breakingagainst the merge base withmain: no breaking changes.addendaafter it noted ACH remittance had no replacement field. The unsupported-rail return gap is listed under open questions.🤖 Generated with Claude Code