Release 6.1.0 - BACS Direct Debit notifications + refactor - #371 - #372
Release 6.1.0 - BACS Direct Debit notifications + refactor - #371#372david-ruiz-cko wants to merge 1 commit into
Conversation
🟡 Risk Classification: MINORApproval route: AI Review + Human Approval Classification reasons
Operational gates
Files analysed: 2 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: Sound, but needs your judgementThis PR needs a human approval. The code itself reads as correct; whether it should land depends on context I don't have. This diff only bumps the version number from 6.0.0 to 6.1.0 in two places, but the PR description explicitly states 'This release is breaking and ships as 6.0.0'. There is a mismatch between the stated intent and the version bump. For you to decide
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 |
|



Breaking changes (check at the end
)
This release introduces comprehensive support for Bacs and ACH Direct Debit instruments in the SDK, including new client classes, request models, and type definitions. It also updates core enums to recognize these new instrument and payment source types. The changes enable storing, configuring, and sending notifications for Bacs and ACH instruments, and ensure the SDK aligns with the latest API specifications.
Bacs Direct Debit Support:
BacsClientfor sending Bacs Direct Debit pre-notifications, with corresponding request and notification type classes (BacsNotificationRequest,BacsNotificationType). Also exposedgetBacsClient()inCheckoutApi. [1] [2] [3] [4] [5] [6] [7]CreateBacsInstrumentRequest,CreateBacsInstrumentAccount,CreateBacsInstrumentData,CreateBacsAccountHolder,CreateBacsBillingAddress, andBacsPaymentType. [1] [2] [3] [4] [5] [6]ACH Direct Debit Support:
CreateAchInstrumentRequest,CreateAchInstrumentData,CreateAchAccountHolder, andAchAccountType. [1] [2] [3] [4]SEPA Direct Debit Support:
CreateSepaAccountHolderfor SEPA instrument account holder details.Core Enum Updates:
InstrumentTypeandPaymentSourceTypeto includebacsandachas valid types, reflecting new instrument and payment source options. [1] [2] [3] [4]These changes provide the necessary models and client interfaces to support Bacs and ACH Direct Debit instruments, improve maintainability, and ensure compatibility with the current API.
Breaking changes


This release is breaking and ships as 6.0.0 (already bumped in this branch via the merged
Release 6.0.0 (#370)commit:CheckoutUtils::PROJECT_VERSIONandversion.json).The instruments models were reshaped so that each scheme (SEPA, Bacs, ACH) and each operation
(store, update) has its own type. Previously a single
InstrumentDataand the sharedCheckout\Common\AccountHolderwere reused across operations they did not match, which exposedfields the API rejects and hid fields it requires.
Removed classes
Checkout\Instruments\Create\InstrumentDataCheckout\Instruments\Create\CreateSepaInstrumentData(store) /Checkout\Instruments\Update\UpdateSepaInstrumentData(update)The removed class held
account_number,country,currency,payment_type,mandate_idanddate_of_signature. All six exist on the replacements, plustype(the SEPA mandate type), whichthe specification declares and the old class was missing.
Retyped properties
All three are on
Checkout\Instruments\Create\CreateSepaInstrumentRequest:$instrument_dataCheckout\Instruments\Create\InstrumentDataCreateSepaInstrumentData$account_holderCheckout\Common\AccountHolder(15 properties)CreateSepaAccountHolder(5 properties)$customer\Checkout\Instruments\Create\UpdateCustomerRequestCreateCustomerInstrumentRequestThe
$customerentry is a documentation correction rather than a runtime change: the old@varpointed at a class that does not exist in that namespace (the real one lives in
Checkout\Instruments\Update). Static analysis will now flag callers who pass the old type.Migration