Skip to content

docs(cards): add receiptDeliveryConfirmedAt to the CardTransaction schema - #908

Draft
ls-bolt[bot] wants to merge 1 commit into
mainfrom
09-08-cards-receipt-delivery-confirmed-at
Draft

docs(cards): add receiptDeliveryConfirmedAt to the CardTransaction schema#908
ls-bolt[bot] wants to merge 1 commit into
mainfrom
09-08-cards-receipt-delivery-confirmed-at

Conversation

@ls-bolt

@ls-bolt ls-bolt Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Summary

receiptDeliveryConfirmedAt is a shared operation-pattern column that card transactions inherit, and the card serializer already emits it on every CardTransaction payload. The spec documented the property on the incoming and outgoing transaction shapes but never on the card shape, so the card schema under-described what the server actually returns.

Nothing about the field is card-specific: the same contractual receipt-delivery obligation applies to a card purchase as to a payout, and the confirm-receipt endpoint's semantics are unchanged.

Changes

  • Add receiptDeliveryConfirmedAt (string, format: date-time) to the CardTransaction schema, placed after updatedAt so it reads with the other timestamps (authorizedAt / lastEventAt / createdAt / updatedAt).
  • Description copied from the outgoing transaction shape's copy of the field so the wording matches.
  • Not marked required — it is null until the platform calls the confirm-receipt endpoint.
  • Rebundled openapi.yaml and mintlify/openapi.yaml with make build.

Verification

  • make build — rebundle clean.
  • make lint-openapi — exit 0, 0 errors. The remaining warnings/infos are pre-existing across the whole spec and unchanged by this diff; no lint finding on the added property.
  • bolt-adversarial-review — no findings (P0/P1/P2 all empty).

Requested by @AaryamanBhute

@mintlify

mintlify Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

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

Project Status Preview Updated
Grid 🟢 Ready View Preview Sep 8, 2026, 6:44 AM

@ls-bolt ls-bolt Bot added the bolt label Sep 8, 2026
@vercel

vercel Bot commented Sep 8, 2026

Copy link
Copy Markdown

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

2 Skipped Deployments
Project Deployment Actions Updated
grid-flow-builder Ignored Ignored Preview Sep 8, 2026 6:43am UTC
grid-wallet-demo Ignored Ignored Preview Sep 8, 2026 6:43am UTC

Request Review

Copy link
Copy Markdown

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

@ls-bolt

ls-bolt Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

@greptile review

@github-actions

github-actions Bot commented Sep 8, 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 receipt_delivery_confirmed_at to card transactions

kotlin

feat(api): add receiptDeliveryConfirmedAt field to CardTransaction

openapi

feat(api): add receiptDeliveryConfirmedAt field to Transaction

php

feat(api): add receiptDeliveryConfirmedAt field to CardTransaction

python

feat(api): add receipt_delivery_confirmed_at field to card_transaction

ruby

feat(api): add receipt_delivery_confirmed_at to card transaction

typescript

feat(api): add receiptDeliveryConfirmedAt field to CardTransaction

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/c219a0386a7d6b4a994556523d4eb2b44db0cc80/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 a failure in the lint CI job, which is a regression from the base state.
generate ✅build ✅lint ❗ (prev: lint ✅) → test ✅

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-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@f18d522ef62e76dd4d42e10e33b6bbfeffed6823
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/c16ca68a91922cdb12f475c9de7993d84b02f521/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-09-08 06:48:37 UTC

@ls-bolt

ls-bolt Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

@greptile review

@greptile-apps

greptile-apps Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR documents the optional receiptDeliveryConfirmedAt timestamp on card transactions and propagates the schema addition to both generated OpenAPI bundles.

  • Adds the date-time property to the source CardTransaction component.
  • Keeps the field optional, matching omission of unset values from serialized responses.
  • Synchronizes openapi.yaml and mintlify/openapi.yaml with the component definition.

Confidence Score: 5/5

The PR appears safe to merge with no outstanding correctness or repository-rule violations.

The schema addition consistently describes an optional timestamp across the source component and generated bundles. The earlier nullability concern was manually resolved after ls-bolt[bot] demonstrated that unset values are omitted during serialization rather than emitted as explicit nulls.

Important Files Changed

Filename Overview
openapi/components/schemas/cards/CardTransaction.yaml Adds the optional receipt-delivery confirmation timestamp to the source card transaction schema.
openapi.yaml Propagates the new card transaction property into the generated root OpenAPI bundle.
mintlify/openapi.yaml Propagates the new property into the generated Mintlify OpenAPI bundle.

Reviews (2): Last reviewed commit: "docs(cards): add receiptDeliveryConfirme..." | Re-trigger Greptile

Comment thread openapi/components/schemas/cards/CardTransaction.yaml
@ls-bolt

ls-bolt Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

⚡ Review ledger

Round 1

  1. Greptile: "Null timestamp is rejected" — receiptDeliveryConfirmedAt should be type: [string, 'null'] → NOT APPLICABLE: the server never emits an explicit null for this field. CardTransaction.to_dict() is model_dump(by_alias=True, exclude_none=True, mode="json"), so an unconfirmed receipt omits the key entirely; verified by constructing the model directly (key present when None: False). Every card-transaction emission path (list, cancel, sandbox simulate handlers, card webhook) uses that same to_dict(). The outgoing transaction shape declares this same inherited field as a plain type: string with no null union, so adding the union only on the card shape would make the two copies disagree. Replied with the evidence and resolved the thread.

@ls-bolt

ls-bolt Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

@greptile review

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