- 15 Jan 2025
- 5 Minutes To Read
- Print
- DarkLight
- PDF
Revamp of Mambu APIs
- Updated On 15 Jan 2025
- 5 Minutes To Read
- Print
- DarkLight
- PDF
The platform is transitioning to API v2 for improved integration with the Mambu cloud banking platform. Enhancements include design improvements, idempotency mechanism for data consistency, seamless pagination, and enhanced security controls. Phases 1 and 2 are combined for a streamlined transition by Q2 2025, with Phase 3 planned for 2026. Redesigned endpoints offer faster responses and exclusive functionality. Action required: audit systems for API v1 endpoints, transition to v2 by May 31, 2025 to avoid errors. Timeline: notice period from January 31, 2024, to final reminder on December 3, 2024, with sandbox testing in May 2025 and implementation in June 2025.
As part of our ongoing commitment to enhancing your experience with our platform, we're transitioning to API v2 to deliver more streamlined and efficient integrations between your systems and the Mambu cloud banking platform. These enhancements include:
- Enhancements in design, with the inclusion of an idempotency mechanism to ensure data handling is more consistent and reliable.
- Seamless pagination for effortless data retrieval, and more refined details which will add precision to your operations.
- An enhanced developer-friendly framework with more mature security controls.
Recap of our previous communication
In January 2024, we informed you about the revamp of our APIs and the transition to API v2. This transition was outlined in three phases:
- Phase 1: Targeting endpoints with 1-to-1 mirroring of functionality, scheduled for completion by April 30, 2024.
- Phase 2: Focused on endpoints with redesigned functionality in API v2.
- Phase 3: Addressing entirely new endpoints.
What is changing?
Phases 1 & 2 are now combined for a streamlined transition and are rescheduled for Q2 2025. Phase 3 is planned for 2026.
Redesigned endpoints originally planned for phase 2 are now included in phase 1. The updated endpoints offer faster responses, new and improved functionality exclusive to API v2, and a streamlined API framework for easier maintenance.
The extension of the first two phases to Q2 2025 offers sufficient time for you to adapt your systems infrastructure and seamlessly migrate to the new endpoints.
Here's the updated timeline:
- 31 January 2024: Commencement of the notice period and change notification
- 16 April 2024: Notification of extended transition timeline and first reminder
- 18 July 2024: Second reminder
- 18 October 2024: Third reminder
- 03 December 2024: Final reminder
- May 2025: Sandbox enablement and testing
- June 2025: Implementation in Production environments
What actions do you need to take?
Complete these actions to avoid receiving the error message below:
- Conduct an audit of your systems architecture to identify any use of API v1 endpoints within the scope of phases 1 and 2 that need to be transitioned.
- Transition your integration code from API v1 to equivalent v2 endpoints before 31 May 2025.
Failure to do so will result in the following error message:
500
“returnCode”: 3,
“returnStatus”: “INVALID_API_OPERATION”
API v1 endpoints we will stop supporting in production as of June 2025
Mambu API v1 endpoint Base URL https://TENANT_NAME.mambu.com/api | Correspondent Mambu API v2 endpoint Base URL https://TENANT_NAME.mambu.com/api |
---|---|
DELETE /documents/{documentId} | DELETE /documents/{documentId} |
DELETE /documents/{documentId} | DELETE /documents/{documentId} |
DELETE /loans/{loanAccountId} | DELETE /loans/{loanAccountId} |
GET /branches | GET /branches |
GET /branches/{branchId} | GET /branches/{branchId} |
GET /centres | GET /centres |
GET /centres/{centreId} | GET /centres/{centreId} |
GET /clients | GET /clients |
GET /clients/{clientId} | GET /clients/{clientId} |
GET /customfields/{customFieldId} | GET /customfields/{customFieldId} |
GET /customfieldsets | GET /customfieldsets |
GET /documents/{documentId} | GET /documents/{documentId} |
GET /glaccounts/{glAccountId} | GET /glaccounts/{glAccountId} |
GET /gljournalentries | GET /gljournalentries |
GET /groups | GET /groups |
GET /groups/{groupId} | GET /groups/{groupId} |
GET /loanproducts | GET /loanproducts |
GET /loanproducts/{loanProductId} | GET /loanproducts/{loanProductId} |
GET /loans | GET /loans |
GET /loans/{loanAccountId} | GET /loans/{loanAccountId} |
GET /loans/{loanAccountId}/templates/{templateId} | GET /loans/{loanAccountId}/templates/{templateId} |
GET /tasks | GET /tasks |
GET /userroles | GET /userroles |
GET /users | GET /users |
GET /users/{userId} | GET /users/{userId} |
PATCH /clients/{clientId} | PATCH /clients/{clientId} |
PATCH /loans/{loanAccountId} | PATCH /loans/{loanAccountId} |
POST /clients | POST /clients |
POST /clients/{clientId}/documents | POST /clients/{clientId}/documents |
POST /database/backup | POST /database/backup |
POST /documents | POST /documents |
POST /groups | POST /groups |
POST /indexratesources/{indexRateSourceId}/indexrates | POST /indexratesources/{indexRateSourceId}/indexrates |
POST /loans | POST /loans |
POST /users | POST /users |
PATCH /linesofcredit/{lineOfCreditId} | PATCH /creditarrangements/{creditArrangementId} |
GET /linesofcredit/{lineOfCreditId}/accounts | GET /creditarrangements/{creditArrangementId}/accounts |
PATCH /linesofcredit/{lineOfCreditId}/custominformation | PATCH /creditarrangements/{creditArrangementId} |
DELETE /linesofcredit/{lineOfCreditId}/custominformation/{customFieldId} | PATCH /creditarrangements/{creditArrangementId} |
GET /linesofcredit | GET /creditarrangements |
GET /currencies | GET /currencies |
GET /currencies/{currencyCode} | GET /currencies/{currencyCode} |
GET /transactionchannels | GET /organization/transactionChannels |
GET /settings/organization | GET /setup/organization |
DELETE/savings/{savingsAccountId} | DELETE/deposits/{depositAccountId} |
POST /groups/search | POST /groups:search |
POST /clients/search | POST /clients:search |
POST /notifications/messages/search | POST /communications/messages:search |
POST /savings/search | POST /deposits:search |
POST /savings/transactions/search | POST /deposits/transactions:search |
POST /loans/search | POST /loans:search |
POST /loans/transactions/search | POST /loans/transactions:search |
POST /linesofcredit/search | POST /creditarrangements:search |
POST /gljournalentries/search | POST /gljournalentries:search |
New endpoints added to phase 1
Mambu API v1 endpoint Base URL https://TENANT_NAME.mambu.com/api | Correspondent Mambu API v2 endpoint Base URL https://TENANT_NAME.mambu.com/api |
---|---|
DELETE /branches/{branchId}/documents/{documentId} | DELETE /documents/{documentId} , API returns 204 (No content) for successful deletion, as opposed to 200 returned by V1. |
DELETE /centres/{centreId}/documents/{documentId} | DELETE /documents/{documentId} , API returns 204 (No content) for successful deletion, as opposed to 200 returned by V1. |
DELETE /clients/{clientId}/documents/{documentId} | DELETE /documents/{documentId} , API returns 204 (No content) for successful deletion, as opposed to 200 returned by V1. |
DELETE /documents/{documentId} | DELETE /documents/{documentId} , API returns 204 (No content) for successful deletion, as opposed to 200 returned by V1. |
DELETE /groups/{groupId}/documents/{documentId} | DELETE /documents/{documentId} , API returns 204 (No content) for successful deletion, as opposed to 200 returned by V1. |
DELETE /loanproducts/{loanProductId}/documents/{documentId} | PATCH /loanproducts/{loanProductId} |
DELETE /loans/{loanAccountId}/documents/{documentId} | DELETE /documents/{documentId} |
DELETE /loans/{loanAccountId}/custominformation/{customFieldId} | PATCH /loans/{loanAccountId} , |
DELETE /loans/{loanAccountId}/custominformation/{customFieldId}/{groupSetIndex} | PATCH /loans/{loanAccountId} |
DELETE /loans/{loanAccountId}/settlementaccounts/{settlementAccountId} | PATCH /loans/{loanAccountId} |
DELETE /savings/{savingsAccountId}/documents/{documentId} | DELETE /documents/{documentId} |
DELETE /savingsproducts/{savingsProductId}/documents/{documentId} | DELETE /documents/{documentId} |
DELETE /users/{userId}/documents/{documentId} | DELETE /documents/{documentId} |
GET /branches/{branchId}/documents | GET /documents/documentsMetadata + GET /documents/{documentId} , V2 metadata endpoint expects entity type as required query parameter. In this case, entity=BRANCH |
GET /branches/{branchId}/documents/{documentId} | GET /documents/{documentId} |
GET /centres/{centreId}/documents | GET /documents/documentsMetadata + GET /documents/{documentId} , V2 metadata endpoint expects entity type as required query parameter. In this case, entity=CENTRE |
GET /centres/{centreId}/documents/{documentId} | GET /documents/{documentId} |
GET /clients/{clientId}/loans/{loanAccountId} | GET /loans and specify account holder id |
GET /clients/{clientId}/linesofcredit | GET /clients/{clientId}/creditarrangements |
GET /clients/{clientId}/documents | GET /clients/{clientId}/documentsMetadata + GET /documents/{documentId} , V2 metadata endpoint expects entity type as required query parameter. In this case, entity=CLIENT |
GET /clients/{clientId}/documents/{documentId} | GET /clients/documents/{documentId} |
GET /documents | GET /documents/documentsMetadata + GET /documents/{documentId} |
GET /documents/{documentId} | GET /documents/{documentId} |
GET /groups/{groupId}/documents | GET /documents/documentsMetadata + GET /documents/{documentId} , V2 metadata endpoint expects entity type as required query parameter. In this case, entity=GROUP |
GET /groups/{groupId}/documents/{documentId} | GET /documents/{documentId} |
GET /groups/{groupId}/linesofcredit | GET /groups/{groupId}/creditarrangements |
GET /loanproducts/{loanProductId}/documents | GET /documents/documentsMetadata |
GET /loanproducts/{loanProductId}/documents/{documentId} | GET /documents/{documentId} |
GET /loanproducts/{loanProductId}/schedule | POST /loans/schedule:preview |
GET /loans/{loanAccountId}/documents | GET /documents/documentsMetadata |
GET /loans/{loanAccountId}/documents/{documentId} | GET /documents/{documentId} |
GET /repayments | GET /installments (returns all installments between two dates compared with api v1 that excludes the paid installments) |
GET /loans/{loanAccountId}/repayments | GET /loans/{loanAccountId}/schedule |
GET /loans/{loanAccountId}/transactions | GET /loans/{loanAccountId}/transactions |
GET /linesofcredit/{lineOfCreditId} | GET /creditarrangements/{creditArrangementId} |
GET /linesofcredit/{lineOfCreditId}/custominformation/{customFieldId} | GET /creditarrangements/{creditArrangementId} with full details |
GET /users/{userId}/documents | GET /documents/documentsMetadata + GET /documents/{documentId} |
POST /branches/{branchId}/documents | POST /documents |
GET /users/{userId}/documents/{documentId} | GET /documents/{documentId} |
POST /centres/{centreId}/documents | POST /documents |
POST /documents | POST /documents |
POST /groups/{groupId}/documents | POST /documents |
POST /loanproducts/{loanProductId}/documents | POST /documents |
POST /loans/{loanAccountId}/documents | POST /documents |
POST /loans/{loanAccountId}/settlementaccounts/{settlementAccountId} | PATCH /loans/{loanAccountId} , with a body like this: Body op: ADD,path: settlementAccountKey, value: 8a8e8f516cf626f6016cf9f75f201702 |
POST /savings/{savingsAccountId}/documents | POST /documents |
POST /savingsproducts/{savingsProductId}/documents | POST /documents |
POST /users/{userId}/documents | POST /documents |
GET /branches/{branchId}/comments | GET /comments , Expects ownerType and ownerKey as required parameters (i.e. BRANCH + branch encoded key) |
GET /centres/{centreId}/comments | GET /comments , Expects ownerType and ownerKey as required parameters (i.e. CENTRE + centre encoded key) |
GET /clients/{clientId}/comments | GET /comments , Expects ownerType and ownerKey as required parameters (i.e. CLIENT + client encoded key) |
GET /groups/{groupId}/comments | GET /comments , Expects ownerType and ownerKey as required parameters (i.e. GROUP + group encoded key) |
GET /loanproducts/{loanProductId}/comments | GET /comments and filter for loan product |
GET /loans/{loanAccountId}/comments | GET /comments and filter for loan account |
GET /loans/{loanAccountId}/custominformation/{customFieldId} | GET /loans/{loanAccountId} with details level full |
GET /savingsproducts/{savingsProductId}/comments | GET /comments , Expects ownerType and ownerKey as required parameters (i.e. SAVINGS_PRODUCT + savings product encoded key) |
GET /users/{userId}/comments | GET /comments , Expects ownerType and ownerKey as required parameters (i.e. USER + user encoded key) |
POST /branches/{branchId}/comments | POST /comments |
POST /centres/{centreId}/comments | POST /comments |
POST /clients/{clientId}/comments | POST /comments |
POST /groups/{groupId}/comments | POST /comments |
POST /loanproducts/{loanProductId}/comments | POST /comments |
POST /loans/{loanAccountId}/comments | POST /comments |
POST /savingsproducts/{savingsProductId}/comments | POST /comments |
POST /users/{userId}/comments | POST /comments |
POST /linesofcredit | POST /creditarrangements |
POST /linesofcredit/{lineOfCreditId}/loans/{loanAccountId} | POST /creditarrangements/{creditArrangementId}:addAccount |
PATCH /loans/{loanAccountId}/custominformation | PATCH /loans/{loanAccountId} |
PATCH /loans/{loanAccountId}/custominformation/{customFieldId} | PATCH /loans/{loanAccountId} |
PATCH /loans/{loanAccountId}/repayments | PUT /loans/{loanAccountId}/schedule |