Repository navigation
fix(payments): load retry types and add customer_retry to sessions - #228
armando-rodriguez-cko wants to merge 1 commit into
Conversation
PaymentRetryRequest was never required by the gem, misspelled end_after_days and had no dunning or downtime. DunningRetryRequest and DowntimeRetryRequest are added, CustomerRetry moves to Common (the Accounts constant remains as a deprecated alias), and payment sessions gain customer_retry while the off-spec retry attribute is deprecated.
🔴 Risk Classification: MAJORApproval route: AI Review + Human Approval Required Classification reasons
Operational gates
Files analysed: 11 wall-e 2026.06.19-02 · policy |
🔬 Debug — why this classification?Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.
Kinds:
See issue #3 for the proposal to formalise this map as Appendix A of the standards doc. wall-e 2026.06.19-02 · debug |
🟢 Advisory review: Looks good to meThis PR still needs a human approval — wall-e cannot auto-approve it. For what it's worth, I read the diff and found nothing I'd block on. Adds missing require statements for retry types, introduces DunningRetryRequest and DowntimeRetryRequest, moves CustomerRetry to Common with a backward-compatible alias, and adds customer_retry to PaymentSessionsRequest — all matching the stated intent with new serialization tests covering the key cases. What I checked
This is not an approval. wall-e cannot auto-approve this PR — it is an opinion to help whoever does. Advisory review · us.anthropic.claude-sonnet-4-6 · wall-e 2026.06.19-02 |
|



Summary
PaymentRetryRequestwas never loaded by the gem, so using it raisedNameError. It also misspelledend_after_daysand had nodunningordowntime.CustomerRetrylived in the wrong module, and payment sessions had nocustomer_retrybut an off-specretry.Changes
lib/checkout_sdk/payments/payments.rb: requires the retry request fileslib/checkout_sdk/payments/payment_retry_request.rb: addsdunninganddowntime; deprecatesmax_attempts,end_after_daysand the misspelledend_after_dayin favour ofdunninglib/checkout_sdk/payments/dunning_retry_request.rb,downtime_retry_request.rb(new)lib/checkout_sdk/common/customer_retry.rb: class moved toCheckoutSdk::Common;CheckoutSdk::Accounts::CustomerRetrykept as a deprecated aliaslib/checkout_sdk/payments/sessions/payment_sessions_request.rb: addscustomer_retry; deprecatesretry, which the API does not define for payment sessionshosted/hosted_payments_session.rb,links/payment_link.rb,payment_request.rb: docsspec/checkout_sdk/payments/retry_request_serialization_spec.rb(new); the hosted integration spec buildsCommon::CustomerRetryAPI Reference
POST /payments(retry): https://api-reference.checkout.com/tag/payments/POST/paymentsPOST /hosted-payments(customer_retry): https://api-reference.checkout.com/tag/hosted-payments-page/POST/hosted-paymentsPOST /payment-links(customer_retry): https://api-reference.checkout.com/tag/payment-links/POST/payment-linksPOST /payment-sessions(customer_retry): https://api-reference.checkout.com/tag/flow/POST/payment-sessionsBreaking changes
None. Deprecated, to be removed in the next major version:
PaymentRetryRequest#max_attempts,#end_after_daysand#end_after_day(usedunning),PaymentSessionsRequest#retry(usecustomer_retry),CheckoutSdk::Accounts::CustomerRetry(useCheckoutSdk::Common::CustomerRetry).README
Not affected: the README does not document these types.