Added Payment Rules and Schema Refinements to Billing API
New fields on the Account object:payment_rules.min_amount— minimum payment amount acceptedpayment_rules.max_amount— maximum payment amount acceptedpayment_rules.overpayment_allowed— whether payments exceeding the balance are acceptedpayment_rules.underpayment_allowed— whether partial payments are accepted
external_referenceon accounts now excludes the reservedbacc_prefixexternal_referenceon customers and bills now excludes the reservedbcus_prefixconflictandpayment_not_founderror codes added across all billing endpoints
Added Presentation Mode to Payment Sessions API
presentation_mode is now available on checkout_options in the Payment Sessions API to control how the Moment checkout is presented to customers.Supported modes:redirect— redirects the customer to the Moment-hosted checkout pageembedded_modal— displays checkout as a modal overlay within the merchant’s pageembedded_inline— renders checkout inline within the merchant’s page
display_pay_buttonreplaces the previousdisplayPayButtonfield on embedded mode optionspayment_not_foundadded as a new error code across create and retrieve endpoints
Introduced Payments API
Initial release of the Payments API.Endpoints:GET /collect/payments/{id}— retrieve the full Payment object by its identifier
payment_method_details is returned as a discriminated union — each payment method type (Card, Capitec Pay, Instant EFT, Zapper, MTN MoMo) is a distinct subschema identified by a type discriminator.👉 See Payment Object👉 See Payments OverviewIntroduced Payment Requests API
Initial release of the Payment Requests API, enabling merchants to create and share direct payment links with customers via SMS, email, or messaging apps.Endpoints:POST /collect/payment_requests— create a payment requestGET /collect/payment_requests/{id}— retrieve a payment requestPATCH /collect/payment_requests/{id}— update a payment requestDELETE /collect/payment_requests/{id}— delete a payment request
payment_request.created— triggered when a payment request is createdpayment_request.updated— triggered when a payment request is updatedpayment_request.paid— triggered when a payment request is paid
Added obligation.amount_applied Webhook to Billing API
The obligation.amount_applied webhook event is now available, triggered when an amount is received against a billing obligation such as a bill, account, or customer.👉 See obligation.amount_appliedIntroduced Payment Pages API
Initial release of the Payment Pages API, enabling merchants to create branded hosted payment pages that customers can access via a shareable link.Endpoints:POST /collect/payment_pages— create a payment pageGET /collect/payment_pages/{id}— retrieve a payment pagePATCH /collect/payment_pages/{id}— update a payment pageDELETE /collect/payment_pages/{id}— delete a payment pagePATCH /collect/payment_pages/{id}/inactive— deactivate a payment pageGET /collect/payment_pages/{id}/transactions— retrieve transactions for a payment page
payment_page.payment_received— triggered when a payment is received on a hosted page
Introduced Billing API
Initial release of the Billing API, providing full lifecycle management of customers, accounts, and bills.Customers:POST /billing/customers— create a customerGET /billing/customers/{customer}— retrieve a customerPATCH /billing/customers/{customer}— update a customer
POST /billing/accounts— create an account under a customerGET /billing/accounts/{account}— retrieve an accountPATCH /billing/accounts/{account}— update an account
POST /billing/bills— create a billGET /billing/bills/{bill}— retrieve a billPATCH /billing/bills/{bill}— update a billPOST /billing/bills/{bill}/void— cancel a bill
Added Checkout Options to Payment Sessions API
checkout_options added to One Time and First In Series payment sessions, allowing merchants to configure the checkout experience presented to customers.👉 See Checkout OptionsIntroduced Payment Sessions API
Initial release of the Payment Sessions API.Endpoints:POST /collect/payment_sessions— create a new payment sessionGET /collect/payment_sessions/{id}— retrieve a payment session by its identifier
- One Time — a single payment flow with checkout and payment method options
- First In Series — initiates a recurring payment flow and captures the mandate
- Next In Series — continues a recurring payment flow using an existing mandate

