Describe the bug
Hello,
After updating the Python happy path client to use the current SDK import paths (v2026-01-23), I attempted to run the script end-to-end.
I encountered several issues where the sample client no longer aligns with the current SDK and server behavior.
1. Discovery parsing fails
The client expects:
discovery_data["payment"]["handlers"]
However, the current discovery response returns:
discovery_data["payment_handlers"]
This results in a KeyError when accessing the old path.
2. Step 2 checkout update fails
Step 2 constructs LineItemUpdateRequest objects without providing an id.
In the current SDK:
- LineItemUpdateRequest requires an
id field
- The client does not supply this value
This results in validation errors when building or sending the update payload.
3. Fulfillment update payload no longer valid
Later steps (fulfillment selection) use simplified payloads such as:
{"methods": [{"type": "shipping"}]}
However, the current API requires additional fields, including:
- method IDs
- line_item_ids
- group IDs (when selecting options)
Without these, fulfillment updates fail with validation errors (e.g. HTTP 422).
To Reproduce
-
Clone the samples repository
-
Update the client imports to match the current SDK (v2026-01-23)
-
Run the client:
uv run simple_happy_path_client.py --server_url=http://localhost:8182
-
Observe:
- KeyError during discovery parsing
- Validation errors when constructing checkout update requests
- 422 errors during fulfillment steps
Expected behavior
The Python happy path client should run successfully against the current SDK and server implementation without requiring additional modifications.
Specifically:
- Discovery parsing should match the current response shape
- Checkout updates should construct valid LineItemUpdateRequest objects
- Fulfillment updates should include all required fields
Screenshots
No response
Additional context
After adapting the client locally, I was able to get the flow working by:
- Updating discovery parsing to use
payment_handlers
- Using server-returned line item IDs for update requests
- Reusing method / group / line_item IDs for fulfillment updates
However, this required modifying the client logic beyond import updates alone
Related Issues
Code of Conduct
Describe the bug
Hello,
After updating the Python happy path client to use the current SDK import paths (v2026-01-23), I attempted to run the script end-to-end.
I encountered several issues where the sample client no longer aligns with the current SDK and server behavior.
1. Discovery parsing fails
The client expects:
However, the current discovery response returns:
This results in a KeyError when accessing the old path.
2. Step 2 checkout update fails
Step 2 constructs LineItemUpdateRequest objects without providing an
id.In the current SDK:
idfieldThis results in validation errors when building or sending the update payload.
3. Fulfillment update payload no longer valid
Later steps (fulfillment selection) use simplified payloads such as:
However, the current API requires additional fields, including:
Without these, fulfillment updates fail with validation errors (e.g. HTTP 422).
To Reproduce
Clone the samples repository
Update the client imports to match the current SDK (v2026-01-23)
Run the client:
Observe:
Expected behavior
The Python happy path client should run successfully against the current SDK and server implementation without requiring additional modifications.
Specifically:
Screenshots
No response
Additional context
After adapting the client locally, I was able to get the flow working by:
payment_handlersHowever, this required modifying the client logic beyond import updates alone
Related Issues
Code of Conduct