Skip to content

feat: flatten payment directive + headers + override builders to kwargs - #34

Merged
vvillait88 merged 1 commit into
mainfrom
feat/303c-payment-directive-flatten
May 14, 2026
Merged

feat: flatten payment directive + headers + override builders to kwargs#34
vvillait88 merged 1 commit into
mainfrom
feat/303c-payment-directive-flatten

Conversation

@vvillait88

Copy link
Copy Markdown
Contributor

Summary

Drops the wrapper construction for the 5 payment-side builders in directive.py, headers.py, and settlement_override.py. Same pattern as #32 + #33.

Builders flattened

Before After
build_payment_request_blob(PaymentRequestInput(...)) build_payment_request_blob(*, amount_usd, rail=None, ...)
payment_directive(PaymentDirectiveInput(...)) payment_directive(*, id, realm, request, rail=None, ...)
build_payment_directive(BuildPaymentDirectiveInput(...)) build_payment_directive(*, rail, id, realm, amount_usd, ...)
build_payment_headers(BuildPaymentHeadersInput(...)) build_payment_headers(*, rails=None, order_id="", realm="", x402=None)
settlement_override_header(SettlementOverrides(amount=X)) settlement_override_header(*, amount=X)

Deleted from exports

PaymentRequestInput, PaymentDirectiveInput, BuildPaymentDirectiveInput, BuildPaymentHeadersInput, SettlementOverrides.

Kept (data shapes consumers construct)

PaymentHeadersRail, PaymentHeadersResult, X402AcceptsBlock.

Test plan

  • uv run pytest tests/ — 1031 passed / 3 skipped, 95.05% coverage
  • uv run ty check agentscore_commerce/ — clean
  • uv run ruff check . && uv run ruff format . — clean
  • Migrated callers: tests/test_payment_{directive,headers,misc}.py, examples/api_provider.py, examples/variable_cost_merchant.py, agentscore_commerce/discovery/probe.py

Drops the wrapper construction for the 5 payment-side builders in
directive.py / headers.py / settlement_override.py:

- build_payment_request_blob(PaymentRequestInput(...))
    → build_payment_request_blob(*, amount_usd, rail=None, ...)
- payment_directive(PaymentDirectiveInput(...))
    → payment_directive(*, id, realm, request, rail=None, ...)
- build_payment_directive(BuildPaymentDirectiveInput(...))
    → build_payment_directive(*, rail, id, realm, amount_usd, ...)
- build_payment_headers(BuildPaymentHeadersInput(...))
    → build_payment_headers(*, rails=None, order_id="", realm="", x402=None)
- settlement_override_header(SettlementOverrides(amount=X))
    → settlement_override_header(*, amount=X)

Deleted from public exports: PaymentRequestInput, PaymentDirectiveInput,
BuildPaymentDirectiveInput, BuildPaymentHeadersInput, SettlementOverrides.

Kept (data shapes consumers construct): PaymentHeadersRail,
PaymentHeadersResult, X402AcceptsBlock.

Tests: 1031 passed / 3 skipped, 95.05% coverage. ty + ruff clean.
Migrated callers in tests/ + examples/api_provider.py +
examples/variable_cost_merchant.py + discovery/probe.py.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vvillait88
vvillait88 merged commit a0c1df9 into main May 14, 2026
7 checks passed
@vvillait88
vvillait88 deleted the feat/303c-payment-directive-flatten branch May 14, 2026 18:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant