Changelog - EBPP API (Multi Profile Account) v2026
The changes below cover the v2026 EBPP API contract for the MPA (Multi Profile Account) model. v2026 is a breaking release. Existing v1 integrations must be updated before v1 reaches its EOL date.
Review each section below and follow the Migration Guide to plan your migration.
What's New
- Path-based versioning with an explicit
/v2026/segment in all endpoint URLs - Base context path in v2026 endpoints use
/ebpp/instead of/payments/ - Unified contact model via a
contacts[]array, replacing the top-levelemailandmobile_phonefields - Terminology standardised:
funding_accountrenamed topayment_method - Card CVV field name is
card_cvv_number(v1 and v2026); in v2026 it must be insidepayment_methodonly - PBT Enrollment merged into the Payment Setup flow
- New lifecycle response headers on every API call
- New
payment_channelrequest header;channelrenamed toaccess_channel - Hypermedia links removed from all responses
- Payment eligibility is controlled by a configuration-level feature flag - the
customer_account_eligibility_checkrequest field is removed; do not send it and work with EBPP Support to configure the flag
Breaking Changes
BC-1 - Path-Based Versioning Breaking
All endpoints now use versioned paths. The /mpa/ segment has been removed.
| Version | Endpoint pattern |
|---|---|
v1/mpa | /payments/v1/mpa/{resource}/{id} |
v2026 | /ebpp/v2026/{resource}/{id} |
# Before (v1/mpa)
POST https://api.orbipay.com/payments/v1/mpa/customers
GET https://api.orbipay.com/payments/v1/mpa/customers/{id}
POST https://api.orbipay.com/payments/v1/mpa/payments
# After (v2026)
POST https://api.orbipay.com/ebpp/v2026/customers
GET https://api.orbipay.com/ebpp/v2026/customers/{id}
POST https://api.orbipay.com/ebpp/v2026/payments
BC-2 - Terminology Standardisation Breaking
Several field names have been renamed across all APIs for consistency.
| Old field | New field | Context |
|---|---|---|
funding_account | payment_method | All requests and responses |
funding_account_usage | payment_method_usage | All requests and responses |
payment_method (response only) | fulfilment_type | Payment responses only |
payment_method in payment responses referred to fulfilment type (ACH, card, etc.). In v2026 this field is renamed to fulfilment_type, while payment_method represents the funding object (previously funding_account).
fulfilment_type (not payment_method).
// Before (v1/mpa)
{
"funding_account": { "id": "FA_001" },
"payment_method": "ACH"
}
// After (v2026)
{
"payment_method": { "id": "PM_001" },
"fulfilment_type": "ACH"
}
BC-3 - Customer: contacts Object Breaking
The top-level email and mobile_phone fields are deprecated. All customer contact data must use contacts[].
| Field | v2026 behaviour |
|---|---|
email | Silently ignored in requests; omitted from responses |
mobile_phone | Silently ignored in requests; omitted from responses |
contacts[] | Required for contact information; returned in responses |
Affected APIs: Save Customer · Get Customer · Retrieve Customers
email and mobile_phone and use contacts[] for all customer contact information.
// Before (v1/mpa)
{
"id": "cust_001",
"email": "user@example.com",
"mobile_phone": "+11234567991"
}
// After (v2026)
{
"id": "cust_001",
"contacts": [
{ "value": "+11234567991", "type": "sms", "verified_by": "other" },
{ "value": "user@example.com", "type": "email", "verified_by": "other" }
]
}
BC-4 - Customer Account: contacts Object Breaking
Customer Account resources now follow the same contacts[] model. The email and mobile_phone fields are deprecated and silently ignored on requests.
Affected APIs: Save Customer Account · Get Customer Account · Retrieve Customer Accounts
email and mobile_phone and use contacts[] for all customer account contact information.
// After (v2026)
{
"customer_account": {
"id": "ca_001",
"contacts": [
{ "value": "user@example.com", "type": "email", "verified_by": "other" }
]
}
}
BC-5 - Payment Changes Breaking
CVV field consolidation
CVV must now only be sent inside payment_method.card_cvv_number.
| Location | v2026 behaviour |
|---|---|
payment.card_cvv_number (top-level) | Silently ignored |
payment_method.card_cvv_number | Accepted - always use this |
customer_account_eligibility_check removed
The customer_account_eligibility_check request parameter has been removed. Eligibility behaviour is now managed via a configuration-level feature flag for your account and environment.
- Remove this request parameter entirely.
- Coordinate with EBPP Support or account administrators for configuration.
Affected API: Create Payment
// Before (v1/mpa)
QUERY Param "customer_account_eligibility_check": true
{
"card_cvv_number": "123",
"funding_account": { "id": "12345" }
}
// After (v2026)
{
"payment_method": {
"id": "12345",
"card_cvv_number": "123"
}
}
BC-6 - Manage PBT Enrollment / Retrieve PBT Enrollments Deprecated Breaking
The v1 Manage PBT Enrollment and Retrieve PBT Enrollments APIs are consolidated into Payment Setup. Migrate all PBT calls to the Payment Setup equivalents.
/payments/v1/mpa/pbt... with the v2026 Payment Setup endpoints under /ebpp/v2026/paymentsetups....
| Old endpoint (v1/mpa) | Replacement (v2026) |
|---|---|
POST /payments/v1/mpa/pbt | POST /ebpp/v2026/paymentsetups |
GET /payments/v1/mpa/pbt/lists | POST /ebpp/v2026/paymentsetups/lists |
Before (v1/mpa) - POST /payments/v1/mpa/pbt
PBT Request Body
After (v2026) - POST /ebpp/v2026/paymentsetups
Payment Setup Request Body
BC-7 - Hypermedia Links Removed Breaking
In v1, related collections are sometimes represented as named objects with a url field. In v2026, those embedded url fields are removed entirely from responses.
// Before (v1) — example: named objects with url (when present)
{
"id": "cust_001",
"status": "active",
"funding_accounts": {
"url": "/customers/{ID_CUSTOMER}/fundingaccounts"
},
"payments": {
"url": "/customers/{ID_CUSTOMER}/payments"
},
"payment_setups": {
"url": "/customers/{ID_CUSTOMER}/paymentsetups"
}
}
// After (v2026) — same objects / url fields are not returned
{
"id": "cust_001",
"status": "active"
}
BC-8 - Base URL context path (/ebpp/) Breaking
For v2026 only, the API base context path changes from /payments/ to /ebpp/. All v2026 URLs must be prefixed with /ebpp/ (for example https://api.orbipay.com/ebpp/v2026/...). v1 integrations continue to use /payments/v1/mpa/... until migrated.
/payments/ segment with /ebpp/ in every endpoint URL (in addition to the version and path changes described in BC-1).
BC-9 - Payment method classification dimensions changed Breaking
In v1, funding account classification relied on the following fields inside funding_account:
account_typeaccount_subtypeaccount_holder_type
In v2026, these fields are removed from payment_method (renamed from funding_account) and replaced with the following dimensional fields:
payment_method_typepayment_method_subtypepayment_method_owner_typepayment_method_sourcepayment_method_card_brand
Example reclassification:
- Before (v1):
account_type: debit_card,account_subtype: visa_debit - After (v2026):
payment_method_type: card_account,payment_method_subtype: debit_card,payment_method_card_brand: visa
account_type, account_subtype, and account_holder_type from your requests/response parsing and use the new dimensional fields on payment_method.
BC-10 - Request headers: payment_channel (new, mandatory) and channel → access_channel Breaking
v2026 introduces a required request header payment_channel and renames the v1 header channel to access_channel. Requests that omit payment_channel or still send channel instead of access_channel are not valid for v2026.
| Change | v1 / prior | v2026 |
|---|---|---|
| Payment context | (not used) | payment_channel - required on every request (e.g. online) |
| Partner / access channel | channel | access_channel - required; same purpose, new name |
- Send
payment_channelon every v2026 request. - Replace the
channelheader withaccess_channel(use the same partner-specific value you used forchannel).
Summary of All Changes
| # | Area | Type | Description | Affected APIs |
|---|---|---|---|---|
| BC-1 | Versioning | Breaking | /v2026/ path migration | All |
| BC-2 | Terminology | Breaking | funding_account → payment_method; response payment_method → fulfilment_type | All |
| BC-3 | Customer | Breaking | email and mobile_phone deprecated; replaced by contacts[] | Save, Get, Retrieve Customer |
| BC-4 | Customer Account | Breaking | email and mobile_phone deprecated; replaced by contacts[] | Save, Get, Retrieve Customer Account |
| BC-5 | Payment | Breaking | card_cvv_number only inside payment_method; customer_account_eligibility_check removed - use configuration feature flag | Create Payment |
| BC-6 | PBT | Breaking | Payment Setup migration | All PBT endpoints |
| BC-7 | Hypermedia | Breaking | url links removed | All |
| BC-8 | Base URL | Breaking | Context path /payments/ → /ebpp/ for v2026 only | All |
| BC-9 | Payment Method | Breaking | Payment method classification dimensions changed (reclassification; not a 1:1 rename) | Payment Method, Payment and Payment Setup APIs |
| BC-10 | Headers | Breaking | Mandatory payment_channel; channel renamed to access_channel | All |
| - | Headers | New | Lifecycle response headers (api_version, deprecated, removal_date) | All |
Migration Guide
Complete these steps to ensure readiness for v2026:
| Step | Detail |
|---|---|
| 1 | Update all base URLs - Use /ebpp/v2026/... for v2026 (replace /payments/v1/mpa/ and switch context path to /ebpp/) |
| 2 | Rename funding_account → payment_method - In all requests and response parsing |
| 3 | Update response parsing - Treat payment fulfilment type as fulfilment_type (not payment_method) |
| 4 | Replace email and mobile_phone with contacts[] - On Customer and Customer Account |
| 5 | Move CVV to payment_method.card_cvv_number - Remove top-level payment CVV field |
| 6 | Remove customer_account_eligibility_check - Configure eligibility via the feature flag with EBPP Support |
| 7 | Update payment method classification fields - Remove account_type, account_subtype, account_holder_type; use the new dimensional fields inside payment_method |
| 8 | Replace PBT Enrollment endpoints - Use Payment Setup (and list APIs as documented) |
| 9 | Add payment_channel; rename channel → access_channel - On every request |
| 10 | Remove hypermedia parsing - Do not rely on url field in responses |
| 11 | Monitor lifecycle response headers - deprecated, removal_date, api_version |
See the Versioning and Deprecation Policy for the full lifecycle rules and headers.





