Welcome
This documentation was last updated on Wed Sep 27 13:09:44 UTC 2023 and covers Version v1.44.15
Welcome to the Mambu Payments API Reference documentation.
Our Payments API allows you to process payments made via the Single Euro Payments Area (SEPA) payments scheme. It is independent from the existing Mambu API and webhook infrastructure.
For more information about the Payments capability and the Mambu Payment Gateway, see Payments Introduction in our User Guide.
About the Mambu Payments API
The Payments API allows you to orchestrate the movement of money between an account in Mambu and an account at a third-party financial institution, both domestic as well as international, using SEPA-compliant messages for interchange.
The orchestration includes triggering payment execution on the user-specified date, debiting or crediting the account in Mambu, and storing-and-forwarding the credit or debit instruction for settlement in a third party financial institution via the Mambu Payment Gateway. The Mambu Payment Gateway in turn sends it out to Payment Network.
Before using the Mambu Payment Gateway, you will need to carry out the steps outlined in our payments documentation. This includes setting up an API consumer, transaction channels, and configuring your bank identification codes and job schedulers.
Base URLs
The base URL for requests to the Payments API is found below:
https://TENANT_NAME.mambu.com/api/v1
You may also use the sandbox environment for testing. The sandbox environment is generally one version ahead of the production environment. The base URL for your sandbox environment is:
https://TENANT_NAME.sandbox.mambu.com/api/v1
HTTP verbs
Standard HTTP verbs are used to indicate the API request method.
Verb | Function |
---|---|
GET |
To retrieve a resource or a collection of resources |
POST |
To create a resource |
PATCH |
To modify an existing resource |
PUT |
To replace an existing resource |
DELETE |
To delete a resource |
Open API Specification
Use this link to access the latest Open API Specification.
This documentation is automatically generated from an OpenAPI Specification (OAS).
This OAS file can also be used to quickly scaffold client SDKs, in various languages, for interacting with our APIs using a number of tools, including the online Swagger Editor.
You can access the latest version of this specification using the link provided.
Using the API
Authentication
To access the Payments API, you must create an API consumer that has the Manage Payments (MANAGE_PAYMENTS
) permission assigned to it and create API keys using this API consumer.
API keys inherit the scope of access settings from the API consumer that creates them. You must authenticate every request to the Payments API using an API key in the request header.
You may create and manage API consumers and keys either through the Mambu UI or using the API Consumers endpoint provided by Mambu API v2. For more information, see API Consumers in our User Guide.
> Example authenticated request using cURLcurl --request GET 'https://TENANT_NAME.mambu.com/api/v1/collections/d45a34ed341321bca4d89e42452dc074' \
--header 'apikey: i9TCzwUBwyTVQrfPEAhk0oEpOUCt0O2M'
Content types
Depending on the endpoint, the Payments API will accept one of two content types: JSON and XML. The format should be specified in the Content-Type
header with either the value application/json
or application/xml
. Check the parameters table for each request for the required value for the Content-Type
header.
For certain requests, including some POST requests, there is no need to supply a request body. For these requests, the Content-Type
header can be omitted.
Idempotency
Many POST requests take an optional Idempotency-Key
header. The value of this header should be a randomly generated string, unique to the request. We recommend using a UUID generator or library to create idempotency keys in the UUID v4 format. The following example shows a typical UUID: c2f53453-439c-4efa-9e27-58877160638b
.
Using an idempotency key helps avoid duplicate requests. When an idempotent request is processed, the status code and body of the response is associated with the idempotency key and stored in a cache. If the request is duplicated for any reason, the duplicate request is not processed, and the response is re-sent to the client.
Incoming and outgoing messages
The Payments API is designed to handle messages coming from external sources such as clearing houses or other financial institutions, as well as to send XML-formatted payment instructions to your own clearing and settlement provider.
Incoming messages
For handling by the Payments API, all incoming messages must be routed to the /payments/incoming
endpoint.
This endpoint accepts XML and responds with an HTTP status of 202 accepted
, indicating that the message has been received and will be processed. The response includes a messageId
, which can be used to later identify the transaction. For example, it can be used with getPaymentDetails
or getCollectionDetails
API requests to retrieve payment details and the current status of the transaction.
In case of any incoming message errors, the endpoint responds with a 4xx
status code and an array of messages giving details on the errors encountered. Errors can range from invalid content type to individual fields within the message not conforming to the payment scheme specification. Errors will be reported using the TPPMessage
model, and should be handled by your service.
Outgoing messages
Example outgoing message
Content-Type: application/xml
Authorization: BASIC AuThKey==
Message-Type: urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02
Message-Id: SCTORD156820211213000000012649
<?xml version="1.0" encoding="utf-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02">
<FIToFICstmrCdtTrf>
...
</FIToFICstmrCdtTrf>
</Document>
When you create payments or inquiries, the Mambu Payment Gateway generates the appropriate ISO 20022 XML message and schedules it to be sent to the webhook callout URL configured in the Mambu Payment Gateway UI. See the callout configuration section of the Mambu Payment Gateway system properties article in our User Guide for more information on configuring your callout URL, including authentication options.
Outgoing messages are XML formatted messages conforming to the ISO 20022 specification - specifically, the subset supported by the SEPA payment scheme. The Message-Type
header includes the type of message sent, such as pacs.008.001.02
for a SEPA credit transfer or camt.056.001.01
for cancellation of a payment.
Parameters
Name | Type | Description | In | Required |
---|---|---|---|---|
Content-Type | string | The encoding of the content in the body of the request. This will always be application/xml |
Header | true |
Authentication | string | BASIC authentication credentials. Base64 encoded representation of the credentials provided in webhook configuration in the Mambu Payment Gateway settings | Header | false |
Message-Type | string | Message namespace URN. For example urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02 |
Header | true |
Message-Id | string | Message ID, representing the GrpHdr>MsgId field of the message |
Header | true |
Body | XML | The actual, generated XML message. The content of the message will, depending on the source, include data provided in an API request, data from another payment or collection instruction, or a combination of both. Visit our User Guide for examples of selected messages or refer to the European Payments Council document library for more comprehensive descriptions of the message types supported by the SEPA payment scheme. | body | true |
Default
initiateCreditTransfer
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/payments/financial-institution-credit-transfers \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'X-Request-ID: string' \
-H 'Idempotency-Key: string'
POST https://TENANT_NAME.mambu.com/api/v1/payments/financial-institution-credit-transfers HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
X-Request-ID: string
Idempotency-Key: string
const inputBody = '{
"categoryPurposeCode": "stri",
"creditor": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"creditorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"creditorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"debtor": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"debtorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"debtorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"instructedAmount": {
"amount": "string",
"currency": "str"
},
"intermediaryAgent1": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"intermediaryAgent2": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"intermediaryAgent3": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"paymentIdentification": {
"endToEndIdentification": "string",
"transactionIdentification": "string",
"uetr": "stringstringstringstringstringstring"
},
"purposeCode": "stri",
"remittanceInformationStructured": {
"reference": "string",
"referenceIssuer": "string",
"referenceType": "string"
},
"remittanceInformationUnstructured": "string",
"requestedExecutionDate": "stringstri",
"scheme": "string",
"settlementInformation": {
"clearingSystem": "string",
"settlementAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"settlementMethod": "string"
},
"ultimateCreditor": "string",
"ultimateDebtor": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'X-Request-ID':'string',
'Idempotency-Key':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/financial-institution-credit-transfers',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'X-Request-ID' => 'string',
'Idempotency-Key' => 'string'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/payments/financial-institution-credit-transfers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'X-Request-ID': 'string',
'Idempotency-Key': 'string'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/payments/financial-institution-credit-transfers', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'X-Request-ID' => 'string',
'Idempotency-Key' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/payments/financial-institution-credit-transfers', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/financial-institution-credit-transfers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"X-Request-ID": []string{"string"},
"Idempotency-Key": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/payments/financial-institution-credit-transfers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /payments/financial-institution-credit-transfers
Example Request
{
"categoryPurposeCode": "stri",
"creditor": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"creditorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"creditorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"debtor": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"debtorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"debtorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"instructedAmount": {
"amount": "string",
"currency": "str"
},
"intermediaryAgent1": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"intermediaryAgent2": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"intermediaryAgent3": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"paymentIdentification": {
"endToEndIdentification": "string",
"transactionIdentification": "string",
"uetr": "stringstringstringstringstringstring"
},
"purposeCode": "stri",
"remittanceInformationStructured": {
"reference": "string",
"referenceIssuer": "string",
"referenceType": "string"
},
"remittanceInformationUnstructured": "string",
"requestedExecutionDate": "stringstri",
"scheme": "string",
"settlementInformation": {
"clearingSystem": "string",
"settlementAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"settlementMethod": "string"
},
"ultimateCreditor": "string",
"ultimateDebtor": "string"
}
Parameters
Name | Type | Description | In |
---|---|---|---|
X-Request-ID (required) | string | ID of the request, unique to the call, as determined by the initiating party. | header |
Idempotency-Key | string | Prevents retried requests to be executed multiple times. Subsequent requests with the same Idempotency Key will not be processed and will return a cached result. | header |
body | FinancialInstitutionPaymentDTO | none | body |
Example Responses
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
default |
Default | default response | None |
Response Schema
AML
If you are using an external service to check payments as part of your Anti Money Laundering obligations, these endpoints receive responses which will lead to unblocking funds and transferring them to the recipient account in the case of an all clear or returning funds to the payer in cases where there a compliance issue has been identified.
For more general information on AML flows, including how the necessary suspense accounting should be set up in Mambu, please refer to the AML and Suspense Accounts section of our User Guide.
resendCTAmlCallout
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}/aml:resendCallout \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}/aml:resendCallout HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}/aml:resendCallout',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}/aml:resendCallout',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}/aml:resendCallout', headers = headers)
print(r.json())
'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}/aml:resendCallout', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}/aml:resendCallout");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}/aml:resendCallout", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /payments/{paymentOrderId}/aml:resendCallout
Resends the AML callout for an Outgoing payment.
Parameters
Name | Type | Description | In |
---|---|---|---|
paymentOrderId (required) | string | none | path |
Example Responses
400 :
invalidRequestBody
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "Failed to find any valid Sepa Transaction for the given request. The error message is: resend.aml.callout.failed"
}
]
}
405 :
unsupportedHttpMethod
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - The AML callout was resent for the provided payment order. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
405 |
Method Not Allowed | Method Not Allowed - This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
processPaymentAmlResponse
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/payments/aml \
-H 'Content-Type: application/json' \
-H 'Accept: */*' \
-H 'Content-Type: undefined' \
-H 'X-Request-ID: string'
POST https://TENANT_NAME.mambu.com/api/v1/payments/aml HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: */*
Content-Type: undefined
X-Request-ID: string
const inputBody = '{
"groupHeader": {
"messageIdentification": "SCTORD200020190305ORD000011119"
},
"transactions": [
{
"status": "Accepted",
"paymentIdentification": {
"transactionIdentification": "00730100632BHGCRWC"
},
"debtorAgent": {
"institutionIdentification": {
"bicfi": "BTRLRO22"
}
},
"interbankSettlementDate": "2019-06-28"
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Content-Type':undefined,
'X-Request-ID':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/aml',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Content-Type' => undefined,
'X-Request-ID' => 'string'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/payments/aml',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Content-Type': undefined,
'X-Request-ID': 'string'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/payments/aml', headers = headers)
print(r.json())
'application/json',
'Accept' => '*/*',
'Content-Type' => 'undefined',
'X-Request-ID' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/payments/aml', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/aml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Content-Type": []string{"undefined"},
"X-Request-ID": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/payments/aml", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /payments/aml
Accepts AML check results for Payment Orders, for example SEPA Credit Transfers.
Example Request
amlInformation
{
"groupHeader": {
"messageIdentification": "SCTORD200020190305ORD000011119"
},
"transactions": [
{
"status": "Accepted",
"paymentIdentification": {
"transactionIdentification": "00730100632BHGCRWC"
},
"debtorAgent": {
"institutionIdentification": {
"bicfi": "BTRLRO22"
}
},
"interbankSettlementDate": "2019-06-28"
}
]
}
Parameters
Name | Type | Description | In |
---|---|---|---|
Content-Type (required) | undefined | application/json | header |
X-Request-ID (required) | string | ID of the request, unique to the call, as determined by the initiating party. | header |
body (required) | AmlResult | none | body |
Example Responses
200 Response
400 :
missingMandatoryField
405 :
unsupportedHttpMethod
415 :
unsupportedContentType
500 :
internalServerError
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - The AML check result has been prepared for processing. | string |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
405 |
Method Not Allowed | Method Not Allowed - This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported by a specific endpoint. It has nothing to do with the content, payment or account information data model. | PaymentResponse-TPP |
415 |
Unsupported Media Type | Unsupported Media Type - A media type which the serves does not support has been supplied. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | string |
resendDDAmlCallout
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}/aml:resendCallout \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}/aml:resendCallout HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}/aml:resendCallout',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}/aml:resendCallout',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}/aml:resendCallout', headers = headers)
print(r.json())
'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}/aml:resendCallout', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}/aml:resendCallout");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}/aml:resendCallout", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /collections/{collectionId}/aml:resendCallout
Resends the AML callout for an Outgoing collection.
Parameters
Name | Type | Description | In |
---|---|---|---|
collectionId (required) | string | none | path |
Example Responses
400 :
invalidRequestBody
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "Failed to find any valid Sepa Transaction for the given request. The error message is: resend.aml.callout.failed"
}
]
}
405 :
unsupportedHttpMethod
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - The AML callout was resent for the provided collection order. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
405 |
Method Not Allowed | Method Not Allowed - This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
processCollectionAmlResponse
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/collections/aml \
-H 'Content-Type: application/json' \
-H 'Accept: */*' \
-H 'Content-Type: undefined' \
-H 'X-Request-ID: string'
POST https://TENANT_NAME.mambu.com/api/v1/collections/aml HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: */*
Content-Type: undefined
X-Request-ID: string
const inputBody = '{
"groupHeader": {
"messageIdentification": "SCTORD200020190305ORD000011119"
},
"transactions": [
{
"status": "Accepted",
"collectionIdentification": {
"transactionIdentification": "00730100632BHGCRWC"
},
"creditorAgent": {
"institutionIdentification": {
"bicfi": "BTRLRO22"
}
},
"interbankSettlementDate": "2019-06-28"
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Content-Type':undefined,
'X-Request-ID':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/collections/aml',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Content-Type' => undefined,
'X-Request-ID' => 'string'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/collections/aml',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Content-Type': undefined,
'X-Request-ID': 'string'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/collections/aml', headers = headers)
print(r.json())
'application/json',
'Accept' => '*/*',
'Content-Type' => 'undefined',
'X-Request-ID' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/collections/aml', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/collections/aml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Content-Type": []string{"undefined"},
"X-Request-ID": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/collections/aml", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /collections/aml
Accepts AML check results for collections, for example, SEPA Direct Debits.
Example Request
amlInformation
{
"groupHeader": {
"messageIdentification": "SCTORD200020190305ORD000011119"
},
"transactions": [
{
"status": "Accepted",
"collectionIdentification": {
"transactionIdentification": "00730100632BHGCRWC"
},
"creditorAgent": {
"institutionIdentification": {
"bicfi": "BTRLRO22"
}
},
"interbankSettlementDate": "2019-06-28"
}
]
}
Parameters
Name | Type | Description | In |
---|---|---|---|
Content-Type (required) | undefined | application/json | header |
X-Request-ID (required) | string | ID of the request, unique to the call, as determined by the initiating party. | header |
body (required) | AmlResult | none | body |
Example Responses
200 Response
400 :
missingMandatoryField
405 :
unsupportedHttpMethod
415 :
unsupportedContentType
500 :
internalServerError
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - The AML check result has been prepared for processing. | string |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
405 |
Method Not Allowed | Method Not Allowed - This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported by a specific endpoint. It has nothing to do with the consent, payment or account information data model. | PaymentResponse-TPP |
415 |
Unsupported Media Type | Unsupported Media Type - A media type which the serves does not support has been supplied. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | string |
resendAmlCallouts
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/aml:resendCallouts \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/aml:resendCallouts HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"category": "SEPA_CT",
"direction": "I",
"instructingAgent": "string",
"interbankSettlementDate": "string",
"messageId": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/aml:resendCallouts',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/aml:resendCallouts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/aml:resendCallouts', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/aml:resendCallouts', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/aml:resendCallouts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/aml:resendCallouts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /aml:resendCallouts
Resends the AML callouts.
Example Request
{
"category": "SEPA_CT",
"direction": "I",
"instructingAgent": "string",
"interbankSettlementDate": "string",
"messageId": "string"
}
Parameters
Name | Type | Description | In |
---|---|---|---|
body (required) | ResendAmlFilter | none | body |
Example Responses
400 :
invalidRequestBody
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "Failed to find any valid Sepa Transaction for the given request. The error message is: resend.aml.callout.failed"
}
]
}
405 :
unsupportedHttpMethod
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
415 :
unsupportedContentType
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - The AML callouts were resent. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
405 |
Method Not Allowed | Method Not Allowed - This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | PaymentResponse-TPP |
415 |
Unsupported Media Type | Unsupported Media Type - A media type which the server does not support has been supplied. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
External Account Representation
The External Account Representation (EAR) endpoints are used to associate IBANs with Mambu account IDs so that payments made using the Mambu Payment Gateway are routed to the correct accounts.
An IBAN can be mapped to multiple accounts but can only be associated to one account per currency, so, for example, the same IBAN can be mapped to one underlying Mambu account using EUR, another using GBP and another using CHF, but not to two accounts both in EUR denomination.
getMapping
Code samples
# You can also use wget
curl -X GET https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/identifications \
-H 'Accept: application/json' \
-H 'Content-Type: string'
GET https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/identifications HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/json
Content-Type: string
const headers = {
'Accept':'application/json',
'Content-Type':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/identifications',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Content-Type' => 'string'
}
result = RestClient.get 'https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/identifications',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Content-Type': 'string'
}
r = requests.get('https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/identifications', headers = headers)
print(r.json())
'application/json',
'Content-Type' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/identifications', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/identifications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Content-Type": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/identifications", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /accounts/{accountId}/identifications
Gets associations of an external account identification (IBAN or proprietary) to a Mambu Account.
Parameters
Name | Type | Description | In |
---|---|---|---|
Content-Type (required) | string | application/json | header |
accountId (required) | string | none | path |
limit | integer(int32) | Limit the number of identifications retrieved. The default limit is 50, can be specified up to 1000. | query |
offset | integer(int64) | Offset determines how many records will be skipped before being included in the returned results. The default offset value is 0. | query |
Example Responses
200 :
Identification
[
{
"iban": "DE46606951125202071272"
},
{
"currency": "USD"
},
{
"other": {
"identification": "ABCDE1234F",
"scheme": "PAN"
}
}
]
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - List existing external identifications. | Inline |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | TppMessagesResponse |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
Response Schema
Status Code 200
Name | Type | Description | Restrictions |
---|---|---|---|
anonymous | [Identification] | [Identification] | none |
» currency | string | ISO 4217 Alpha 3 currency code. | none |
» iban | string | ISO 13616 International Bank Account Number (IBAN) - identifier used internationally by financial institutions to uniquely identify the account of a customer. | none |
» other | Other | Unique identification of an account, as assigned by the account servicer, using other identification scheme. | none |
»» identification (required) | string | Identification assigned by an institution. | none |
»» scheme (required) | string | Name of the identification scheme. | none |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Items-Offset |
undefined | The index of the first returned item. | |
200 | Items-Limit |
undefined | The requested page size. | |
200 | Items-Total |
undefined | The total count of available items. |
createMapping
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/identifications \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Content-Type: string'
POST https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/identifications HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
Content-Type: string
const inputBody = '{
"identification": {
"other": {
"identification": "ABCDE1234F",
"scheme": "PAN"
},
"iban": "DE46606951125202071272",
"currency": "USD"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Content-Type':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/identifications',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/identifications',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Content-Type': 'string'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/identifications', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/identifications', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/identifications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Content-Type": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/identifications", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /accounts/{accountId}/identifications
Adds association of an external account identification (IBAN or proprietary) to a Mambu Account. The currency of the association will be the one of the underlining Mambu account. If an IBAN is supposed to be a multi-currency one, this API needs to be invoked multiple times with different Mambu accounts (for the different currencies).
Example Request
createMambuAccountMapping
{
"identification": {
"other": {
"identification": "ABCDE1234F",
"scheme": "PAN"
},
"iban": "DE46606951125202071272",
"currency": "USD"
}
}
Parameters
Name | Type | Description | In |
---|---|---|---|
Content-Type (required) | string | application/json | header |
accountId (required) | string | none | path |
body | CreateAccountMapping | none | body |
Example Responses
201 :
accountMappingResponse
{}
400 :
invalidIdentification
{
"tppMessages": [
{
"category": "ERROR",
"code": "FORMAT_ERROR",
"path": "iban",
"text": "iban size must be between 15 and 34"
},
{
"category": "ERROR",
"code": "FORMAT_ERROR",
"path": "iban",
"text": "iban invalid IBAN value"
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 |
Created | Created - Association successfully created. | AccountMappingResponse |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | TppMessagesResponse |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | TppMessagesResponse |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
createMappings
Code samples
# You can also use wget
curl -X PUT https://TENANT_NAME.mambu.com/api/v1/accounts/identifications \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Content-Type: string'
PUT https://TENANT_NAME.mambu.com/api/v1/accounts/identifications HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
Content-Type: string
const inputBody = '{
"identification": {
"iban": "DE46606951125202071272"
},
"accountIds": [
"123",
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Content-Type':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/accounts/identifications',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string'
}
result = RestClient.put 'https://TENANT_NAME.mambu.com/api/v1/accounts/identifications',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Content-Type': 'string'
}
r = requests.put('https://TENANT_NAME.mambu.com/api/v1/accounts/identifications', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PUT','https://TENANT_NAME.mambu.com/api/v1/accounts/identifications', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/accounts/identifications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Content-Type": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://TENANT_NAME.mambu.com/api/v1/accounts/identifications", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /accounts/identifications
Create or replace associations of an external account identification (IBAN or proprietary) to one of Mambu Accounts. The currency of the association will be the one of the underlining Mambu account.
Example Request
createMambuAccountMappings
"{\n \"identification\": {\n \"iban\": \"DE46606951125202071272\"\n },\n \"accountIds\": [\n \"123\",\n ]\n}"
Parameters
Name | Type | Description | In |
---|---|---|---|
Content-Type (required) | string | application/json | header |
body | CreateAccountMappings | none | body |
Example Responses
201 :
accountMappingResponse
{}
400 :
invalidIdentification
{
"tppMessages": [
{
"category": "ERROR",
"code": "FORMAT_ERROR",
"path": "iban",
"text": "iban size must be between 15 and 34"
},
{
"category": "ERROR",
"code": "FORMAT_ERROR",
"path": "iban",
"text": "iban invalid IBAN value"
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 |
Created | Created - Association successfully created. | AccountMappingResponse |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | TppMessagesResponse |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | TppMessagesResponse |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
searchAccountIdentifications
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/accounts/identifications:search \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Content-Type: string'
POST https://TENANT_NAME.mambu.com/api/v1/accounts/identifications:search HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
Content-Type: string
const inputBody = '{
"filterCriteria": [
{
"field": "SCHEME",
"operator": "EQUALS",
"value": "string"
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Content-Type':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/accounts/identifications:search',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/accounts/identifications:search',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Content-Type': 'string'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/accounts/identifications:search', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/accounts/identifications:search', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/accounts/identifications:search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Content-Type": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/accounts/identifications:search", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /accounts/identifications:search
Searches identifications (with MambuID included) based on provided filter criteria
Example Request
{
"filterCriteria": [
{
"field": "SCHEME",
"operator": "EQUALS",
"value": "string"
}
]
}
Parameters
Name | Type | Description | In |
---|---|---|---|
Content-Type (required) | string | application/json | header |
body | AccountIdentificationsSearchRequestDTO | none | body |
Example Responses
200 :
AccountIdentificationsSearchResponse
[
{
"accountId": "test123",
"currency": "EUR",
"type": "DEPOSIT",
"identification": {
"iban": "DE46606951125202071272",
"identification": "ABCDE1234F",
"scheme": "PAN"
}
}
]
400 :
invalidSearchFilter
{
"tppMessages": [
{
"category": "ERROR",
"code": "FORMAT_ERROR",
"path": "searchAccountIdentifications.arg0.filterCriteria[0].field",
"text": "filterCriteria[0].field Should be one of: schema, iban, currency, identification"
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - List of found identifications with accountId | Inline |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | TppMessagesResponse |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | TppMessagesResponse |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
Response Schema
Status Code 200
Name | Type | Description | Restrictions |
---|---|---|---|
anonymous | [AccountIdentificationsSearchResponseDTO] | none | none |
» accountId (required) | string | AccountID (Unique and unambiguous identification for the account.) | none |
» currency | string | Account currency | none |
» identification (required) | Identification | Identification | none |
»» currency | string | ISO 4217 Alpha 3 currency code. | none |
»» iban | string | ISO 13616 International Bank Account Number (IBAN) - identifier used internationally by financial institutions to uniquely identify the account of a customer. | none |
»» other | Other | Unique identification of an account, as assigned by the account servicer, using other identification scheme. | none |
»»» identification (required) | string | Identification assigned by an institution. | none |
»»» scheme (required) | string | Name of the identification scheme. | none |
» type | string | Account type | none |
logArgument
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/log \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/log HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"log": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/log',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/log',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/log', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/log', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/log");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/log", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /log
Example Request
{
"log": "string"
}
Parameters
Name | Type | Description | In |
---|---|---|---|
body (required) | LogRequest | none | body |
Example Responses
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
default |
Default | default response | None |
Response Schema
mask
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/accounts/identifications:mask \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/accounts/identifications:mask HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"identifications": [
{
"iban": "stringstringstr"
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/accounts/identifications:mask',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/accounts/identifications:mask',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/accounts/identifications:mask', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/accounts/identifications:mask', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/accounts/identifications:mask");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/accounts/identifications:mask", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /accounts/identifications:mask
Mask identifications from Payments Gateway.
Example Request
{
"identifications": [
{
"iban": "stringstringstr"
}
]
}
Parameters
Name | Type | Description | In |
---|---|---|---|
body (required) | IdentificationsToMask | none | body |
Example Responses
400 :
identificationAlreadyMasked
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "Following identifications are already masked: DK0643182702662691"
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - Identifications masked. This operation is irreversible. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
Incoming Messages
This endpoint is the main entry point to the Mambu Payment Gateway for external systems.
For more information on the types of messages accepted by this endpoint, please refer to the supported flows section of the introduction to the Mambu Payment Gateway article in our User Guide.
submitIncomingMessage
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/payments/incoming \
-H 'Content-Type: application/xml' \
-H 'Accept: application/json' \
-H 'X-Request-ID: string' \
-H 'X-Payment-Scheme: string' \
-H 'Content-Type: string'
POST https://TENANT_NAME.mambu.com/api/v1/payments/incoming HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/xml
Accept: application/json
X-Request-ID: string
X-Payment-Scheme: string
Content-Type: string
const inputBody = ' ... ';
const headers = {
'Content-Type':'application/xml',
'Accept':'application/json',
'X-Request-ID':'string',
'X-Payment-Scheme':'string',
'Content-Type':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/incoming',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/xml',
'Accept' => 'application/json',
'X-Request-ID' => 'string',
'X-Payment-Scheme' => 'string',
'Content-Type' => 'string'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/payments/incoming',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/xml',
'Accept': 'application/json',
'X-Request-ID': 'string',
'X-Payment-Scheme': 'string',
'Content-Type': 'string'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/payments/incoming', headers = headers)
print(r.json())
'application/xml',
'Accept' => 'application/json',
'X-Request-ID' => 'string',
'X-Payment-Scheme' => 'string',
'Content-Type' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/payments/incoming', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/incoming");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/xml"},
"Accept": []string{"application/json"},
"X-Request-ID": []string{"string"},
"X-Payment-Scheme": []string{"string"},
"Content-Type": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/payments/incoming", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /payments/incoming
Creates an incoming message request.
Example Request
incomingCreditTransferRequest
<?xml version="1.0" encoding="utf-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02">
<FIToFICstmrCdtTrf>
...
</FIToFICstmrCdtTrf>
</Document>
...
Parameters
Name | Type | Description | In |
---|---|---|---|
X-Request-ID (required) | string | ID of the request, unique to the call, as determined by the initiating party. | header |
X-Payment-Scheme | string | Specifies payment scheme for processing. | header |
Content-Type (required) | string | none | header |
body (required) | string | none | body |
Example Responses
202 :
incomingPacs008Response
{
"messageId": "SCTORD200020190305ORD000011119",
"messageType": "urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02"
}
202 :
incomingCamt056Response
{
"messageId": "568R9154000000000000000000000000010",
"messageType": "urn:iso:std:iso:20022:tech:xsd:camt.056.001.01"
}
400 :
invalidValueForField
{
"tppMessages": [
{
"category": "ERROR",
"code": "FORMAT_ERROR",
"text": "The request body may not be empty"
}
]
}
405 :
unsupportedHttpMethod
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
415 :
unsupportedContentType
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
202 |
Accepted | Accepted - Incoming file accepted and is due for processing, when incoming scheduler is configured to run. Outgoing (complete / partial) pacs.002 will be published in case of complete / partial processing of incoming pacs.008. If the incoming pacs.008 is completely failed then a rejected pacs.002 will be published. Outgoing pacs.004 will be published for failed transaction from incoming pacs.008. | IncomingMessageResponse |
400 |
Bad Request | Bad Request - Validation error occurred. | PaymentResponse-TPP |
405 |
Method Not Allowed | Method Not Allowed - This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | PaymentResponse-TPP |
415 |
Unsupported Media Type | Unsupported Media Type - A media type which the server does not support has been supplied. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
SEPA Credit Transfers
These endpoints are used for making and receiving SEPA credit transfers through the Mambu Payment Gateway.
For more information on supported messages, flows and technical information, including examples of generated XML messages and how the fields map to these API requests, please refer to the SEPA Credit Transfer section of our User Guide.
initiateCreditTransfer_1
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/payments/credit-transfers \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'X-Request-ID: string' \
-H 'Idempotency-Key: string'
POST https://TENANT_NAME.mambu.com/api/v1/payments/credit-transfers HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
X-Request-ID: string
Idempotency-Key: string
const inputBody = '{
"categoryPurposeCode": "stri",
"creditorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"creditorAddress": {
"buildingNumber": "string",
"city": "string",
"countryCode": "st",
"postalCode": "string",
"street": "string"
},
"creditorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"creditorIdentification": {
"code": "stri",
"issuer": "string",
"privateIdentification": "string",
"proprietary": "string"
},
"creditorName": "string",
"debtorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"debtorAddress": {
"buildingNumber": "string",
"city": "string",
"countryCode": "st",
"postalCode": "string",
"street": "string"
},
"debtorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"debtorIdentification": {
"code": "stri",
"issuer": "string",
"privateIdentification": "string",
"proprietary": "string"
},
"debtorName": "string",
"instructedAmount": {
"amount": "string",
"currency": "str"
},
"localInstrument": "string",
"paymentIdentification": {
"endToEndIdentification": "string",
"transactionIdentification": "string",
"uetr": "stringstringstringstringstringstring"
},
"purposeCode": "stri",
"remittanceInformationStructured": {
"reference": "string",
"referenceIssuer": "string",
"referenceType": "string"
},
"remittanceInformationUnstructured": "string",
"requestedExecutionDate": "stringstri",
"requestedExecutionTime": "stringstringstrin",
"scheme": "string",
"serviceLevel": "string",
"settlementInformation": {
"clearingSystem": "string",
"settlementAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"settlementMethod": "string"
},
"ultimateCreditor": "string",
"ultimateDebtor": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'X-Request-ID':'string',
'Idempotency-Key':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/credit-transfers',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'X-Request-ID' => 'string',
'Idempotency-Key' => 'string'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/payments/credit-transfers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'X-Request-ID': 'string',
'Idempotency-Key': 'string'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/payments/credit-transfers', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'X-Request-ID' => 'string',
'Idempotency-Key' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/payments/credit-transfers', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/credit-transfers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"X-Request-ID": []string{"string"},
"Idempotency-Key": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/payments/credit-transfers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /payments/credit-transfers
Example Request
{
"categoryPurposeCode": "stri",
"creditorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"creditorAddress": {
"buildingNumber": "string",
"city": "string",
"countryCode": "st",
"postalCode": "string",
"street": "string"
},
"creditorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"creditorIdentification": {
"code": "stri",
"issuer": "string",
"privateIdentification": "string",
"proprietary": "string"
},
"creditorName": "string",
"debtorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"debtorAddress": {
"buildingNumber": "string",
"city": "string",
"countryCode": "st",
"postalCode": "string",
"street": "string"
},
"debtorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"debtorIdentification": {
"code": "stri",
"issuer": "string",
"privateIdentification": "string",
"proprietary": "string"
},
"debtorName": "string",
"instructedAmount": {
"amount": "string",
"currency": "str"
},
"localInstrument": "string",
"paymentIdentification": {
"endToEndIdentification": "string",
"transactionIdentification": "string",
"uetr": "stringstringstringstringstringstring"
},
"purposeCode": "stri",
"remittanceInformationStructured": {
"reference": "string",
"referenceIssuer": "string",
"referenceType": "string"
},
"remittanceInformationUnstructured": "string",
"requestedExecutionDate": "stringstri",
"requestedExecutionTime": "stringstringstrin",
"scheme": "string",
"serviceLevel": "string",
"settlementInformation": {
"clearingSystem": "string",
"settlementAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"settlementMethod": "string"
},
"ultimateCreditor": "string",
"ultimateDebtor": "string"
}
Parameters
Name | Type | Description | In |
---|---|---|---|
X-Request-ID (required) | string | ID of the request, unique to the call, as determined by the initiating party. | header |
Idempotency-Key | string | Prevents retried requests to be executed multiple times. Subsequent requests with the same Idempotency Key will not be processed and will return a cached result. | header |
body | Iso20022PaymentDTO | none | body |
Example Responses
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
default |
Default | default response | None |
Response Schema
initiatePayment
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/payments \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Content-Type: string' \
-H 'X-Request-ID: string' \
-H 'Idempotency-Key: string'
POST https://TENANT_NAME.mambu.com/api/v1/payments HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
Content-Type: string
X-Request-ID: string
Idempotency-Key: string
const inputBody = '{
"debtorAccount": {
"identification": {
"iban": "DE46606951125202071272"
},
"currency": "EUR"
},
"debtorName": "John Doe",
"debtorAddress": {
"street": "Karl-Liebknecht-Str. 5",
"buildingNumber": "5234",
"city": "Berlin",
"postalCode": "10178",
"countryCode": "DE"
},
"serviceLevel": "SEPA",
"instructedAmount": {
"currency": "EUR",
"amount": "500"
},
"creditorAccount": {
"identification": {
"iban": "DE16195554277485442959"
},
"currency": "EUR"
},
"creditorAgent": {
"institutionIdentification": {
"bicfi": "DEUTDEFF"
}
},
"creditorName": "Merchant123",
"creditorAddress": {
"street": "Am Olympiapark 1",
"buildingNumber": "1",
"city": "Munchen",
"postalCode": "80809",
"countryCode": "DE"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Content-Type':'string',
'X-Request-ID':'string',
'Idempotency-Key':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string',
'X-Request-ID' => 'string',
'Idempotency-Key' => 'string'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/payments',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Content-Type': 'string',
'X-Request-ID': 'string',
'Idempotency-Key': 'string'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/payments', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string',
'X-Request-ID' => 'string',
'Idempotency-Key' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/payments', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Content-Type": []string{"string"},
"X-Request-ID": []string{"string"},
"Idempotency-Key": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/payments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /payments
Creates a payment initiation request. Payments using the SEPA Credit Transfer scheme can only be created for the current date. A pacs.008 message will be generated from the data provided in this request. For more information on how these fields map to SEPA XML messages, refer to the SEPA Credit Transfer Techincal Information article in our user guide.
Example Request
initiatePaymentRequest
{
"debtorAccount": {
"identification": {
"iban": "DE46606951125202071272"
},
"currency": "EUR"
},
"debtorName": "John Doe",
"debtorAddress": {
"street": "Karl-Liebknecht-Str. 5",
"buildingNumber": "5234",
"city": "Berlin",
"postalCode": "10178",
"countryCode": "DE"
},
"serviceLevel": "SEPA",
"instructedAmount": {
"currency": "EUR",
"amount": "500"
},
"creditorAccount": {
"identification": {
"iban": "DE16195554277485442959"
},
"currency": "EUR"
},
"creditorAgent": {
"institutionIdentification": {
"bicfi": "DEUTDEFF"
}
},
"creditorName": "Merchant123",
"creditorAddress": {
"street": "Am Olympiapark 1",
"buildingNumber": "1",
"city": "Munchen",
"postalCode": "80809",
"countryCode": "DE"
}
}
Parameters
Name | Type | Description | In |
---|---|---|---|
Content-Type (required) | string | application/json | header |
X-Request-ID (required) | string | ID of the request, unique to the call, as determined by the initiating party. | header |
Idempotency-Key | string | Prevents retried requests to be executed multiple times. Subsequent requests with the same Idempotency Key will not be processed and will return a cached result. | header |
body | InitiationPaymentDTO | none | body |
Example Responses
201 :
initiatePaymentResponse
{
"transactionStatus": "RCVD",
"paymentId": "e38458a4-d955-4a39-8e21-9608e9600b3d",
"transactionFeeIndicator": false
}
400 :
missingMandatoryField
{
"tppMessages": [
{
"category": "ERROR",
"code": "FORMAT_ERROR",
"path": "debtorAccount.identification",
"text": "debtorAccount.identification may not be null"
}
]
}
405 :
unsupportedHttpMethod
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
415 :
unsupportedContentType
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 |
Created | Created - Payment Initiation request was correctly performed (but not yet accepted) nor executed. | PaymentResponse |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | FailedPaymentResponse |
405 |
Method Not Allowed | Method Not Allowed - This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported by a specific endpoint. It has nothing to do with the consent, payment or account information data model. | FailedPaymentResponse |
415 |
Unsupported Media Type | Unsupported Media Type - A media type which the serves does not support has been supplied. | FailedPaymentResponse |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | FailedPaymentResponse |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
201 | Location |
undefined | Location of the created payment order request resource, for future reference or status polling. |
creditTransferDetails
Code samples
# You can also use wget
curl -X GET https://TENANT_NAME.mambu.com/api/v1/payments/credit-transfers/{paymentId} \
-H 'Accept: application/json'
GET https://TENANT_NAME.mambu.com/api/v1/payments/credit-transfers/{paymentId} HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/credit-transfers/{paymentId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://TENANT_NAME.mambu.com/api/v1/payments/credit-transfers/{paymentId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://TENANT_NAME.mambu.com/api/v1/payments/credit-transfers/{paymentId}', headers = headers)
print(r.json())
'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_NAME.mambu.com/api/v1/payments/credit-transfers/{paymentId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/credit-transfers/{paymentId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_NAME.mambu.com/api/v1/payments/credit-transfers/{paymentId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /payments/credit-transfers/{paymentId}
Parameters
Name | Type | Description | In |
---|---|---|---|
paymentId (required) | string | ID of the payment order, as received in the response to a POST /payments request |
path |
detailsLevel | string | Details level of the response. STATUS and FULL detail levels are supported. STATUS will return the current status and a timestamp of when the payment order was last modified. The default value of FULL will return a complete set of information about the payment order. |
query |
Example Responses
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
default |
Default | default response | None |
Response Schema
getPaymentDetails
Code samples
# You can also use wget
curl -X GET https://TENANT_NAME.mambu.com/api/v1/payments/{paymentId} \
-H 'Accept: application/json'
GET https://TENANT_NAME.mambu.com/api/v1/payments/{paymentId} HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/{paymentId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://TENANT_NAME.mambu.com/api/v1/payments/{paymentId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://TENANT_NAME.mambu.com/api/v1/payments/{paymentId}', headers = headers)
print(r.json())
'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_NAME.mambu.com/api/v1/payments/{paymentId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/{paymentId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_NAME.mambu.com/api/v1/payments/{paymentId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /payments/{paymentId}
Parameters
Name | Type | Description | In |
---|---|---|---|
paymentId (required) | string | ID of the payment order, as received in the response to a POST /payments request |
path |
detailsLevel | string | Details level of the response. STATUS and FULL detail levels are supported. STATUS will return the current status and a timestamp of when the payment order was last modified. The default value of FULL will return a complete set of information about the payment order. |
query |
Example Responses
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
default |
Default | default response | None |
Response Schema
settleInstantPayment
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/payments:settleInstantPayment \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/payments:settleInstantPayment HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"groupHeader": {
"messageIdentification": "SCTORD200020190305ORD000011119"
},
"transaction": {
"debtorAgent": {
"institutionIdentification": {
"bicfi": "FUBKDE71"
}
},
"paymentIdentification": {
"transactionIdentification": "00730100632BHGCRWC",
"acceptanceDateTime": "2023-04-05T09:07:37"
}
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments:settleInstantPayment',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/payments:settleInstantPayment',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/payments:settleInstantPayment', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/payments:settleInstantPayment', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments:settleInstantPayment");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/payments:settleInstantPayment", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /payments:settleInstantPayment
Accepts requests for an instant payment settlement.
Example Request
instantPaymentSettlementRequest
{
"groupHeader": {
"messageIdentification": "SCTORD200020190305ORD000011119"
},
"transaction": {
"debtorAgent": {
"institutionIdentification": {
"bicfi": "FUBKDE71"
}
},
"paymentIdentification": {
"transactionIdentification": "00730100632BHGCRWC",
"acceptanceDateTime": "2023-04-05T09:07:37"
}
}
}
Parameters
Name | Type | Description | In |
---|---|---|---|
body (required) | InstantPaymentSettlement | none | body |
Example Responses
400 :
missingMandatoryField
{
"tppMessages": [
{
"category": "ERROR",
"code": "FORMAT_ERROR",
"path": "groupHeader.messageIdentification",
"text": "groupHeader.messageIdentification may not be null"
}
]
}
405 :
unsupportedHttpMethod
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
415 :
unsupportedContentType
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
202 |
Accepted | Accepted - The instant payment settlement request has been accepted for processing. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
405 |
Method Not Allowed | Method Not Allowed - This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported by a specific endpoint. It has nothing to do with the content, payment or account information data model. | PaymentResponse-TPP |
415 |
Unsupported Media Type | Unsupported Media Type - A media type which the serves does not support has been supplied. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
manuallyRejectOutgoingPayment
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:reject \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:reject HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:reject',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:reject',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:reject', headers = headers)
print(r.json())
'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:reject', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:reject");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:reject", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /payments/{paymentOrderId}:reject
Manually Reject an Outgoing Payment.
Parameters
Name | Type | Description | In |
---|---|---|---|
paymentOrderId (required) | string | none | path |
Example Responses
400 :
invalidTransactionStatus
{
"tppMessages": [
{
"category": "ERROR",
"code": "INVALID_TRANSACTION_STATUS",
"text": "Transaction has invalid status: TO_BE_REJECTED. Expected status is: TO_BE_SENT."
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - The specified payment order has been marked to be manually rejected. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
recallOutgoingPayment
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:recall \
-H 'Content-Type: application/json' \
-H 'Accept: */*'
POST https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:recall HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: */*
const inputBody = '{
"customerRecallReasonCode": "AM09",
"recallReasonCode": "FRAD"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:recall',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:recall',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:recall', headers = headers)
print(r.json())
'application/json',
'Accept' => '*/*',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:recall', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:recall");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:recall", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /payments/{paymentOrderId}:recall
Recall an outgoing payment.
Example Request
{
"customerRecallReasonCode": "AM09",
"recallReasonCode": "FRAD"
}
Parameters
Name | Type | Description | In |
---|---|---|---|
paymentOrderId (required) | string | none | path |
body (required) | Recall | none | body |
Example Responses
400 :
badRecallReasonCode
500 :
internalServerError
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - Payment marked to be recalled successfully. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
denyOutgoingRecall
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:denyOutgoingRecall \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:denyOutgoingRecall HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:denyOutgoingRecall',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:denyOutgoingRecall',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:denyOutgoingRecall', headers = headers)
print(r.json())
'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:denyOutgoingRecall', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:denyOutgoingRecall");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:denyOutgoingRecall", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /payments/{paymentOrderId}:denyOutgoingRecall
Deny an Outgoing Recall.
Parameters
Name | Type | Description | In |
---|---|---|---|
paymentOrderId (required) | string | none | path |
Example Responses
400 :
invalidPaymentOrderId
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "original transaction for Payment Order bac5161bd53348fa8dfc143cae49ba13 not found"
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - The specified outgoing recall has been marked to be rejected. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
denyIncomingRecall
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:denyIncomingRecall \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:denyIncomingRecall HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"additionalInformation": [
"string"
],
"originalRecallReasonAdditionalInformation": [
"string"
],
"rejectionReason": "ARDT"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:denyIncomingRecall',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:denyIncomingRecall',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:denyIncomingRecall', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:denyIncomingRecall', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:denyIncomingRecall");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:denyIncomingRecall", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /payments/{paymentOrderId}:denyIncomingRecall
Deny an Incoming Recall.
Example Request
{
"additionalInformation": [
"string"
],
"originalRecallReasonAdditionalInformation": [
"string"
],
"rejectionReason": "ARDT"
}
Parameters
Name | Type | Description | In |
---|---|---|---|
paymentOrderId (required) | string | none | path |
body (required) | CancellationDetails | none | body |
Example Responses
400 :
invalidRequest
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "Database update failed due to invalid request, expected number of updated rows is 1, actual number is: 0. The error message is: pending.authorized.failed"
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - The specified incoming recall has been marked to be rejected. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
approveOutgoingRecall
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:approveOutgoingRecall \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:approveOutgoingRecall HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:approveOutgoingRecall',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:approveOutgoingRecall',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:approveOutgoingRecall', headers = headers)
print(r.json())
'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:approveOutgoingRecall', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:approveOutgoingRecall");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:approveOutgoingRecall", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /payments/{paymentOrderId}:approveOutgoingRecall
Approve an Outgoing Recall.
Parameters
Name | Type | Description | In |
---|---|---|---|
paymentOrderId (required) | string | none | path |
Example Responses
400 :
invalidPaymentOrderId
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "original transaction for Payment Order bac5161bd53348fa8dfc143cae49ba13 not found"
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - The specified outgoing recall has been authorized. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
approveIncomingRecall
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:approveIncomingRecall \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:approveIncomingRecall HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:approveIncomingRecall',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:approveIncomingRecall',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:approveIncomingRecall', headers = headers)
print(r.json())
'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:approveIncomingRecall', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:approveIncomingRecall");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/payments/{paymentOrderId}:approveIncomingRecall", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /payments/{paymentOrderId}:approveIncomingRecall
Approve an Incoming Recall.
Parameters
Name | Type | Description | In |
---|---|---|---|
paymentOrderId (required) | string | none | path |
Example Responses
400 :
invalidRequest
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "Database update failed due to invalid request, expected number of updated rows is 1, actual number is: 0. The error message is: pending.authorized.failed"
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - The specified incoming recall has been authorized. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
SEPA Credit Transfer Inquiries
These APIs allow you to submit inquiries for SEPA payments including for cases where the customer claims to have not received the funds, the value date was not correctly recorded or to request a status update for payments which have been cancelled.
For more information on the types of inquiry supported and how to submit and respond to inquiries via the Mambu Payment Gateway UI, please refer to the relevant section of our User Guide, such as the SEPA credit transfer inquiries article for SEPA credit transfers.
skipStatusUpdateOnRecall
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/inquiries:skipStatusUpdateOnRecall \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/inquiries:skipStatusUpdateOnRecall HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"groupHeader": {
"messageIdentification": "82d7125b36014c2e8cc442a3586badd0",
"creationDateTime": "2021-02-10T10:03:25",
"instructingAgent": "ABCDE123"
},
"transactionInformation": {
"statusRequestIdentification": "4112f6688c846a89bee2b2c476f1145"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/inquiries:skipStatusUpdateOnRecall',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/inquiries:skipStatusUpdateOnRecall',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/inquiries:skipStatusUpdateOnRecall', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/inquiries:skipStatusUpdateOnRecall', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/inquiries:skipStatusUpdateOnRecall");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/inquiries:skipStatusUpdateOnRecall", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /inquiries:skipStatusUpdateOnRecall
Skips response for Request for Status Update on Recall with given details.
Example Request
skipStatusUpdateOnRecall
{
"groupHeader": {
"messageIdentification": "82d7125b36014c2e8cc442a3586badd0",
"creationDateTime": "2021-02-10T10:03:25",
"instructingAgent": "ABCDE123"
},
"transactionInformation": {
"statusRequestIdentification": "4112f6688c846a89bee2b2c476f1145"
}
}
Parameters
Name | Type | Description | In |
---|---|---|---|
body (required) | SkipStatusUpdateOnRecall | none | body |
Example Responses
400 :
invalidTransactionStatus
{
"tppMessages": [
{
"category": "ERROR",
"code": "INVALID_TRANSACTION_STATUS",
"text": "Transaction has invalid status: REPLY_SKIPPED"
}
]
}
404 :
messageNotFound
{
"tppMessages": [
{
"category": "ERROR",
"code": "NOT_FOUND",
"text": "No pacs.028.001.01 was found for the supplied details"
}
]
}
405 :
unsupportedHttpMethod
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
415 :
unsupportedContentType
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - Request for skipping Status Update on Recall response was received | None |
400 |
Bad Request | Bad Request - Invalid Transaction Status. | PaymentResponse-TPP |
404 |
Not Found | Not Found - No message found for the given identification. | PaymentResponse-TPP |
405 |
Method Not Allowed | Method Not Allowed - This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | PaymentResponse-TPP |
415 |
Unsupported Media Type | Unsupported Media Type - A media type which the server does not support has been supplied. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
requestStatusUpdateOnRecall
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/inquiries:requestStatusUpdateOnRecall \
-H 'Content-Type: application/json' \
-H 'Accept: */*'
POST https://TENANT_NAME.mambu.com/api/v1/inquiries:requestStatusUpdateOnRecall HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: */*
const inputBody = '{
"cancellationIdentification": "string",
"groupHeader": {
"messageIdentification": "string"
},
"historicCancellationRequest": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/inquiries:requestStatusUpdateOnRecall',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/inquiries:requestStatusUpdateOnRecall',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/inquiries:requestStatusUpdateOnRecall', headers = headers)
print(r.json())
'application/json',
'Accept' => '*/*',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/inquiries:requestStatusUpdateOnRecall', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/inquiries:requestStatusUpdateOnRecall");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/inquiries:requestStatusUpdateOnRecall", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /inquiries:requestStatusUpdateOnRecall
Create inquiry to request status update for a payment cancellation.
Example Request
{
"cancellationIdentification": "string",
"groupHeader": {
"messageIdentification": "string"
},
"historicCancellationRequest": "string"
}
Parameters
Name | Type | Description | In |
---|---|---|---|
body (required) | OriginalCamt056Data | none | body |
Example Responses
400 :
originalTransactionNotFound
500 :
internalServerError
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - Inquiry created successfully. | None |
400 |
Bad Request | Bad Request - The original Payment Cancellation Request transaction not found. Please check the input parameters. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
requestStatusUpdateOnInquiry
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/inquiries:requestStatusUpdateOnInquiry \
-H 'Content-Type: application/json' \
-H 'Accept: */*'
POST https://TENANT_NAME.mambu.com/api/v1/inquiries:requestStatusUpdateOnInquiry HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: */*
const inputBody = '{
"assignment": {
"creationDateTime": "2019-08-24T14:15:22Z",
"identification": "string"
},
"caseIdentification": "string",
"historicClaimRequest": "string",
"messageTypeName": "PACS_002_001_03"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/inquiries:requestStatusUpdateOnInquiry',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/inquiries:requestStatusUpdateOnInquiry',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/inquiries:requestStatusUpdateOnInquiry', headers = headers)
print(r.json())
'application/json',
'Accept' => '*/*',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/inquiries:requestStatusUpdateOnInquiry', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/inquiries:requestStatusUpdateOnInquiry");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/inquiries:requestStatusUpdateOnInquiry", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /inquiries:requestStatusUpdateOnInquiry
Create status update request for existing camt.087 or camt.027 inquiry
Example Request
{
"assignment": {
"creationDateTime": "2019-08-24T14:15:22Z",
"identification": "string"
},
"caseIdentification": "string",
"historicClaimRequest": "string",
"messageTypeName": "PACS_002_001_03"
}
Parameters
Name | Type | Description | In |
---|---|---|---|
body (required) | OriginalInquiryData | none | body |
Example Responses
400 :
originalTransactionNotFound
500 :
internalServerError
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - Inquiry created successfully. | None |
400 |
Bad Request | Bad Request - The original Credit transfer transaction not found. Please check the input parameters. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
rejectStatusUpdateOnRecall
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/inquiries:rejectStatusUpdateOnRecall \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/inquiries:rejectStatusUpdateOnRecall HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"groupHeader": {
"messageIdentification": "82d7125b36014c2e8cc442a3586badd0",
"creationDateTime": "2021-02-10T10:03:25",
"instructingAgent": "ABCDE123"
},
"transactionInformation": {
"statusRequestIdentification": "4112f6688c846a89bee2b2c476f1145",
"originalMessageIdentification": "22b8f938c6154877886a0c1fc9e74166",
"originalInstructionIdentification": "562f8f9f8c6154844886a0c1fc9e7451"
},
"cancellationDetails": {
"rejectionReason": "ARDT"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/inquiries:rejectStatusUpdateOnRecall',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/inquiries:rejectStatusUpdateOnRecall',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/inquiries:rejectStatusUpdateOnRecall', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/inquiries:rejectStatusUpdateOnRecall', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/inquiries:rejectStatusUpdateOnRecall");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/inquiries:rejectStatusUpdateOnRecall", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /inquiries:rejectStatusUpdateOnRecall
Handles negative response for Request for Status Update on Recall with given details.
Example Request
rejectStatusUpdateOnRecall
{
"groupHeader": {
"messageIdentification": "82d7125b36014c2e8cc442a3586badd0",
"creationDateTime": "2021-02-10T10:03:25",
"instructingAgent": "ABCDE123"
},
"transactionInformation": {
"statusRequestIdentification": "4112f6688c846a89bee2b2c476f1145",
"originalMessageIdentification": "22b8f938c6154877886a0c1fc9e74166",
"originalInstructionIdentification": "562f8f9f8c6154844886a0c1fc9e7451"
},
"cancellationDetails": {
"rejectionReason": "ARDT"
}
}
Parameters
Name | Type | Description | In |
---|---|---|---|
body (required) | RejectStatusUpdateOnRecall | none | body |
Example Responses
400 :
invalidValueForField
{
"tppMessages": [
{
"category": "ERROR",
"code": "FORMAT_ERROR",
"text": "The request body must not be empty"
}
]
}
404 :
messageNotFound
{
"tppMessages": [
{
"category": "ERROR",
"code": "NOT_FOUND",
"text": "No pacs.028.001.01 was found for the supplied details"
}
]
}
405 :
unsupportedHttpMethod
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
415 :
unsupportedContentType
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - Request for Status Update on Recall negative response was received | None |
400 |
Bad Request | Bad Request - Validation error occurred. | PaymentResponse-TPP |
404 |
Not Found | Not Found - No message found for the given identification. | PaymentResponse-TPP |
405 |
Method Not Allowed | Method Not Allowed - This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | PaymentResponse-TPP |
415 |
Unsupported Media Type | Unsupported Media Type - A media type which the server does not support has been supplied. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
claimValueDateCorrection
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/inquiries:claimValueDateCorrection \
-H 'Content-Type: application/json' \
-H 'Accept: */*'
POST https://TENANT_NAME.mambu.com/api/v1/inquiries:claimValueDateCorrection HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: */*
const inputBody = '{
"claimedValueDate": "2019-08-24",
"groupHeader": {
"messageIdentification": "string",
"settlementDate": "2019-08-24"
},
"historicCreditTransferRequest": "string",
"paymentIdentification": {
"transactionIdentification": "string"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/inquiries:claimValueDateCorrection',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/inquiries:claimValueDateCorrection',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/inquiries:claimValueDateCorrection', headers = headers)
print(r.json())
'application/json',
'Accept' => '*/*',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/inquiries:claimValueDateCorrection', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/inquiries:claimValueDateCorrection");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/inquiries:claimValueDateCorrection", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /inquiries:claimValueDateCorrection
Create inquiry to request claim for value-date change.
Example Request
{
"claimedValueDate": "2019-08-24",
"groupHeader": {
"messageIdentification": "string",
"settlementDate": "2019-08-24"
},
"historicCreditTransferRequest": "string",
"paymentIdentification": {
"transactionIdentification": "string"
}
}
Parameters
Name | Type | Description | In |
---|---|---|---|
body (required) | OriginalPacs008Data | none | body |
Example Responses
400 :
originalTransactionNotFound
500 :
internalServerError
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - Inquiry created successfully. | None |
400 |
Bad Request | Bad Request - The original Credit Transfer transaction not found. Please check the input parameters. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
claimNonReceipt
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/inquiries:claimNonReceipt \
-H 'Content-Type: application/json' \
-H 'Accept: */*'
POST https://TENANT_NAME.mambu.com/api/v1/inquiries:claimNonReceipt HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: */*
const inputBody = '{
"claimedValueDate": "2019-08-24",
"groupHeader": {
"messageIdentification": "string",
"settlementDate": "2019-08-24"
},
"historicCreditTransferRequest": "string",
"paymentIdentification": {
"transactionIdentification": "string"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/inquiries:claimNonReceipt',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/inquiries:claimNonReceipt',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/inquiries:claimNonReceipt', headers = headers)
print(r.json())
'application/json',
'Accept' => '*/*',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/inquiries:claimNonReceipt', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/inquiries:claimNonReceipt");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/inquiries:claimNonReceipt", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /inquiries:claimNonReceipt
Create inquiry for claim of non-receipt
Example Request
{
"claimedValueDate": "2019-08-24",
"groupHeader": {
"messageIdentification": "string",
"settlementDate": "2019-08-24"
},
"historicCreditTransferRequest": "string",
"paymentIdentification": {
"transactionIdentification": "string"
}
}
Parameters
Name | Type | Description | In |
---|---|---|---|
body (required) | OriginalPacs008Data | none | body |
Example Responses
400 :
originalTransactionNotFound
500 :
internalServerError
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - Inquiry created successfully. | None |
400 |
Bad Request | Bad Request - The original Credit transfer transaction not found. Please check the input parameters. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
acceptStatusUpdateOnRecall
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/inquiries:acceptStatusUpdateOnRecall \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/inquiries:acceptStatusUpdateOnRecall HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"groupHeader": {
"messageIdentification": "82d7125b36014c2e8cc442a3586badd0",
"creationDateTime": "2021-02-10T10:03:25",
"instructingAgent": "ABCDE123"
},
"transactionInformation": {
"statusRequestIdentification": "4112f6688c846a89bee2b2c476f1145",
"originalMessageIdentification": "22b8f938c6154877886a0c1fc9e74166",
"originalInstructionIdentification": "562f8f9f8c6154844886a0c1fc9e7451"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/inquiries:acceptStatusUpdateOnRecall',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/inquiries:acceptStatusUpdateOnRecall',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/inquiries:acceptStatusUpdateOnRecall', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/inquiries:acceptStatusUpdateOnRecall', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/inquiries:acceptStatusUpdateOnRecall");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/inquiries:acceptStatusUpdateOnRecall", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /inquiries:acceptStatusUpdateOnRecall
Handles positive response for Request for Status Update on Recall with given details.
Example Request
acceptStatusUpdateOnRecall
{
"groupHeader": {
"messageIdentification": "82d7125b36014c2e8cc442a3586badd0",
"creationDateTime": "2021-02-10T10:03:25",
"instructingAgent": "ABCDE123"
},
"transactionInformation": {
"statusRequestIdentification": "4112f6688c846a89bee2b2c476f1145",
"originalMessageIdentification": "22b8f938c6154877886a0c1fc9e74166",
"originalInstructionIdentification": "562f8f9f8c6154844886a0c1fc9e7451"
}
}
Parameters
Name | Type | Description | In |
---|---|---|---|
body (required) | AcceptStatusUpdateOnRecall | none | body |
Example Responses
400 :
invalidValueForField
{
"tppMessages": [
{
"category": "ERROR",
"code": "FORMAT_ERROR",
"text": "The request body must not be empty"
}
]
}
404 :
messageNotFound
{
"tppMessages": [
{
"category": "ERROR",
"code": "NOT_FOUND",
"text": "No pacs.028.001.01 was found for the supplied details"
}
]
}
405 :
unsupportedHttpMethod
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
415 :
unsupportedContentType
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - Request for Status Update on Recall positive response was received | None |
400 |
Bad Request | Bad Request - Validation error occurred. | PaymentResponse-TPP |
404 |
Not Found | Not Found - No message found for the given identification. | PaymentResponse-TPP |
405 |
Method Not Allowed | Method Not Allowed - This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | PaymentResponse-TPP |
415 |
Unsupported Media Type | Unsupported Media Type - A media type which the server does not support has been supplied. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
SEPA Direct Debit
SEPA Direct Debit Payments are one time or recurring payments made using the Single European Payment Area scheme for transactions made in Euros between accounts at banks within the SEPA area, which includes all EU countries as well as other territories such as Liechtenstein, Switzerland, the United Kingdom, Andorra and Nordic countries.
Mambu supports both the Core SEPA rulebook for individuals and the B2B scheme for companies. For more information on supported messages, flows and technical information, please refer to the SEPA Direct Debit section of our user guide.
createBlockingRule
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/blocking-rules \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Content-Type: string'
POST https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/blocking-rules HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
Content-Type: string
const inputBody = '{
"product": "SEPA_DIRECT_DEBIT"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Content-Type':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/blocking-rules',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/blocking-rules',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Content-Type': 'string'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/blocking-rules', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/blocking-rules', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/blocking-rules");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Content-Type": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/blocking-rules", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /accounts/{accountId}/blocking-rules
Request a blocking rule to be added to a specific Mambu account. When a blocking rule has been added for a specific mandate ID, collection requests for that mandate will be rejected and a pacs.002 message sent as response with reason code MS02. If no specific mandate ID is provided, all direct debit collection requests for the given account will be rejected. For more information on blocking SEPA Direct Debits, consult the Blocking SEPA Direct Debits article in our user guide.
Example Request
createProductBlockingRule
{
"product": "SEPA_DIRECT_DEBIT"
}
Parameters
Name | Type | Description | In |
---|---|---|---|
Content-Type (required) | string | application/json | header |
accountId (required) | string | ID of the Mambu Deposit account. | path |
body | CreateBlockingRule | none | body |
Example Responses
400 :
productCannotBeBlocked
{
"tppMessages": [
{
"category": "ERROR",
"code": "PARAMETER_NOT_SUPPORTED",
"path": "product",
"text": "SEPA_CREDIT_TRANSFER cannot be blocked"
}
]
}
405 :
unsupportedHttpMethod
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
415 :
unsupportedContentType
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
202 |
Accepted | Accepted - The Blocking Rule has been prepared for processing. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | FailedPaymentResponse |
405 |
Method Not Allowed | Method Not Allowed - This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported by a specific endpoint. It has nothing to do with the content, payment or account information data model. | FailedPaymentResponse |
415 |
Unsupported Media Type | Unsupported Media Type - A media type which the serves does not support has been supplied. | FailedPaymentResponse |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | FailedPaymentResponse |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
deleteBlockingRules
Code samples
# You can also use wget
curl -X DELETE https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/blocking-rules \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Content-Type: string'
DELETE https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/blocking-rules HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
Content-Type: string
const inputBody = 'null';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Content-Type':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/blocking-rules',
{
method: 'DELETE',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string'
}
result = RestClient.delete 'https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/blocking-rules',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Content-Type': 'string'
}
r = requests.delete('https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/blocking-rules', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/blocking-rules', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/blocking-rules");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Content-Type": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://TENANT_NAME.mambu.com/api/v1/accounts/{accountId}/blocking-rules", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /accounts/{accountId}/blocking-rules
Request deletion of blocking rules for the specified Mambu account. If no request body is provided, all rules for the account will be removed, if you provide a JSON body with a specific mandate ID, only the rule for that mandate will be removed. For more information on blocking SEPA Direct Debits, consult the Blocking SEPA Direct Debits article in our user guide.
Example Request
deleteAllBlockingRules
null
Parameters
Name | Type | Description | In |
---|---|---|---|
Content-Type (required) | string | application/json | header |
accountId (required) | string | ID of the Mambu Deposit account. | path |
body | DeleteBlockingRule | none | body |
Example Responses
405 :
unsupportedHttpMethod
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
415 :
unsupportedContentType
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
202 |
Accepted | Accepted - Blocking rules for the specified account have been submitted for deletion. | None |
405 |
Method Not Allowed | Method Not Allowed - This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported by a specific endpoint. It has nothing to do with the consent, payment or account information data model. | FailedPaymentResponse |
415 |
Unsupported Media Type | Unsupported Media Type - A media type which the serves does not support has been supplied. | FailedPaymentResponse |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | FailedPaymentResponse |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
initiateCollection
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/collections \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Content-Type: string' \
-H 'X-Request-ID: string' \
-H 'Idempotency-Key: string'
POST https://TENANT_NAME.mambu.com/api/v1/collections HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
Content-Type: string
X-Request-ID: string
Idempotency-Key: string
const inputBody = '{
"debtorAccount": {
"identification": {
"iban": "DE46606951125202071272"
},
"currency": "EUR"
},
"debtorName": "John Doe",
"serviceLevel": "SEPA",
"instructedAmount": {
"currency": "EUR",
"amount": "500"
},
"creditorAccount": {
"identification": {
"iban": "DE16195554277485442959"
},
"currency": "EUR"
},
"creditorName": "Merchant123",
"paymentIdentification": {
"transactionIdentification": "113T9bs6ad48ga1216d772430401s01sd2"
},
"requestedExecutionDate": "2020-09-01",
"mandateRelatedInformation": {
"mandateIdentification": "16ead91c975c4881a60c",
"dateOfSignature": "2020-01-31"
},
"paymentTypeInformation": {
"sequenceType": "FRST"
},
"creditorSchemeIdentification": {
"identification": {
"privateIdentification": "I48799148795"
}
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Content-Type':'string',
'X-Request-ID':'string',
'Idempotency-Key':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/collections',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string',
'X-Request-ID' => 'string',
'Idempotency-Key' => 'string'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/collections',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Content-Type': 'string',
'X-Request-ID': 'string',
'Idempotency-Key': 'string'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/collections', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string',
'X-Request-ID' => 'string',
'Idempotency-Key' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/collections', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/collections");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Content-Type": []string{"string"},
"X-Request-ID": []string{"string"},
"Idempotency-Key": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/collections", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /collections
Creates a collection initiation request. This covers the flows as described in the SEPA Direct Debit section of our user guide.
Example Request
initiateCollectionRequest
{
"debtorAccount": {
"identification": {
"iban": "DE46606951125202071272"
},
"currency": "EUR"
},
"debtorName": "John Doe",
"serviceLevel": "SEPA",
"instructedAmount": {
"currency": "EUR",
"amount": "500"
},
"creditorAccount": {
"identification": {
"iban": "DE16195554277485442959"
},
"currency": "EUR"
},
"creditorName": "Merchant123",
"paymentIdentification": {
"transactionIdentification": "113T9bs6ad48ga1216d772430401s01sd2"
},
"requestedExecutionDate": "2020-09-01",
"mandateRelatedInformation": {
"mandateIdentification": "16ead91c975c4881a60c",
"dateOfSignature": "2020-01-31"
},
"paymentTypeInformation": {
"sequenceType": "FRST"
},
"creditorSchemeIdentification": {
"identification": {
"privateIdentification": "I48799148795"
}
}
}
Parameters
Name | Type | Description | In |
---|---|---|---|
Content-Type (required) | string | application/json | header |
X-Request-ID (required) | string | ID of the request, unique to the call, as determined by the initiating party. | header |
Idempotency-Key | string | Prevents retried requests to be executed multiple times. Subsequent requests with the same Idempotency Key will not be processed and will return a cached result. | header |
body | CollectionDTO | none | body |
Example Responses
201 :
initiateCollectionResponse
{
"transactionStatus": "RCVD",
"collectionId": "e38458a4-d955-4a39-8e21-9608e9600b3d"
}
400 :
missingMandatoryField
{
"tppMessages": [
{
"category": "ERROR",
"code": "FORMAT_ERROR",
"path": "debtorAccount.identification",
"text": "debtorAccount.identification may not be null"
}
]
}
405 :
unsupportedHttpMethod
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
415 :
unsupportedContentType
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 |
Created | Created - Collection Initiation request was correctly performed (but not yet accepted) nor executed. | CollectionResponse |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | FailedPaymentResponse |
405 |
Method Not Allowed | Method Not Allowed - This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the content, payment or account information data model. | FailedPaymentResponse |
415 |
Unsupported Media Type | Unsupported Media Type - A media type which the serves does not support has been supplied. | FailedPaymentResponse |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | FailedPaymentResponse |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
201 | Location |
undefined | Location of the created collection order request resource, for future reference or status polling. |
getCollectionDetails
Code samples
# You can also use wget
curl -X GET https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId} \
-H 'Accept: application/json'
GET https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId} HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}', headers = headers)
print(r.json())
'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /collections/{collectionId}
Parameters
Name | Type | Description | In |
---|---|---|---|
collectionId (required) | string | ID of the collection order, as received in the response to a POST /collections request or from the instruction ID field of a collection. You can retrieve the instruction ID in the Payment Gateway UI by opening up the detail view of a collection and looking for the value of InstId in the Payment Identification object. |
path |
detailsLevel | string | Details level of the response. STATUS and FULL detail levels are supported. STATUS will return the current status and a timestamp of when the collection order was last modified. The default value of FULL will return a complete set of information about the collection order. |
query |
Example Responses
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
default |
Default | default response | None |
Response Schema
manuallyRejectOutgoingCollection
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/collections/{collectionOrderId}:reject \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/collections/{collectionOrderId}:reject HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/collections/{collectionOrderId}:reject',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/collections/{collectionOrderId}:reject',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/collections/{collectionOrderId}:reject', headers = headers)
print(r.json())
'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/collections/{collectionOrderId}:reject', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/collections/{collectionOrderId}:reject");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/collections/{collectionOrderId}:reject", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /collections/{collectionOrderId}:reject
Manually Reject an Outgoing Collection.
Parameters
Name | Type | Description | In |
---|---|---|---|
collectionOrderId (required) | string | none | path |
Example Responses
400 :
invalidTransactionStatus
{
"tppMessages": [
{
"category": "ERROR",
"code": "INVALID_TRANSACTION_STATUS",
"text": "Transaction has invalid status: TO_BE_REJECTED. Expected status is: TO_BE_SENT."
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - The specified collection order has been marked to be manually rejected. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
manuallyRejectIncomingCollection
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/collections/{collectionOrderId}:rejectIncoming \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/collections/{collectionOrderId}:rejectIncoming HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/collections/{collectionOrderId}:rejectIncoming',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/collections/{collectionOrderId}:rejectIncoming',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/collections/{collectionOrderId}:rejectIncoming', headers = headers)
print(r.json())
'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/collections/{collectionOrderId}:rejectIncoming', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/collections/{collectionOrderId}:rejectIncoming");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/collections/{collectionOrderId}:rejectIncoming", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /collections/{collectionOrderId}:rejectIncoming
Manually Reject an Incoming Collection.
Parameters
Name | Type | Description | In |
---|---|---|---|
collectionOrderId (required) | string | none | path |
Example Responses
400 :
invalidTransactionStatus
{
"tppMessages": [
{
"category": "ERROR",
"code": "INVALID_TRANSACTION_STATUS",
"text": "Transaction has invalid status: TO_BE_REJECTED. Expecting one of the following statuses: PENDING_SETTLEMENT, RECEIVED."
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - The specified collection order has been marked to be manually rejected. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
reverse
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}:reverse \
-H 'Content-Type: application/json' \
-H 'Accept: */*'
POST https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}:reverse HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: */*
const inputBody = '{
"reasonCode": "AM05"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}:reverse',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}:reverse',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}:reverse', headers = headers)
print(r.json())
'application/json',
'Accept' => '*/*',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}:reverse', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}:reverse");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}:reverse", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /collections/{collectionId}:reverse
Reverse a Collection Instruction.
Example Request
{
"reasonCode": "AM05"
}
Parameters
Name | Type | Description | In |
---|---|---|---|
collectionId (required) | string | none | path |
body (required) | Reverse | none | body |
Example Responses
400 :
badReversalReasonCode
500 :
internalServerError
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - Collection Instruction marked to be reversed successfully. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
refund
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}:refund \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}:refund HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"reasonCode": "MD01"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}:refund',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}:refund',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}:refund', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}:refund', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}:refund");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/collections/{collectionId}:refund", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /collections/{collectionId}:refund
Refund a Collection Instruction.
Example Request
{
"reasonCode": "MD01"
}
Parameters
Name | Type | Description | In |
---|---|---|---|
collectionId (required) | string | none | path |
body (required) | Refund | none | body |
Example Responses
400 :
badRefundReasonCode
{
"tppMessages": [
{
"category": "ERROR",
"code": "PARAMETER_NOT_SUPPORTED",
"text": "value 'MD02' not supported"
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - Collection Instruction marked to be refunded successfully. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
Search Messages
Use this endpoint to search for SEPA Credit Transfer and Direct Debit messages received by the Mambu Payment Gateway.
findSepaMessages
Code samples
# You can also use wget
curl -X GET https://TENANT_NAME.mambu.com/api/v1/instructions?sepaMessageFilter=dateFrom,string,dateTo,string,direction,string,limit,1,messageId,string,messageType,string,network,string,offset,0,paymentId,string,transactionsLimit,0,transactionsOffset,0 \
-H 'Accept: application/json'
GET https://TENANT_NAME.mambu.com/api/v1/instructions?sepaMessageFilter=dateFrom,string,dateTo,string,direction,string,limit,1,messageId,string,messageType,string,network,string,offset,0,paymentId,string,transactionsLimit,0,transactionsOffset,0 HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/instructions?sepaMessageFilter=dateFrom,string,dateTo,string,direction,string,limit,1,messageId,string,messageType,string,network,string,offset,0,paymentId,string,transactionsLimit,0,transactionsOffset,0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://TENANT_NAME.mambu.com/api/v1/instructions',
params: {
'sepaMessageFilter' => '[SepaMessageFilter](#schemasepamessagefilter)'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://TENANT_NAME.mambu.com/api/v1/instructions', params={
'sepaMessageFilter': {
"dateFrom": "string",
"dateTo": "string",
"direction": "string",
"limit": 1,
"messageId": "string",
"messageType": "string",
"network": "string",
"offset": 0,
"paymentId": "string",
"transactionsLimit": 0,
"transactionsOffset": 0
}
}, headers = headers)
print(r.json())
'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_NAME.mambu.com/api/v1/instructions', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/instructions?sepaMessageFilter=dateFrom,string,dateTo,string,direction,string,limit,1,messageId,string,messageType,string,network,string,offset,0,paymentId,string,transactionsLimit,0,transactionsOffset,0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_NAME.mambu.com/api/v1/instructions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /instructions
Retrieve the SEPA messages details.
Parameters
Name | Type | Description | In |
---|---|---|---|
sepaMessageFilter (required) | SepaMessageFilter | none | query |
Example Responses
200 :
pacs.008 instruction information
{
"instructions": [
{
"FIToFICstmrCdtTrf": {
"grpHdr": {
"msgId": "22b8f938c6154877886a0c1fc9e74166",
"creDtTm": "2019-04-11T09:08:45+03:00",
"nbOfTxs": "2",
"ttlIntrBkSttlmAmt": {
"value": 200,
"ccy": "EUR"
},
"intrBkSttlmDt": "2019-04-11T00:00:00+03:00",
"sttlmInf": {
"clrSys": {
"prtry": "ST2"
}
},
"instgAgt": {
"finInstnId": {
"bic": "ABVRATW1XXX"
}
}
},
"cdtTrfTxInf": [
{
"pmtId": {
"instrId": "82d7125b36014c2e8cc442a3586badd0",
"endToEndId": "NOTPROVIDED",
"txId": "4112f6688c846a89bee2b2c476f1145"
},
"pmtTpInf": {
"svcLvl": {
"cd": "SEPA"
}
},
"intrBkSttlmAmt": {
"value": 100,
"ccy": "EUR"
},
"accptncDtTm": "2019-04-11T09:08:45+03:00",
"chrgBr": "SLEV",
"dbtr": {
"nm": "John Doe"
},
"dbtrAcct": {
"id": {
"iban": "RO59INGBW91QIQFZSG6IZBJT"
}
},
"dbtrAgt": {
"finInstnId": {
"bic": "INGBROBU"
}
},
"cdtrAgt": {
"finInstnId": {
"bic": "BTRLRO22"
}
},
"cdtr": {
"nm": "BT",
"pstlAdr": {
"ctry": "DE"
}
},
"cdtrAcct": {
"id": {
"iban": "RO75BTRLBSIJS00RPQWYLYWL"
}
},
"_metadata": {
"transactionSn": 1,
"transactionStatus": "RECEIVED",
"paymentId": "67eacbf33f1b4eaea8d1055a2a01adea"
}
},
{
"pmtId": {
"instrId": "108cf3f5fd833aa5bc5efb90c0dee19e",
"endToEndId": "NOTPROVIDED",
"txId": "758e663666ae40be8e9278a9e4e899f9"
},
"pmtTpInf": {
"svcLvl": {
"cd": "SEPA"
}
},
"intrBkSttlmAmt": {
"value": 100,
"ccy": "EUR"
},
"accptncDtTm": "2019-04-11T09:08:45+03:00",
"chrgBr": "SLEV",
"dbtr": {
"nm": "John Doe"
},
"dbtrAcct": {
"id": {
"iban": "RO59INGBW91QIQFZSG6IZBJT"
}
},
"dbtrAgt": {
"finInstnId": {
"bic": "INGBROBU"
}
},
"cdtrAgt": {
"finInstnId": {
"bic": "BTRLRO22"
}
},
"cdtr": {
"nm": "BT",
"pstlAdr": {
"ctry": "DE"
}
},
"cdtrAcct": {
"id": {
"iban": "RO94BTRLVU048EN2KBPTVT7U"
}
},
"_metadata": {
"transactionSn": 2,
"transactionStatus": "RECEIVED",
"paymentId": "fcaae256fed94018958326c9cb752aeb"
}
}
],
"_metadata": {
"bulkSn": 1,
"direction": "I",
"messageId": "pacs.008",
"transactions": 2
}
}
}
]
}
200 :
pacs.004 instruction information
{
"instructions": [
{
"PmtRtr": {
"grpHdr": {
"msgId": "1",
"creDtTm": "2018-11-26T21:47:57+02:00",
"nbOfTxs": "1",
"ttlRtrdIntrBkSttlmAmt": {
"value": 4000.5,
"ccy": "EUR"
},
"intrBkSttlmDt": "2018-11-26T00:00:00+02:00",
"sttlmInf": {
"sttlmMtd": "CLRG",
"clrSys": {
"prtry": "ST2"
}
}
},
"txInf": [
{
"rtrId": "2020181126130827322001",
"orgnlGrpInf": {
"orgnlMsgId": "1231231312",
"orgnlMsgNmId": "pacs.008"
},
"orgnlEndToEndId": "10864caa82034bc8a12e4bf3e117d10d",
"orgnlTxId": "8097758122275259",
"rtrdIntrBkSttlmAmt": {
"value": 4000.5,
"ccy": "EUR"
},
"rtrRsnInf": {
"orgtr": {
"id": {
"orgId": {
"bicorBEI": "DABADKKK"
}
}
},
"rsn": {
"cd": "AC_01"
}
},
"orgnlTxRef": {
"intrBkSttlmDt": "2018-11-26T00:00:00+02:00",
"sttlmInf": {
"sttlmMtd": "CLRG"
},
"pmtTpInf": {
"svcLvl": {
"cd": "SEPA"
}
},
"dbtr": {
"nm": "Hanne Doe"
},
"dbtrAcct": {
"id": {
"iban": "DK0643182702662691"
}
},
"dbtrAgt": {
"finInstnId": {
"bic": "DABADKKK"
}
},
"cdtrAgt": {
"finInstnId": {
"bic": "BTRLRO22"
}
},
"cdtr": {
"nm": "John Doe"
},
"cdtrAcct": {
"id": {
"iban": "RO69BTRL3333444433334444"
}
}
},
"_metadata": {
"transactionSn": 14,
"transactionStatus": "RECEIVED",
"returnReason": "AC01",
"paymentId": "22886adc407e4280b7df22a966d08425"
}
}
],
"_metadata": {
"bulkSn": 10,
"direction": "I",
"messageId": "pacs.004.001.02",
"procstatus": "REPLIED",
"transactions": 1
}
}
}
]
}
200 :
camt.056 instruction information
{
"instructions": [
{
"FIToFIPmtCxlReq": {
"assgnmt": {
"id": "msg-id-camt.056.001.01",
"assgnr": {
"agt": {
"finInstnId": {
"bic": "TESTXXXXXXX"
}
}
},
"assgne": {
"agt": {
"finInstnId": {
"bic": "TESTXXXXXXX"
}
}
},
"creDtTm": "2019-05-14T21:00:00.000+0000"
},
"ctrlData": {
"nbOfTxs": 1
},
"undrlyg": [
{
"txInf": {
"cxlId": "000R9087000000011",
"orgnlGrpInf": {
"orgnlMsgId": "SCTORD15682019",
"orgnlMsgNmId": "pacs.008.001.02"
},
"orgnlInstrId": "6630844036108666",
"orgnlEndToEndId": "NOTPROVIDED",
"orgnlTxId": "8097758122275259",
"orgnlIntrBkSttlmAmt": {
"value": 4000.5,
"ccy": "EUR"
},
"orgnlIntrBkSttlmDt": "2019-06-19T21:00:00.000+0000",
"cxlRsnInf": [
{
"orgtr": {
"nm": "Beneficioso beneficiar io"
},
"rsn": {
"cd": "DUPL"
}
}
],
"orgnlTxRef": {
"sttlmInf": {
"sttlmMtd": "CLRG",
"clrSys": {
"cd": "REP"
}
},
"pmtTpInf": {
"svcLvl": {
"cd": "SEPA"
}
},
"rmtInf": {
"ustrd": [
"Pruebas para CECA 1"
]
},
"ultmtDbtr": {
"nm": "EUR"
},
"dbtr": {
"nm": "ENRIQUE ROMERA MARTINEZ DE MIGUEL"
},
"dbtrAcct": {
"id": {
"iban": "ES1011110001087939390799"
}
},
"dbtrAgt": {
"finInstnId": {
"bic": "TESTXXXXXXX"
}
},
"cdtrAgt": {
"finInstnId": {
"bic": "TESTXXXXXXX"
}
},
"cdtr": {
"nm": "Beneficioso beneficiario"
},
"cdtrAcct": {
"id": {
"iban": "ES6520950001153279157264"
}
}
},
"_metadata": {
"transactionSn": 2,
"transactionStatus": "TO_BE_SENT",
"returnReason": "DUPL",
"paymentId": "poId"
}
}
}
],
"_metadata": {
"bulkSn": 2,
"direction": "I",
"messageId": "camt.056.001.01",
"procstatus": "RETRIEVED",
"transactions": 1
}
}
}
]
}
200 :
camt.029 instruction information
{
"instructions": [
{
"RsltnOfInvstgtn": {
"assgnmt": {
"id": "msg-id-camt.029.001.03",
"assgnr": {
"agt": {
"finInstnId": {
"bic": "TESTXXXXXXX"
}
}
},
"assgne": {
"agt": {
"finInstnId": {
"bic": "TESTXXXXXXX"
}
}
},
"creDtTm": "2019-05-14T21:00:00.000+0000"
},
"sts": {
"conf": "RJCT"
},
"cxlDtls": [
{
"txInfAndSts": {
"cxlStsId": "568R9",
"orgnlGrpInf": {
"orgnlMsgId": "SCTORD156820190620000000000001",
"orgnlMsgNmId": "pacs.008.001.02"
},
"orgnlInstrId": "a5fbae19e3d24522963ad60d018f2e49",
"orgnlEndToEndId": "7456b0bb2c1a4209b87b4636995c5d08",
"orgnlTxId": "1002",
"txCxlSts": "RJCR",
"cxlStsRsnInf": [
{
"orgtr": {
"id": {
"orgId": {
"bicorBEI": "TESTXXXXXXX"
}
}
},
"rsn": {
"cd": "AGNT"
}
}
],
"orgnlTxRef": {
"intrBkSttlmAmt": {
"value": 4000.5,
"ccy": "EUR"
},
"intrBkSttlmDt": "2019-06-19T21:00:00.000+0000",
"sttlmInf": {
"sttlmMtd": "CLRG",
"clrSys": {
"prtry": "ACHT1234567890123456789012345678905"
}
},
"pmtTpInf": {
"svcLvl": {
"cd": "SEPA"
}
},
"rmtInf": {
"ustrd": [
"Pruebas para CECA 1"
]
},
"dbtr": {
"nm": "ENRIQUE ROMERA MARTINEZ DE MIGUEL"
},
"dbtrAcct": {
"id": {
"iban": "ES1011110001087939390799"
}
},
"dbtrAgt": {
"finInstnId": {
"bic": "TESTXXXXXXX"
}
},
"cdtrAgt": {
"finInstnId": {
"bic": "TESTXXXXXXX"
}
},
"cdtr": {
"nm": "Beneficioso beneficiario"
},
"cdtrAcct": {
"id": {
"iban": "ES6520950001153279157264"
}
}
},
"_metadata": {
"transactionSn": 3,
"transactionStatus": "TO_BE_SENT",
"returnReason": "RJCT",
"paymentId": "poId"
}
}
}
],
"_metadata": {
"bulkSn": 3,
"direction": "O",
"messageId": "camt.029.001.03",
"procstatus": "RETRIEVED",
"transactions": 1
}
}
}
]
}
400 :
invalidDirection
{
"tppMessages": [
{
"category": "ERROR",
"code": "PARAMETER_NOT_SUPPORTED",
"text": "direction invalid value: example_invalid_direction"
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - SEPA Messages Details were correctly found. | SepaMessages |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | PaymentResponse-TPP |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | PaymentResponse-TPP |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
Standing Order
getExecutionsByStandingOrderId
Code samples
# You can also use wget
curl -X GET https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}/executions \
-H 'Accept: application/json' \
-H 'Content-Type: string' \
-H 'ApiKey: string'
GET https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}/executions HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/json
Content-Type: string
ApiKey: string
const headers = {
'Accept':'application/json',
'Content-Type':'string',
'ApiKey':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}/executions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Content-Type' => 'string',
'ApiKey' => 'string'
}
result = RestClient.get 'https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}/executions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Content-Type': 'string',
'ApiKey': 'string'
}
r = requests.get('https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}/executions', headers = headers)
print(r.json())
'application/json',
'Content-Type' => 'string',
'ApiKey' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}/executions', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}/executions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Content-Type": []string{"string"},
"ApiKey": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}/executions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /payments/standing-orders/{id}/executions
Get executions of standing order
Parameters
Name | Type | Description | In |
---|---|---|---|
Content-Type (required) | string | application/json | header |
ApiKey (required) | string | ApiKey header that is used for authentication | header |
id (required) | string | none | path |
Example Responses
200 :
StandingOrderExecutionResponse
[
{
"standingOrderId": "standing-order-id-qwerty",
"paymentOrderId": "paymentorderid54",
"requestedExecuteOn": "2023-01-26T15:51:27",
"status": "FAILED",
"creationDate": "2023-01-26T15:52:27.865848Z",
"type": "RETRY",
"failReason": "INSUFFICIENT_FUNDS"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - Standing orders executions retrieval was successful. | StandingOrderExecutionResponse |
getStandingOrderDetails
Code samples
# You can also use wget
curl -X GET https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id} \
-H 'Accept: application/json'
GET https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id} HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}', headers = headers)
print(r.json())
'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /payments/standing-orders/{id}
Gets Standing order information
Parameters
Name | Type | Description | In |
---|---|---|---|
id (required) | string | none | path |
Example Responses
200 :
standingOrderGetResponse
{
"id": "9726992c-bda4-4867-9264-f9168337d0ec",
"payment": {
"scheme": "SEPA",
"instructedAmount": {
"currency": "EUR",
"amount": "500"
},
"debtorAccount": {
"identification": {
"iban": "DE87200500001234567890"
},
"currency": "EUR"
},
"creditorAccount": {
"identification": {
"other": {
"identification": "1234",
"scheme": "PAN"
}
},
"currency": "EUR"
},
"creditorName": "CreditorName",
"debtorName": "DebtorName",
"remittanceInformationUnstructured": "Remittance Info"
},
"startDate": "2022-11-10",
"frequency": "DAILY",
"endDate": "2023-11-10",
"creationDateTime": "2022-11-09T21:41:29+02:00",
"status": "ACTIVE",
"lastExecution": "2022-11-17",
"nextExecution": "2022-11-18",
"paymentsCount": 2,
"ownerId": "some-owner-id",
"retryCount": 3,
"suspendDateFrom": null,
"suspendDateTo": null
}
404 :
standingOrderNotFound
{
"tppMessages": [
{
"category": "ERROR",
"code": "RESOURCE_UNKNOWN",
"text": "Unable to find Standing order with id: 9726992c-bda4-4867-9264-f9168337d0ec."
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - Returns Standing order item. | StandingOrderGetResponse |
404 |
Not Found | Not found - cannot find the requested resource. | TppMessagesResponse |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | TppMessagesResponse |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
cancelStandingOrder
Code samples
# You can also use wget
curl -X DELETE https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id} \
-H 'Accept: application/json'
DELETE https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id} HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.delete 'https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.delete('https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}', headers = headers)
print(r.json())
'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /payments/standing-orders/{id}
Cancel Standing order
Parameters
Name | Type | Description | In |
---|---|---|---|
id (required) | string | none | path |
Example Responses
404 :
standingOrderNotFound
{
"tppMessages": [
{
"category": "ERROR",
"code": "RESOURCE_UNKNOWN",
"text": "Unable to find Standing order with id: 9726992c-bda4-4867-9264-f9168337d0ec."
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 |
No Content | Standing order canceled. | None |
404 |
Not Found | Not found - cannot find the requested resource. | TppMessagesResponse |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | TppMessagesResponse |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
createStandingOrder
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Content-Type: string'
POST https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
Content-Type: string
const inputBody = '{
"payment": {
"scheme": "SEPA",
"instructedAmount": {
"currency": "EUR",
"amount": "500"
},
"debtorAccount": {
"identification": {
"iban": "DE87200500001234567890"
},
"currency": "EUR"
},
"creditorAccount": {
"identification": {
"other": {
"identification": "1234",
"scheme": "PAN"
}
},
"currency": "EUR"
},
"creditorName": "CreditorName",
"debtorName": "DebtorName",
"remittanceInformationUnstructured": "Remittance Info"
},
"startDate": [
2022,
11,
8
],
"frequency": "DAILY",
"endDate": [
2022,
11,
8
],
"ownerId": "some-owner-id",
"retryPolicy": {
“ + "retryCount": "3"
}
}
';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Content-Type':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Content-Type': 'string'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Content-Type": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /payments/standing-orders
API creates standing orders. Standing order creation will trigger periodic payments for provided frequency from start date until the end date.
Example Request
createStandingOrder
"{\n \"payment\": {\n \"scheme\": \"SEPA\",\n \"instructedAmount\": {\n \"currency\": \"EUR\",\n \"amount\": \"500\"\n },\n \"debtorAccount\": {\n \"identification\": {\n \"iban\": \"DE87200500001234567890\"\n },\n \"currency\": \"EUR\"\n },\n \"creditorAccount\": {\n \"identification\": {\n \"other\": {\n \"identification\": \"1234\",\n \"scheme\": \"PAN\"\n }\n },\n \"currency\": \"EUR\"\n },\n \"creditorName\": \"CreditorName\",\n \"debtorName\": \"DebtorName\",\n \"remittanceInformationUnstructured\": \"Remittance Info\"\n },\n \"startDate\": [\n 2022,\n 11,\n 8\n ],\n \"frequency\": \"DAILY\",\n \"endDate\": [\n 2022,\n 11,\n 8\n ],\n \"ownerId\": \"some-owner-id\", \n \"retryPolicy\": {\n“ + \"retryCount\": \"3\"\n }\n}\n"
Parameters
Name | Type | Description | In |
---|---|---|---|
Content-Type (required) | string | application/json | header |
body | StandingOrderDTO | none | body |
Example Responses
201 :
standingOrderCreateResponse
{
"id": "9726992c-bda4-4867-9264-f9168337d0ec"
}
400 :
invalidStandingOrderRequest
{
"tppMessages": [
{
"category": "ERROR",
"code": "FORMAT_ERROR",
"path": "iban",
"text": "iban size must be between 15 and 34"
},
{
"category": "ERROR",
"code": "FORMAT_ERROR",
"path": "iban",
"text": "iban invalid IBAN value"
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 |
Created | Created - Standing order successfully created. | StandingOrderCreateResponse |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | TppMessagesResponse |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | TppMessagesResponse |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
searchStandingOrders
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders:search \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Content-Type: string' \
-H 'ApiKey: string'
POST https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders:search HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
Content-Type: string
ApiKey: string
const inputBody = '{
"filterCriteria": [
{
"field": "OWNER_ID",
"operator": "EQUALS",
"value": "string"
}
{
"field": "STATUS",
"operator": "EQUALS",
"value": "string"
}
],
"limit": 500,
"offset": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Content-Type':'string',
'ApiKey':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders:search',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string',
'ApiKey' => 'string'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders:search',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Content-Type': 'string',
'ApiKey': 'string'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders:search', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string',
'ApiKey' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders:search', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders:search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Content-Type": []string{"string"},
"ApiKey": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders:search", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /payments/standing-orders:search
Search for standing orders by search filters such as ownerId
Example Request
standingOrderSearchRequest
"{\n \"filterCriteria\": [\n {\n \"field\": \"OWNER_ID\",\n \"operator\": \"EQUALS\",\n \"value\": \"string\"\n }\n {\n \"field\": \"STATUS\",\n \"operator\": \"EQUALS\",\n \"value\": \"string\"\n }\n ],\n \"limit\": 500,\n \"offset\": 0\n}"
Parameters
Name | Type | Description | In |
---|---|---|---|
Content-Type (required) | string | application/json | header |
ApiKey (required) | string | ApiKey header that is used for authentication | header |
body | StandingOrderSearchRequest | none | body |
Example Responses
200 :
StandingOrderSearchResponse
[
{
"ownerId": "some_kind_of_id_from_client",
"id": "9726992c-bda4-4867-9264-f9168337d0ec",
"payment": {
"scheme": "SEPA",
"instructedAmount": {
"currency": "EUR",
"amount": "500"
},
"debtorAccount": {
"identification": {
"iban": "DE87200500001234567890"
},
"currency": "EUR"
},
"creditorAccount": {
"identification": {
"other": {
"identification": "1234",
"scheme": "PAN"
}
},
"currency": "EUR"
},
"creditorName": "CreditorName",
"debtorName": "DebtorName",
"remittanceInformationUnstructured": "Remittance Info"
},
"startDate": "2022-11-10",
"frequency": "DAILY",
"endDate": "2023-11-10",
"creationDateTime": "2022-11-09T21:41:29+02:00",
"status": "ACTIVE"
},
{
"ownerId": "some_kind_of_id_from_client",
"id": "9726992c-bda4-4867-9264-13245679fe",
"payment": {
"scheme": "SEPA",
"instructedAmount": {
"currency": "EUR",
"amount": "100"
},
"debtorAccount": {
"identification": {
"iban": "DE87200500001234567890"
},
"currency": "EUR"
},
"creditorAccount": {
"identification": {
"other": {
"identification": "1234",
"scheme": "PAN"
}
},
"currency": "EUR"
},
"creditorName": "CreditorName",
"debtorName": "DebtorName",
"remittanceInformationUnstructured": "Remittance Info"
},
"startDate": "2022-11-10",
"frequency": "DAILY",
"endDate": "2023-11-10",
"creationDateTime": "2022-11-09T21:41:29+02:00",
"status": "ACTIVE",
"suspendDateFrom": null,
"suspendDateTo": null
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - Standing orders search was successful. | StandingOrderSearchResponse |
suspendStandingOrder
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders:suspend \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Content-Type: string'
POST https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders:suspend HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/json
Content-Type: string
const inputBody = '{
"id": "9726992c-bda4-4867-9264-f9168337d0ec",
"startDate": [
2022,
11,
8
],
"endDate": [
2022,
11,
9
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Content-Type':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders:suspend',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders:suspend',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Content-Type': 'string'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders:suspend', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Content-Type' => 'string',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders:suspend', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders:suspend");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Content-Type": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/v1/payments/standing-orders:suspend", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /payments/standing-orders:suspend
API suspends standing order for a particular period of time.
Example Request
suspendStandingOrder
{
"id": "9726992c-bda4-4867-9264-f9168337d0ec",
"startDate": [
2022,
11,
8
],
"endDate": [
2022,
11,
9
]
}
Parameters
Name | Type | Description | In |
---|---|---|---|
Content-Type (required) | string | application/json | header |
body | StandingOrderSuspendDTO | none | body |
Example Responses
400 :
invalidStandingOrderSuspendRequest
{
"tppMessages": [
{
"category": "ERROR",
"code": "FORMAT_ERROR",
"path": "id",
"text": "id must not be null"
},
{
"category": "ERROR",
"code": "FORMAT_ERROR",
"path": "endDate",
"text": "endDate must not be null"
}
]
}
500 :
internalServerError
{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | OK - Standing order successfully suspended. | None |
400 |
Bad Request | Bad Request - Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | TppMessagesResponse |
500 |
Internal Server Error | Internal Server Error - Internal server error occurred. | TppMessagesResponse |
503 |
Service Unavailable | Service Unavailable - The server is currently unavailable. Generally, this is a temporary state. | None |
Schemas
AcceptStatusUpdateOnRecall
{
"groupHeader": {
"creationDateTime": "string",
"instructingAgent": "string",
"messageIdentification": "string"
},
"transactionInformation": {
"originalInstructionIdentification": "string",
"originalMessageIdentification": "string",
"statusRequestIdentification": "string"
}
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
groupHeader (required) | GroupHeaderIncoming | Set of characteristics shared by all individual transactions included in the Request for Status Update on Recall message | none |
transactionInformation (required) | TransactionInformation | Information concerning the original transaction, to which the Request for Status Update on Recall message refers | none |
AccountDTO
{
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
}
Settlement account used when settlement method is INDA/INGA.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
currency | string | ISO 4217 Alpha 3 currency code. | none |
identification (required) | IdentificationDTO | Unique and unambiguous identification for the account. | none |
AccountIdentificationsFilterCriteriaDTO
{
"field": "SCHEME",
"operator": "EQUALS",
"value": "string"
}
Account identification search criteria
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
field (required) | string | Contains the actual searching fields that can be native (one from the provided list) | none |
operator (required) | string | EQUALS - checks that 'field' equals to 'value' (strict equals, does not support parts or masks) | none |
value | string | The value to match the searching criteria | none |
Enumerated Values
Property | Value |
---|---|
field | SCHEME |
field | IBAN |
field | IDENTIFICATION |
operator | EQUALS |
operator | IN |
operator | BETWEEN |
operator | GREATER_THAN |
operator | LESS_THAN |
AccountIdentificationsSearchRequestDTO
{
"filterCriteria": [
{
"field": "SCHEME",
"operator": "EQUALS",
"value": "string"
}
]
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
filterCriteria (required) | [AccountIdentificationsFilterCriteriaDTO] | Account identification search criteria | none |
AccountIdentificationsSearchResponseDTO
{
"accountId": "string",
"currency": "string",
"identification": {
"currency": "str",
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
},
"type": "string"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
accountId (required) | string | AccountID (Unique and unambiguous identification for the account.) | none |
currency | string | Account currency | none |
identification (required) | Identification | Identification | none |
type | string | Account type | none |
AccountInternalIdentification
{
"currency": "string",
"id": "string",
"type": "DEPOSIT"
}
Mambu Accounts corresponding to the current IBAN / proprietary identification
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
currency | string | none | none |
id | string | none | none |
type | string | none | none |
Enumerated Values
Property | Value |
---|---|
type | DEPOSIT |
type | LOAN |
AccountMappingResponse
{
"internalAccounts": [
{
"currency": "string",
"id": "string",
"type": "DEPOSIT"
}
],
"tppMessages": [
{
"category": "ERROR",
"code": "ACCOUNT_ALREADY_MAPPED_TO_THE_SPECIFIED_IDENTIFICATION",
"path": "string",
"text": "string"
}
]
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
internalAccounts | [AccountInternalIdentification] | Mambu Accounts corresponding to the current IBAN / proprietary identification | none |
tppMessages | [TPPMessage] | Messages to the TPP on operational issues. | none |
AddressDTO
{
"buildingNumber": "string",
"city": "string",
"countryCode": "st",
"postalCode": "string",
"street": "string"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
buildingNumber | string | The building or street number of the address. Must not exceed 16 characters. | none |
city | string | The city of the address. Must not exceed 35 characters. | none |
countryCode (required) | string | Two characters as defined by ISO 3166. For example DE for Germany, TZ for Tanzania. |
none |
postalCode | string | The postal code of the address. Must not exceed 16 characters. | none |
street | string | The street name of the adress. Must not exceed 70 characters. | none |
Agent
{
"institutionIdentification": {
"bicfi": "stringst"
}
}
Financial institution servicing an account for the debtor.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
institutionIdentification (required) | InstitutionIdentification | Unique and unambiguous identification of a financial institution, as assigned under an internationally recognised identification scheme. | none |
AgentDTO
{
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
}
Financial institution servicing an account for the creditor. This field is mandatory when proprietary ('other') creditor account identification is used.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
account | AccountDTO | Settlement account used when settlement method is INDA/INGA. | none |
institutionIdentification (required) | InstitutionIdentificationDTO | Unique and unambiguous identification of a financial institution, as assigned under an internationally recognised identification scheme. | none |
AmendmentInformationDetailsDTO
{
"originalCreditorSchemeIdentification": {
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
},
"name": "string"
},
"originalDebtorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"originalDebtorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"originalMandateIdentification": "string"
}
List of mandate elements that have been modified.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
originalCreditorSchemeIdentification | OriginalCreditorSchemeIdentificationDTO | Original creditor scheme identification that has been modified. | none |
originalDebtorAccount | AccountDTO | Settlement account used when settlement method is INDA/INGA. | none |
originalDebtorAgent | AgentDTO | Financial institution servicing an account for the creditor. This field is mandatory when proprietary ('other') creditor account identification is used. | none |
originalMandateIdentification | string | Unique identification, as assigned by the creditor, to unambiguously identify the original mandate. Must not exceed 35 characters. | none |
AmlPaymentIdentification
{
"transactionIdentification": "string"
}
Payment instruction reference.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
transactionIdentification (required) | string | Unique identification as assigned by the initiating party to be used as transaction identifier. | none |
AmlResult
{
"groupHeader": {
"messageIdentification": "string"
},
"transactions": [
{
"debtorAgent": {
"institutionIdentification": {
"bicfi": "stringst"
}
},
"interbankSettlementDate": "stringstri",
"paymentIdentification": {
"transactionIdentification": "string"
},
"status": "ACCEPTED"
}
]
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
groupHeader (required) | GroupHeader | GroupHeader information from the original instruction. | none |
transactions (required) | [AmlTransactionResult] | List of AML result checks, one per Payment Order. | none |
AmlTransactionResult
{
"debtorAgent": {
"institutionIdentification": {
"bicfi": "stringst"
}
},
"interbankSettlementDate": "stringstri",
"paymentIdentification": {
"transactionIdentification": "string"
},
"status": "ACCEPTED"
}
List of AML result checks, one per Payment Order.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
debtorAgent (required) | Agent | Financial institution servicing an account for the debtor. | none |
interbankSettlementDate (required) | string | InterbankSettlementDate from the original instruction in the format YYYY-MM-DD . |
none |
paymentIdentification (required) | AmlPaymentIdentification | Payment instruction reference. | none |
status (required) | string | Actual status of the AML investigation. Must be one of ACCEPTED , SUSPENDED , REJECTED , MANUAL_REDIRECT_EXTERNAL or MANUAL_REDIRECT_INTERNAL . |
none |
Enumerated Values
Property | Value |
---|---|
status | ACCEPTED |
status | SUSPENDED |
status | REJECTED |
status | MANUAL_REDIRECT_EXTERNAL |
status | MANUAL_REDIRECT_INTERNAL |
AmountDTO
{
"amount": "string",
"currency": "str"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
amount (required) | string | The amount given with fractional digits, where fractions must be compliant to the currency definition. Negative amounts are signed by minus. The decimal separator is a dot. | none |
currency (required) | string | ISO 4217 Alpha 3 currency code. | none |
Assignment
{
"creationDateTime": "2019-08-24T14:15:22Z",
"identification": "string"
}
Assignment
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
creationDateTime | string(date-time) | creation date time | none |
identification | string | camt.027/camt.087 assignment id | none |
CancellationDetails
{
"additionalInformation": [
"string"
],
"originalRecallReasonAdditionalInformation": [
"string"
],
"rejectionReason": "ARDT"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
additionalInformation | [string] | Further details on the cancellation request reason. The order must be as defined in the SEPA guideline. The prefixes will be added automatically. First occurrence will be added to the first (mandatory) entry of additional information. When denying a recall, if you do not want to add extra information to the mandatory occurrence, please provide an empty string. For Legal additional information, second and third occurrence will be added on the second and third additional information. | none |
originalRecallReasonAdditionalInformation | [string] | Further details on the cancellation reason which can be used when the recall rejection reason was AC03 for a recall made by the originator or FRAD for a recall made by the financial institution. The prefixes will be added automatically. Up to 10 occurrences are allowed. | none |
rejectionReason (required) | string | Reason for the cancellation status. Only ARDT, AC04, AM04, NOAS, NOOR, CUST, LEGL, AGNT are allowed. | none |
Enumerated Values
Property | Value |
---|---|
rejectionReason | ARDT |
rejectionReason | AC04 |
rejectionReason | AM04 |
rejectionReason | NOAS |
rejectionReason | NOOR |
rejectionReason | CUST |
rejectionReason | LEGL |
rejectionReason | AGNT |
CollectionDTO
{
"creditorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"creditorAddress": {
"buildingNumber": "string",
"city": "string",
"countryCode": "st",
"postalCode": "string",
"street": "string"
},
"creditorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"creditorIdentification": {
"code": "stri",
"issuer": "string",
"privateIdentification": "string",
"proprietary": "string"
},
"creditorName": "string",
"creditorSchemeIdentification": {
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"debtorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"debtorAddress": {
"buildingNumber": "string",
"city": "string",
"countryCode": "st",
"postalCode": "string",
"street": "string"
},
"debtorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"debtorIdentification": {
"code": "stri",
"issuer": "string",
"privateIdentification": "string",
"proprietary": "string"
},
"debtorName": "string",
"instructedAmount": {
"amount": "string",
"currency": "str"
},
"localInstrument": "string",
"mandateRelatedInformation": {
"amendmentInformationDetails": {
"originalCreditorSchemeIdentification": {
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
},
"name": "string"
},
"originalDebtorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"originalDebtorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"originalMandateIdentification": "string"
},
"dateOfSignature": "string",
"mandateIdentification": "string"
},
"paymentIdentification": {
"endToEndIdentification": "string",
"transactionIdentification": "string"
},
"paymentTypeInformation": {
"sequenceType": "string"
},
"purposeCode": "stri",
"remittanceInformationStructured": {
"reference": "string",
"referenceIssuer": "string",
"referenceType": "string"
},
"remittanceInformationUnstructured": "string",
"requestedExecutionDate": "stringstri",
"requestedExecutionTime": "stringstringstrin",
"serviceLevel": "string",
"ultimateCreditor": "string",
"ultimateDebtor": "string"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
creditorAccount (required) | AccountDTO | Settlement account used when settlement method is INDA/INGA. | none |
creditorAddress | AddressDTO | none | none |
creditorAgent | AgentDTO | Financial institution servicing an account for the creditor. This field is mandatory when proprietary ('other') creditor account identification is used. | none |
creditorIdentification | PartyIdentificationDTO | Beneficiary’s identification. | none |
creditorName (required) | string | The Party whose account is credited with the payment. Must not exceed 70 characters. | none |
creditorSchemeIdentification (required) | CreditorSchemeIdentificationDTO | Credit party that signs the mandate. | none |
debtorAccount (required) | AccountDTO | Settlement account used when settlement method is INDA/INGA. | none |
debtorAddress | AddressDTO | none | none |
debtorAgent | AgentDTO | Financial institution servicing an account for the creditor. This field is mandatory when proprietary ('other') creditor account identification is used. | none |
debtorIdentification | PartyIdentificationDTO | Beneficiary’s identification. | none |
debtorName (required) | string | The full name of the debtor. Must not exceed 70 characters. | none |
instructedAmount (required) | AmountDTO | none | none |
localInstrument | string | User community specific instrument. Used to specify a local instrument, local clearing option and/or further qualify the service or service level. For example, whether a Direct Debit uses the business to customer CORE , business to business B2B ruleset or whether a Credit Transfer is of type Instant INST . |
none |
mandateRelatedInformation (required) | MandateDTO | Set of elements used to provide further details of the direct debit mandate signed between the creditor and the debtor. | none |
paymentIdentification | PaymentIdentificationDTO | Payment instruction reference. | none |
paymentTypeInformation (required) | PaymentTypeInformationDTO | Set of elements used to further specify the type of transaction. | none |
purposeCode | string | The PurposeCode value or a similar explanation is not added to the payer’s Electronic account statement. This value can be shown on both the payers and the beneficiary’s on the Camt.053 account statement. Purpose codes can be taken from an external list, for example the ISO 20022 External Code Set. | none |
remittanceInformationStructured | RemittanceDTO | Payment details. Structured message. Generally, these fields are used to provide invoice or creditor reference information. References should conform to ISO 11649, international standard of reference information. | none |
remittanceInformationUnstructured | string | Payment details. Free text, one occurrence (max 140 characters). Payment reason (according to current recurrent payment standard) can be given in this element. |
none |
requestedExecutionDate | string | Optional field for recording the date of the transfer. For SEPA Credit Transfers only the current date can be provided. Payments can not be backdated or scheduled for the future. | none |
requestedExecutionTime | string | Optional field for recording the date and time of the payment initiation. For SEPACredit Transfers, only the current date and time can be provided. Payments can not be backdated or scheduled for the future. | none |
serviceLevel | string | Agreement under which or rules under which the transaction should be processed. Must be SEPA for SEPA Credit Transfers and Direct Debits. |
none |
ultimateCreditor | string | Party which is the ultimate beneficiary of the payment. For example, the payment can be credited to an account of a financing company, with the ultimate beneficiary being the customer of the financing company. Must not exceed 70 characters. | none |
ultimateDebtor | string | The Party that originally ordered goods or services and to whom the seller has sent the invoice. Ultimate Debtor can be used when the acceptor of the invoice is different than the payer. Must not exceed 70 characters. | none |
CollectionResponse
{
"collectionId": "string",
"tppMessages": [
{
"category": "ERROR",
"code": "ACCOUNT_ALREADY_MAPPED_TO_THE_SPECIFIED_IDENTIFICATION",
"path": "string",
"text": "string"
}
],
"transactionFeeIndicator": true,
"transactionStatus": "ACSC"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
collectionId (required) | string | Resource identification of the generated payment initiation resource. | none |
tppMessages | [TPPMessage] | Messages to the TPP on operational issues. | none |
transactionFeeIndicator | boolean | If set to true , the transaction will involve additional costs or fees. |
none |
transactionStatus (required) | string | PSD2 transaction status codes:
|
none |
Enumerated Values
Property | Value |
---|---|
transactionStatus | ACSC |
transactionStatus | ACSP |
transactionStatus | ACTC |
transactionStatus | CPVP |
transactionStatus | RCVD |
transactionStatus | PDNG |
transactionStatus | RJCT |
CreateAccountMapping
{
"identification": {
"currency": "str",
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
identification (required) | Identification | Identification | none |
CreateAccountMappings
{
"accountIds": [
"string"
],
"identification": {
"currency": "str",
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
accountIds (required) | [string] | IDs of the Mambu Accounts which will be correlated to the IBAN or proprietary identification. The association will be made on account currency. | none |
identification (required) | Identification | Identification | none |
CreateBlockingRule
{
"creditorMandate": {
"creditorSchemeIdentification": {
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"mandateRelatedInformation": {
"mandateIdentification": "string"
}
},
"product": "string"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
creditorMandate | CreditorMandateDTO | Collection mandate identification for deleting a rule applying to a specific mandate. | none |
product (required) | string | Payment Product to which this rule applies. For now, blocking rules can be applied to SEPA_DIRECT_DEBIT only |
none |
CreditorMandateDTO
{
"creditorSchemeIdentification": {
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"mandateRelatedInformation": {
"mandateIdentification": "string"
}
}
Collection mandate identification for deleting a rule applying to a specific mandate.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
creditorSchemeIdentification (required) | CreditorSchemeIdentificationDTO | Credit party that signs the mandate. | none |
mandateRelatedInformation (required) | MandateRelatedInformationDTO | none | none |
CreditorSchemeIdentification
{
"identification": {
"privateIdentification": "ABC123"
}
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
identification | object | Object containing the identifier. | none |
» privateIdentification (required) | string | Unique and unambiguous identification of a person, eg, passport. | none |
CreditorSchemeIdentificationDTO
{
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
}
Credit party that signs the mandate.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
identification (required) | IdentificationDTO | Unique and unambiguous identification for the account. | none |
DeleteBlockingRule
{
"creditorMandate": {
"creditorSchemeIdentification": {
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"mandateRelatedInformation": {
"mandateIdentification": "string"
}
},
"product": "string"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
creditorMandate | CreditorMandateDTO | Collection mandate identification for deleting a rule applying to a specific mandate. | none |
product (required) | string | Payment product to remove blocking rules from. Must be SEPA_DIRECT_DEBIT . |
none |
FailedPaymentResponse
{
"tppMessages": [
{
"category": "ERROR",
"code": "ACCOUNT_ALREADY_MAPPED_TO_THE_SPECIFIED_IDENTIFICATION",
"path": "string",
"text": "string"
}
]
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
tppMessages (required) | [TPPMessage] | Messages to the TPP on operational issues. | none |
FilterCriteria
{
"field": "string",
"operator": "string",
"value": "string"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
field (required) | string | none | none |
operator (required) | string | none | none |
value (required) | string | none | none |
FinancialInstitutionPaymentDTO
{
"categoryPurposeCode": "stri",
"creditor": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"creditorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"creditorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"debtor": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"debtorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"debtorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"instructedAmount": {
"amount": "string",
"currency": "str"
},
"intermediaryAgent1": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"intermediaryAgent2": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"intermediaryAgent3": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"paymentIdentification": {
"endToEndIdentification": "string",
"transactionIdentification": "string",
"uetr": "stringstringstringstringstringstring"
},
"purposeCode": "stri",
"remittanceInformationStructured": {
"reference": "string",
"referenceIssuer": "string",
"referenceType": "string"
},
"remittanceInformationUnstructured": "string",
"requestedExecutionDate": "stringstri",
"scheme": "string",
"settlementInformation": {
"clearingSystem": "string",
"settlementAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"settlementMethod": "string"
},
"ultimateCreditor": "string",
"ultimateDebtor": "string"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
categoryPurposeCode | string | Specifies the high level purpose of the payment based on a set of pre-defined categories. | none |
creditor (required) | AgentDTO | Financial institution servicing an account for the creditor. This field is mandatory when proprietary ('other') creditor account identification is used. | none |
creditorAccount | AccountDTO | Settlement account used when settlement method is INDA/INGA. | none |
creditorAgent | AgentDTO | Financial institution servicing an account for the creditor. This field is mandatory when proprietary ('other') creditor account identification is used. | none |
debtor (required) | AgentDTO | Financial institution servicing an account for the creditor. This field is mandatory when proprietary ('other') creditor account identification is used. | none |
debtorAccount | AccountDTO | Settlement account used when settlement method is INDA/INGA. | none |
debtorAgent | AgentDTO | Financial institution servicing an account for the creditor. This field is mandatory when proprietary ('other') creditor account identification is used. | none |
instructedAmount (required) | AmountDTO | none | none |
intermediaryAgent1 | AgentDTO | Financial institution servicing an account for the creditor. This field is mandatory when proprietary ('other') creditor account identification is used. | none |
intermediaryAgent2 | AgentDTO | Financial institution servicing an account for the creditor. This field is mandatory when proprietary ('other') creditor account identification is used. | none |
intermediaryAgent3 | AgentDTO | Financial institution servicing an account for the creditor. This field is mandatory when proprietary ('other') creditor account identification is used. | none |
paymentIdentification | Iso20022PaymentIdentificationDTO | none | none |
purposeCode | string | The PurposeCode value or a similar explanation is not added to the payer’s Electronic account statement. This value can be shown on both the payers and the beneficiary’s on the Camt.053 account statement. Purpose codes can be taken from an external list, for example the ISO 20022 External Code Set. | none |
remittanceInformationStructured | RemittanceDTO | Payment details. Structured message. Generally, these fields are used to provide invoice or creditor reference information. References should conform to ISO 11649, international standard of reference information. | none |
remittanceInformationUnstructured | string | Payment details. Free text, one occurrence (max 140 characters). Payment reason (according to current recurrent payment standard) can be given in this element. |
none |
requestedExecutionDate | string | Optional field for recording the date of the transfer. Payments can not be backdated or scheduled for the future. | none |
scheme (required) | string | Specifies payment scheme for processing. | none |
settlementInformation (required) | SettlementInformationDTO | Specifies the details on how the settlement of the transaction(s) between the instructing agent and the instructed agent is completed. | none |
ultimateCreditor | string | Party which is the ultimate beneficiary of the payment. For example, the payment can be credited to an account of a financing company, with the ultimate beneficiary being the customer of the financing company. Must not exceed 70 characters. | none |
ultimateDebtor | string | The Party that originally ordered goods or services and to whom the seller has sent the invoice. Ultimate Debtor can be used when the acceptor of the invoice is different than the payer. Must not exceed 70 characters. | none |
GroupHeader
{
"messageIdentification": "string"
}
GroupHeader information from the original instruction.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
messageIdentification (required) | string | Message Identification from the original instruction. | none |
GroupHeaderIncoming
{
"creationDateTime": "string",
"instructingAgent": "string",
"messageIdentification": "string"
}
Set of characteristics shared by all individual transactions included in the Request for Status Update on Recall message
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
creationDateTime (required) | string | Date and time at which the inquiry message was created. Accepted format: yyyy-MM-ddTHH:mm:ss | none |
instructingAgent (required) | string | Agent that is instructed by the previous party in the chain to carry out the (set of) instruction(s). | none |
messageIdentification (required) | string | Message identification to identify the inquiry message | none |
Identification
{
"currency": "str",
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
Identification
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
currency | string | ISO 4217 Alpha 3 currency code. | none |
iban | string | ISO 13616 International Bank Account Number (IBAN) - identifier used internationally by financial institutions to uniquely identify the account of a customer. | none |
other | Other | Unique identification of an account, as assigned by the account servicer, using other identification scheme. | none |
Identification-IBAN
{
"iban": "stringstringstr"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
iban | string | ISO 13616 International Bank Account Number (IBAN) - identifier used internationally by financial institutions to uniquely identify the account of a customer. | none |
IdentificationDTO
{
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
Unique and unambiguous identification for the account.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
iban | string | International Bank Account Number (IBAN) - identifier used internationally by financial institutions to uniquely identify the account of a customer. Must be between 15 and 34 characters. | none |
other | OtherDTO | Unique identification of an account, as assigned by the account servicer, using any other identification scheme. | none |
IdentificationsToMask
{
"identifications": [
{
"iban": "stringstringstr"
}
]
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
identifications (required) | [Identification-IBAN] | none | none |
IncomingMessageResponse
{
"messageId": "string",
"messageType": "string"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
messageId (required) | string | Resource identification of the incoming message | none |
messageType (required) | string | URN namespace of the incoming message | none |
InitiationPaymentDTO
{
"creditorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"creditorAddress": {
"buildingNumber": "string",
"city": "string",
"countryCode": "st",
"postalCode": "string",
"street": "string"
},
"creditorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"creditorIdentification": {
"code": "stri",
"issuer": "string",
"privateIdentification": "string",
"proprietary": "string"
},
"creditorName": "string",
"debtorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"debtorAddress": {
"buildingNumber": "string",
"city": "string",
"countryCode": "st",
"postalCode": "string",
"street": "string"
},
"debtorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"debtorIdentification": {
"code": "stri",
"issuer": "string",
"privateIdentification": "string",
"proprietary": "string"
},
"debtorName": "string",
"instructedAmount": {
"amount": "string",
"currency": "str"
},
"localInstrument": "string",
"paymentIdentification": {
"endToEndIdentification": "string",
"transactionIdentification": "string"
},
"purposeCode": "stri",
"remittanceInformationStructured": {
"reference": "string",
"referenceIssuer": "string",
"referenceType": "string"
},
"remittanceInformationUnstructured": "string",
"requestedExecutionDate": "stringstri",
"requestedExecutionTime": "stringstringstrin",
"serviceLevel": "string",
"ultimateCreditor": "string",
"ultimateDebtor": "string"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
creditorAccount (required) | AccountDTO | Settlement account used when settlement method is INDA/INGA. | none |
creditorAddress | AddressDTO | none | none |
creditorAgent | AgentDTO | Financial institution servicing an account for the creditor. This field is mandatory when proprietary ('other') creditor account identification is used. | none |
creditorIdentification | PartyIdentificationDTO | Beneficiary’s identification. | none |
creditorName (required) | string | The Party whose account is credited with the payment. Must not exceed 70 characters. | none |
debtorAccount (required) | AccountDTO | Settlement account used when settlement method is INDA/INGA. | none |
debtorAddress | AddressDTO | none | none |
debtorAgent | AgentDTO | Financial institution servicing an account for the creditor. This field is mandatory when proprietary ('other') creditor account identification is used. | none |
debtorIdentification | PartyIdentificationDTO | Beneficiary’s identification. | none |
debtorName (required) | string | The full name of the debtor. Must not exceed 70 characters. | none |
instructedAmount (required) | AmountDTO | none | none |
localInstrument | string | User community specific instrument. Used to specify a local instrument, local clearing option and/or further qualify the service or service level. For example, whether a Direct Debit uses the business to customer CORE , business to business B2B ruleset or whether a Credit Transfer is of type Instant INST . |
none |
paymentIdentification | PaymentIdentificationDTO | Payment instruction reference. | none |
purposeCode | string | The PurposeCode value or a similar explanation is not added to the payer’s Electronic account statement. This value can be shown on both the payers and the beneficiary’s on the Camt.053 account statement. Purpose codes can be taken from an external list, for example the ISO 20022 External Code Set. | none |
remittanceInformationStructured | RemittanceDTO | Payment details. Structured message. Generally, these fields are used to provide invoice or creditor reference information. References should conform to ISO 11649, international standard of reference information. | none |
remittanceInformationUnstructured | string | Payment details. Free text, one occurrence (max 140 characters). Payment reason (according to current recurrent payment standard) can be given in this element. |
none |
requestedExecutionDate | string | Optional field for recording the date of the transfer. For SEPA Credit Transfers only the current date can be provided. Payments can not be backdated or scheduled for the future. | none |
requestedExecutionTime | string | Optional field for recording the date and time of the payment initiation. For SEPACredit Transfers, only the current date and time can be provided. Payments can not be backdated or scheduled for the future. | none |
serviceLevel | string | Agreement under which or rules under which the transaction should be processed. Must be SEPA for SEPA Credit Transfers and Direct Debits. |
none |
ultimateCreditor | string | Party which is the ultimate beneficiary of the payment. For example, the payment can be credited to an account of a financing company, with the ultimate beneficiary being the customer of the financing company. Must not exceed 70 characters. | none |
ultimateDebtor | string | The Party that originally ordered goods or services and to whom the seller has sent the invoice. Ultimate Debtor can be used when the acceptor of the invoice is different than the payer. Must not exceed 70 characters. | none |
InstantPaymentIdentification
{
"acceptanceDateTime": "string",
"transactionIdentification": "string"
}
Payment instruction reference.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
acceptanceDateTime (required) | string | AcceptanceDateTime from the original instruction; must be in the same format as it was sent in the original instruction. | none |
transactionIdentification (required) | string | Unique identification as assigned by the initiating party to be used as transaction identifier. | none |
InstantPaymentSettlement
{
"groupHeader": {
"messageIdentification": "string"
},
"transaction": {
"debtorAgent": {
"institutionIdentification": {
"bicfi": "stringst"
}
},
"paymentIdentification": {
"acceptanceDateTime": "string",
"transactionIdentification": "string"
}
}
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
groupHeader (required) | GroupHeader | GroupHeader information from the original instruction. | none |
transaction (required) | InstantTransaction | Original transaction information. | none |
InstantTransaction
{
"debtorAgent": {
"institutionIdentification": {
"bicfi": "stringst"
}
},
"paymentIdentification": {
"acceptanceDateTime": "string",
"transactionIdentification": "string"
}
}
Original transaction information.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
debtorAgent (required) | Agent | Financial institution servicing an account for the debtor. | none |
paymentIdentification (required) | InstantPaymentIdentification | Payment instruction reference. | none |
InstitutionIdentification
{
"bicfi": "stringst"
}
Unique and unambiguous identification of a financial institution, as assigned under an internationally recognised identification scheme.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
bicfi (required) | string | ISO 9362 Business identifier code (BIC) - code allocated to a financial institution. Must be between 8 and 11 characters. | none |
InstitutionIdentificationDTO
{
"bicfi": "stringst"
}
Unique and unambiguous identification of a financial institution, as assigned under an internationally recognised identification scheme.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
bicfi (required) | string | ISO 9362 Business identifier code (BIC) - code allocated to a financial institution. Must be between 8 and 11 characters. | none |
Iso20022PaymentDTO
{
"categoryPurposeCode": "stri",
"creditorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"creditorAddress": {
"buildingNumber": "string",
"city": "string",
"countryCode": "st",
"postalCode": "string",
"street": "string"
},
"creditorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"creditorIdentification": {
"code": "stri",
"issuer": "string",
"privateIdentification": "string",
"proprietary": "string"
},
"creditorName": "string",
"debtorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"debtorAddress": {
"buildingNumber": "string",
"city": "string",
"countryCode": "st",
"postalCode": "string",
"street": "string"
},
"debtorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"debtorIdentification": {
"code": "stri",
"issuer": "string",
"privateIdentification": "string",
"proprietary": "string"
},
"debtorName": "string",
"instructedAmount": {
"amount": "string",
"currency": "str"
},
"localInstrument": "string",
"paymentIdentification": {
"endToEndIdentification": "string",
"transactionIdentification": "string",
"uetr": "stringstringstringstringstringstring"
},
"purposeCode": "stri",
"remittanceInformationStructured": {
"reference": "string",
"referenceIssuer": "string",
"referenceType": "string"
},
"remittanceInformationUnstructured": "string",
"requestedExecutionDate": "stringstri",
"requestedExecutionTime": "stringstringstrin",
"scheme": "string",
"serviceLevel": "string",
"settlementInformation": {
"clearingSystem": "string",
"settlementAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"settlementMethod": "string"
},
"ultimateCreditor": "string",
"ultimateDebtor": "string"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
categoryPurposeCode | string | Specifies the high level purpose of the payment based on a set of pre-defined categories. | none |
creditorAccount (required) | AccountDTO | Settlement account used when settlement method is INDA/INGA. | none |
creditorAddress | AddressDTO | none | none |
creditorAgent | AgentDTO | Financial institution servicing an account for the creditor. This field is mandatory when proprietary ('other') creditor account identification is used. | none |
creditorIdentification | PartyIdentificationDTO | Beneficiary’s identification. | none |
creditorName (required) | string | The Party whose account is credited with the payment. Must not exceed 70 characters. | none |
debtorAccount (required) | AccountDTO | Settlement account used when settlement method is INDA/INGA. | none |
debtorAddress | AddressDTO | none | none |
debtorAgent | AgentDTO | Financial institution servicing an account for the creditor. This field is mandatory when proprietary ('other') creditor account identification is used. | none |
debtorIdentification | PartyIdentificationDTO | Beneficiary’s identification. | none |
debtorName (required) | string | The full name of the debtor. Must not exceed 70 characters. | none |
instructedAmount (required) | AmountDTO | none | none |
localInstrument | string | User community specific instrument. Used to specify a local instrument, local clearing option and/or further qualify the service or service level. For example, whether a Direct Debit uses the business to customer CORE , business to business B2B ruleset or whether a Credit Transfer is of type Instant INST . |
none |
paymentIdentification | Iso20022PaymentIdentificationDTO | none | none |
purposeCode | string | The PurposeCode value or a similar explanation is not added to the payer’s Electronic account statement. This value can be shown on both the payers and the beneficiary’s on the Camt.053 account statement. Purpose codes can be taken from an external list, for example the ISO 20022 External Code Set. | none |
remittanceInformationStructured | RemittanceDTO | Payment details. Structured message. Generally, these fields are used to provide invoice or creditor reference information. References should conform to ISO 11649, international standard of reference information. | none |
remittanceInformationUnstructured | string | Payment details. Free text, one occurrence (max 140 characters). Payment reason (according to current recurrent payment standard) can be given in this element. |
none |
requestedExecutionDate | string | Optional field for recording the date of the transfer. For SEPA Credit Transfers only the current date can be provided. Payments can not be backdated or scheduled for the future. | none |
requestedExecutionTime | string | Optional field for recording the date and time of the payment initiation. For SEPACredit Transfers, only the current date and time can be provided. Payments can not be backdated or scheduled for the future. | none |
scheme (required) | string | Specifies payment scheme for processing. | none |
serviceLevel | string | Agreement under which or rules under which the transaction should be processed. Must be SEPA for SEPA Credit Transfers and Direct Debits. |
none |
settlementInformation (required) | SettlementInformationDTO | Specifies the details on how the settlement of the transaction(s) between the instructing agent and the instructed agent is completed. | none |
ultimateCreditor | string | Party which is the ultimate beneficiary of the payment. For example, the payment can be credited to an account of a financing company, with the ultimate beneficiary being the customer of the financing company. Must not exceed 70 characters. | none |
ultimateDebtor | string | The Party that originally ordered goods or services and to whom the seller has sent the invoice. Ultimate Debtor can be used when the acceptor of the invoice is different than the payer. Must not exceed 70 characters. | none |
Iso20022PaymentIdentificationDTO
{
"endToEndIdentification": "string",
"transactionIdentification": "string",
"uetr": "stringstringstringstringstringstring"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
endToEndIdentification | string | Unique identification assigned by the payer to identify the transaction. This identification will be returned to the payer and passed on to the beneficiary. Must not exceed 35 characters. | none |
transactionIdentification | string | Unique identification as assigned by the initiating party to be used as transaction identifier. If left empty, Mambu transaction id will be used. Must not exceed 35 characters. | none |
uetr | string | Universally unique identifier to provide an end-to-end reference of a payment transaction. | none |
LogRequest
{
"log": "string"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
log (required) | string | none | none |
MandateDTO
{
"amendmentInformationDetails": {
"originalCreditorSchemeIdentification": {
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
},
"name": "string"
},
"originalDebtorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"originalDebtorAgent": {
"account": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"institutionIdentification": {
"bicfi": "stringst"
}
},
"originalMandateIdentification": "string"
},
"dateOfSignature": "string",
"mandateIdentification": "string"
}
Set of elements used to provide further details of the direct debit mandate signed between the creditor and the debtor.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
amendmentInformationDetails | AmendmentInformationDetailsDTO | List of mandate elements that have been modified. | none |
dateOfSignature (required) | string | Date on which the direct debit mandate has been signed by the debtor in the format YYYY-MM-DD . |
none |
mandateIdentification (required) | string | Unique identification, as assigned by the creditor, to unambiguously identify the mandate. | none |
MandateRelatedInformationDTO
{
"mandateIdentification": "string"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
mandateIdentification (required) | string | Unique identification, as assigned by the creditor, to unambiguously identify the collection mandate. | none |
Message
{}
List of SEPA instructions.
Properties
None
OriginalCamt056Data
{
"cancellationIdentification": "string",
"groupHeader": {
"messageIdentification": "string"
},
"historicCancellationRequest": "string"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
cancellationIdentification (required) | string | Cancellation identification. | none |
groupHeader | GroupHeader | GroupHeader information from the original instruction. | none |
historicCancellationRequest | string | Original camt.056.001.01 message body XML for historical requests. | none |
OriginalCreditorSchemeIdentificationDTO
{
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
},
"name": "string"
}
Original creditor scheme identification that has been modified.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
identification | IdentificationDTO | Unique and unambiguous identification for the account. | none |
name | string | Name of the creditor. Must not exceed 70 characters. | none |
OriginalInquiryData
{
"assignment": {
"creationDateTime": "2019-08-24T14:15:22Z",
"identification": "string"
},
"caseIdentification": "string",
"historicClaimRequest": "string",
"messageTypeName": "PACS_002_001_03"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
assignment | Assignment | Assignment | none |
caseIdentification (required) | string | camt.027/camt.087 case id | none |
historicClaimRequest | string | Optional historic camt.087 or camt.027 xml | none |
messageTypeName (required) | string | messageTypeName | none |
Enumerated Values
Property | Value |
---|---|
messageTypeName | PACS_002_001_03 |
messageTypeName | PACS_002_001_10 |
messageTypeName | PACS_002_001_12 |
messageTypeName | PACS_003_001_02 |
messageTypeName | PACS_003_001_08 |
messageTypeName | PACS_004_001_02 |
messageTypeName | PACS_004_001_09 |
messageTypeName | PACS_004_001_11 |
messageTypeName | PACS_007_001_02 |
messageTypeName | PACS_007_001_09 |
messageTypeName | PACS_008_001_02 |
messageTypeName | PACS_008_001_08 |
messageTypeName | PACS_008_001_10 |
messageTypeName | PACS_028_001_01 |
messageTypeName | PACS_028_001_03 |
messageTypeName | CAMT_027_001_06 |
messageTypeName | CAMT_027_001_07 |
messageTypeName | CAMT_029_001_03 |
messageTypeName | CAMT_029_001_08 |
messageTypeName | CAMT_029_001_09 |
messageTypeName | CAMT_029_001_11 |
messageTypeName | CAMT_056_001_01 |
messageTypeName | CAMT_056_001_08 |
messageTypeName | CAMT_056_001_10 |
messageTypeName | CAMT_087_001_05 |
messageTypeName | CAMT_087_001_06 |
messageTypeName | SIC_PACS_008_001_08 |
messageTypeName | SIC_PACS_004_001_09 |
messageTypeName | SIC_PACS_002_001_10 |
messageTypeName | MT_103 |
messageTypeName | MT_103_RETURN |
messageTypeName | UNKNOWN |
OriginalPacs008Data
{
"claimedValueDate": "2019-08-24",
"groupHeader": {
"messageIdentification": "string",
"settlementDate": "2019-08-24"
},
"historicCreditTransferRequest": "string",
"paymentIdentification": {
"transactionIdentification": "string"
}
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
claimedValueDate | string(date) | Claimed value-date for change. | none |
groupHeader | Pacs008GroupHeader | Original pacs.008 group header information. | none |
historicCreditTransferRequest | string | Original pacs.008 message body XML for historical requests. | none |
paymentIdentification (required) | PaymentIdentification | Payment identification. | none |
Other
{
"identification": "string",
"scheme": "string"
}
Unique identification of an account, as assigned by the account servicer, using other identification scheme.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
identification (required) | string | Identification assigned by an institution. | none |
scheme (required) | string | Name of the identification scheme. | none |
OtherDTO
{
"identification": "string",
"scheme": "string"
}
Unique identification of an account, as assigned by the account servicer, using any other identification scheme.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
identification (required) | string | Identification assigned by an institution. Must not exceed 34 characters. | none |
scheme (required) | string | Name or code of the identification scheme. Must not exceed 35 characters. | none |
Pacs008GroupHeader
{
"messageIdentification": "string",
"settlementDate": "2019-08-24"
}
Original pacs.008 group header information.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
messageIdentification (required) | string | Original message identification. | none |
settlementDate | string(date) | Original settlement date. | none |
PartyIdentificationDTO
{
"code": "stri",
"issuer": "string",
"privateIdentification": "string",
"proprietary": "string"
}
Beneficiary’s identification.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
code | string | A four-letter code specifying the type of identification being used. For valid codes an external catalogue should be consulted such as the one provided in the ISO 20022 External Code Sets. | none |
issuer | string | The official body who provided the identification. Must not exceed 35 characters. | none |
privateIdentification (required) | string | Unique and unambiguous identification of a person, eg, passport. Must not exceed 35 characters. | none |
proprietary | string | A proprietary type of identification for the party to the transaction. Must not exceed 35 characters. | none |
PaymentDTO
{
"creditorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"creditorName": "string",
"debtorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"debtorName": "string",
"instructedAmount": {
"amount": "string",
"currency": "str"
},
"remittanceInformationUnstructured": "string",
"scheme": "string",
"settlementInformation": {
"clearingSystem": "string",
"settlementAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"settlementMethod": "string"
}
}
Payment details for standing order
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
creditorAccount (required) | AccountDTO | Settlement account used when settlement method is INDA/INGA. | none |
creditorName (required) | string | The Party whose account is credited with the payment. Must not exceed 70 characters. | none |
debtorAccount (required) | AccountDTO | Settlement account used when settlement method is INDA/INGA. | none |
debtorName (required) | string | The full name of the debtor. Must not exceed 70 characters. | none |
instructedAmount (required) | AmountDTO | none | none |
remittanceInformationUnstructured | string | Payment details. Free text, one occurrence (max 140 characters). Payment reason (according to current recurrent payment standard) can be given in this element. |
none |
scheme | string | Specifies payment scheme for processing. | none |
settlementInformation | SettlementInformationDTO | Specifies the details on how the settlement of the transaction(s) between the instructing agent and the instructed agent is completed. | none |
PaymentDetails
{
"transactionStatus": "ACSC"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
transactionStatus | string | PSD2 transaction status codes:
|
none |
Enumerated Values
Property | Value |
---|---|
transactionStatus | ACSC |
transactionStatus | ACSP |
transactionStatus | ACTC |
transactionStatus | RCVD |
transactionStatus | PDNG |
transactionStatus | RJCT |
PaymentIdentification
{
"transactionIdentification": "string"
}
Payment identification.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
transactionIdentification | string | Original transaction identification. | none |
PaymentIdentificationDTO
{
"endToEndIdentification": "string",
"transactionIdentification": "string"
}
Payment instruction reference.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
endToEndIdentification | string | Unique identification assigned by the payer to identify the transaction. This identification will be returned to the payer and passed on to the beneficiary. Must not exceed 35 characters. | none |
transactionIdentification | string | Unique identification as assigned by the initiating party to be used as transaction identifier. If left empty, Mambu transaction id will be used. Must not exceed 35 characters. | none |
PaymentResponse
{
"paymentId": "string",
"tppMessages": [
{
"category": "ERROR",
"code": "ACCOUNT_ALREADY_MAPPED_TO_THE_SPECIFIED_IDENTIFICATION",
"path": "string",
"text": "string"
}
],
"transactionFeeIndicator": true,
"transactionStatus": "RCVD"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
paymentId (required) | string | Resource identification of the generated payment initiation resource. | none |
tppMessages | [TPPMessage] | Messages to the TPP on operational issues. | none |
transactionFeeIndicator | boolean | If value is true , the transaction will involve additional transaction costs or fees. |
none |
transactionStatus (required) | string | RCVD: Payment initiation has been received by the receiving agent. | none |
Enumerated Values
Property | Value |
---|---|
transactionStatus | RCVD |
PaymentResponse-TPP
{
"tppMessages": [
{
"category": "ERROR",
"code": "ACCOUNT_ALREADY_MAPPED_TO_THE_SPECIFIED_IDENTIFICATION",
"path": "string",
"text": "string"
}
]
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
tppMessages | [TPPMessage] | Messages to the TPP on operational issues. | none |
PaymentTypeInformationDTO
{
"sequenceType": "string"
}
Set of elements used to further specify the type of transaction.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
sequenceType (required) | string | Identifies the direct debit sequence, such as first, recurrent, final or one-off (FRST , RCUR , FNAL , OOFF ). |
none |
PrivateIdentificationDTO
{
"privateIdentification": "string"
}
Unique and unambiguous identification of a party.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
privateIdentification (required) | string | Unique and unambiguous identification of a person, eg, passport. Must not exceed 35 characters. | none |
Recall
{
"customerRecallReasonCode": "AM09",
"recallReasonCode": "FRAD"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
customerRecallReasonCode | string | Customer reason for outgoing payment recall, as defined in the SEPA guideline | none |
recallReasonCode (required) | string | Reason for outgoing payment recall, as defined in the SEPA guideline | none |
Enumerated Values
Property | Value |
---|---|
customerRecallReasonCode | AM09 |
customerRecallReasonCode | AC03 |
recallReasonCode | FRAD |
recallReasonCode | TECH |
recallReasonCode | CUST |
recallReasonCode | DUPL |
Refund
{
"reasonCode": "MD01"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
reasonCode (required) | string | Reason for an interbank Refund, as defined in the SEPA guideline | none |
Enumerated Values
Property | Value |
---|---|
reasonCode | MD01 |
reasonCode | MD06 |
RejectStatusUpdateOnRecall
{
"cancellationDetails": {
"additionalInformation": [
"string"
],
"originalRecallReasonAdditionalInformation": [
"string"
],
"rejectionReason": "ARDT"
},
"groupHeader": {
"creationDateTime": "string",
"instructingAgent": "string",
"messageIdentification": "string"
},
"transactionInformation": {
"originalInstructionIdentification": "string",
"originalMessageIdentification": "string",
"statusRequestIdentification": "string"
}
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
cancellationDetails (required) | CancellationDetails | none | none |
groupHeader (required) | GroupHeaderIncoming | Set of characteristics shared by all individual transactions included in the Request for Status Update on Recall message | none |
transactionInformation (required) | TransactionInformation | Information concerning the original transaction, to which the Request for Status Update on Recall message refers | none |
RemittanceDTO
{
"reference": "string",
"referenceIssuer": "string",
"referenceType": "string"
}
Payment details. Structured message. Generally, these fields are used to provide invoice or creditor reference information. References should conform to ISO 11649, international standard of reference information.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
reference (required) | string | The actual reference. Must not exceed 35 characters. If providing a reference number, the referenceType should also be provided. |
none |
referenceIssuer | string | The entity which created or generated the reference. Must not exceed 35 characters. | none |
referenceType | string | The type of reference provided. Must not exceed 35 characters. | none |
ResendAmlFilter
{
"category": "SEPA_CT",
"direction": "I",
"instructingAgent": "string",
"interbankSettlementDate": "string",
"messageId": "string"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
category | string | Message Category. Supported values are SEPA_CT, SEPA_DD or TGT. | none |
direction (required) | string | Message Direction. Supported values are I (incoming) or O (outgoing). | none |
instructingAgent | string | Agent that instructs the next party in the chain to carry out the (set of) instruction(s). | none |
interbankSettlementDate | string | Date on which the amount of money ceases to be available to the agent that owes it and when the amount of money becomes available to the agent to which it is due. Accepted format: yyyy-MM-dd | none |
messageId | string | Incoming message identification. | none |
Enumerated Values
Property | Value |
---|---|
category | SEPA_CT |
category | SEPA_DD |
category | TGT |
direction | I |
direction | O |
RetryPolicyDTO
{
"retryCount": 0
}
Failing standing orders retry policy
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
retryCount | integer(int32) | Specifies how many times the failing standing order will be retried | none |
Reverse
{
"reasonCode": "AM05"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
reasonCode (required) | string | Reason for an interbank Reversal, as defined in the SEPA guideline | none |
Enumerated Values
Property | Value |
---|---|
reasonCode | AM05 |
reasonCode | MS02 |
reasonCode | MS03 |
SepaMessageFilter
{
"dateFrom": "string",
"dateTo": "string",
"direction": "string",
"limit": 1,
"messageId": "string",
"messageType": "string",
"network": "string",
"offset": 0,
"paymentId": "string",
"transactionsLimit": 0,
"transactionsOffset": 0
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
dateFrom | string | Start date from which the messages should be filtered. Accepted format: yyyy-MM-dd | none |
dateTo | string | End date up until which the messages should be filtered. Accepted format: yyyy-MM-dd | none |
direction (required) | string | Message Direction. Supported values are I (incoming) or O (outgoing) | none |
limit | integer(int32) | Limit of the number of objects returned by the server. Defaults to 20. | none |
messageId | string | Message ID, representing the GrpHdr>>MsgId field of the message | none |
messageType | string | Message type. Accepted values are pacs.008.001.02, pacs.004.001.02, pacs.003.001.02, camt.056.001.01, camt.029.001.03 | none |
network | string | Network for which the instructions should be received. SEPA is the only value allowed | none |
offset | integer(int32) | Offset from which the results should be provided. Defaults to 0. | none |
paymentId | string | Payment ID, id provided when creating a new payment | none |
transactionsLimit | integer(int32) | Limit of the number of transactions returned by the server. Defaults to 10. If the transactionsLimit is 0 only message headers will be returned. If the transactionsLimit or transactionsOffset is bigger than 0 then the messageId parameter has to be used as transactions pagination in only available for one message. | none |
transactionsOffset | integer(int32) | Offset from which the transactions should be provided. Defaults to 0. If the transactionsLimit or transactionsOffset is bigger than 0 then the messageId parameter has to be used as transactions pagination in only available for one message. | none |
SepaMessages
{
"instructions": [
{}
],
"tppMessages": [
{
"category": "ERROR",
"code": "ACCOUNT_ALREADY_MAPPED_TO_THE_SPECIFIED_IDENTIFICATION",
"path": "string",
"text": "string"
}
]
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
instructions | [Message] | List of SEPA instructions. | none |
tppMessages | [TPPMessage] | Messages to the TPP on operational issues. | none |
SettlementInformationDTO
{
"clearingSystem": "string",
"settlementAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"settlementMethod": "string"
}
Specifies the details on how the settlement of the transaction(s) between the instructing agent and the instructed agent is completed.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
clearingSystem | string | Clearing system when settlement method is CLRG. | none |
settlementAccount | AccountDTO | Settlement account used when settlement method is INDA/INGA. | none |
settlementMethod (required) | string | Method used to settle the payment: INDA (instructed agent), INGA (instructing agent), CLRG (clearing system) | none |
SkipStatusUpdateOnRecall
{
"groupHeader": {
"creationDateTime": "string",
"instructingAgent": "string",
"messageIdentification": "string"
},
"transactionInformation": {
"statusRequestIdentification": "string"
}
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
groupHeader (required) | GroupHeaderIncoming | Set of characteristics shared by all individual transactions included in the Request for Status Update on Recall message | none |
transactionInformation (required) | StatusRequestIdentification | Information concerning the Request for Status Update on Recall message | none |
StandingOrderCreateResponse
{
"id": "string"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
id | string | Standing order id | none |
StandingOrderDTO
{
"endDate": "2019-08-24",
"frequency": "DAILY, WEEKLY, MONTHLY",
"ownerId": "string",
"payment": {
"creditorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"creditorName": "string",
"debtorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"debtorName": "string",
"instructedAmount": {
"amount": "string",
"currency": "str"
},
"remittanceInformationUnstructured": "string",
"scheme": "string",
"settlementInformation": {
"clearingSystem": "string",
"settlementAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"settlementMethod": "string"
}
},
"retryPolicy": {
"retryCount": 0
},
"startDate": "2019-08-24"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
endDate | string(date) | Standing order end date | none |
frequency (required) | string | Standing order frequency | none |
ownerId (required) | string | Standing order owner id | none |
payment (required) | PaymentDTO | Payment details for standing order | none |
retryPolicy (required) | RetryPolicyDTO | Failing standing orders retry policy | none |
startDate (required) | string(date) | Standing order start date | none |
Enumerated Values
Property | Value |
---|---|
frequency | DAILY, WEEKLY, MONTHLY |
StandingOrderExecutionResponse
{
"creationDate": "2019-08-24T14:15:22Z",
"failReason": "INSUFFICIENT_FUNDS(401)",
"paymentOrderId": "string",
"requestedExecuteOn": "2019-08-24T14:15:22Z",
"standingOrderId": "string",
"status": "RUNNING",
"type": "REGULAR"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
creationDate | string(date-time) | Entry creation date and time | none |
failReason | string | Holds short failure description | none |
paymentOrderId | string | Payment order id | none |
requestedExecuteOn | string(date-time) | Date and time at which payment is initiated | none |
standingOrderId | string | Standing order id | none |
status | string | Status of payment execution | none |
type | string | Execution type | none |
Enumerated Values
Property | Value |
---|---|
failReason | INSUFFICIENT_FUNDS(401) |
failReason | ACCOUNT_INACTIVE(407) |
failReason | OTHER(-1) |
status | RUNNING |
status | COMPLETED |
status | FAILED |
type | REGULAR |
type | RETRY |
StandingOrderGetResponse
{
"creationDateTime": "2019-08-24T14:15:22Z",
"endDate": "2019-08-24",
"frequency": "DAILY, WEEKLY, MONTHLY",
"id": "string",
"lastExecution": "2019-08-24",
"nextExecution": "2019-08-24",
"ownerId": "string",
"payment": {
"creditorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"creditorName": "string",
"debtorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"debtorName": "string",
"instructedAmount": {
"amount": "string",
"currency": "str"
},
"remittanceInformationUnstructured": "string",
"scheme": "string",
"settlementInformation": {
"clearingSystem": "string",
"settlementAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"settlementMethod": "string"
}
},
"paymentsCount": 0,
"retryCount": 0,
"startDate": "2019-08-24",
"status": "ACTIVE",
"suspendDateFrom": "2019-08-24",
"suspendDateTo": "2019-08-24"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
creationDateTime | string(date-time) | Standing order creation date and time | none |
endDate | string(date) | Standing order end date | none |
frequency | string | Standing order frequency | none |
id | string | Standing order id | none |
lastExecution | string(date) | Standing order's last payment execution date | none |
nextExecution | string(date) | Standing order's next payment execution date | none |
ownerId | string | Standing order owner id | none |
payment | PaymentDTO | Payment details for standing order | none |
paymentsCount | integer(int32) | Standing order's count of payments executed so far | none |
retryCount | integer(int32) | Standing order's retry count setting | none |
startDate | string(date) | Standing order start date | none |
status | string | Standing order status | none |
suspendDateFrom | string(date) | Standing order suspend start date | none |
suspendDateTo | string(date) | Standing order suspend end date (inclusive) | none |
Enumerated Values
Property | Value |
---|---|
frequency | DAILY, WEEKLY, MONTHLY |
status | ACTIVE |
status | SUSPENDED |
status | CANCELED |
status | WITHDRAWN |
StandingOrderSearchRequest
{
"filterCriteria": [
{
"field": "string",
"operator": "string",
"value": "string"
}
],
"limit": 1,
"offset": 2147483647
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
filterCriteria (required) | [FilterCriteria] | none | none |
limit | integer(int32) | none | none |
offset | integer(int32) | none | none |
StandingOrderSearchResponse
{
"creationDateTime": "2019-08-24T14:15:22Z",
"endDate": "2019-08-24",
"frequency": "DAILY, WEEKLY, MONTHLY",
"id": "string",
"ownerId": "string",
"payment": {
"creditorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"creditorName": "string",
"debtorAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"debtorName": "string",
"instructedAmount": {
"amount": "string",
"currency": "str"
},
"remittanceInformationUnstructured": "string",
"scheme": "string",
"settlementInformation": {
"clearingSystem": "string",
"settlementAccount": {
"currency": "str",
"identification": {
"iban": "stringstringstr",
"other": {
"identification": "string",
"scheme": "string"
}
}
},
"settlementMethod": "string"
}
},
"retryCount": 0,
"startDate": "2019-08-24",
"status": "ACTIVE",
"suspendDateFrom": "2019-08-24",
"suspendDateTo": "2019-08-24"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
creationDateTime | string(date-time) | Standing order creation date and time | none |
endDate | string(date) | Standing order end date | none |
frequency | string | Standing order frequency | none |
id | string | Standing order id | none |
ownerId | string | Standing order owner id | none |
payment | PaymentDTO | Payment details for standing order | none |
retryCount | integer(int32) | Standing order's retry count setting | none |
startDate | string(date) | Standing order start date | none |
status | string | Standing order status | none |
suspendDateFrom | string(date) | Standing order suspend start date | none |
suspendDateTo | string(date) | Standing order suspend end date (inclusive) | none |
Enumerated Values
Property | Value |
---|---|
frequency | DAILY, WEEKLY, MONTHLY |
status | ACTIVE |
status | SUSPENDED |
status | CANCELED |
status | WITHDRAWN |
StandingOrderSuspendDTO
{
"endDate": "2019-08-24",
"id": "string",
"startDate": "2019-08-24"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
endDate (required) | string(date) | Suspend standing order till date (inclusive) | none |
id (required) | string | Standing order id | none |
startDate | string(date) | Suspend standing order from date | none |
StatusRequestIdentification
{
"statusRequestIdentification": "string"
}
Information concerning the Request for Status Update on Recall message
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
statusRequestIdentification (required) | string | Unique identification, as assigned by an instructing party for an instructed party, to identify the status request | none |
TPPMessage
{
"category": "ERROR",
"code": "ACCOUNT_ALREADY_MAPPED_TO_THE_SPECIFIED_IDENTIFICATION",
"path": "string",
"text": "string"
}
Messages to the TPP on operational issues.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
category (required) | string | Category designates the message severity. | none |
code (required) | string | Message error codes:
|
none |
path | string | none | none |
text | string | Additional explaining text. | none |
Enumerated Values
Property | Value |
---|---|
category | ERROR |
category | WARN |
code | ACCOUNT_ALREADY_MAPPED_TO_THE_SPECIFIED_IDENTIFICATION |
code | FEATURE_NOT_ENABLED |
code | FORMAT_ERROR |
code | INVALID_MESSAGE_TYPE |
code | INVALID_REQUEST_BODY |
code | INVALID_TRANSACTION_STATE |
code | INVALID_TRANSACTION_STATUS |
code | ORIGINAL_MESSAGE_ALREADY_REPLIED |
code | ORIGINAL_MESSAGE_PENDING_REPLY |
code | PARAMETER_NOT_SUPPORTED |
code | PAYMENT_FAILED |
code | SERVICE_INVALID |
code | NOT_FOUND |
code | RESOURCE_UNKNOWN |
TppMessagesResponse
{
"tppMessages": [
{
"category": "ERROR",
"code": "ACCOUNT_ALREADY_MAPPED_TO_THE_SPECIFIED_IDENTIFICATION",
"path": "string",
"text": "string"
}
]
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
tppMessages (required) | [TPPMessage] | Messages to the TPP on operational issues. | none |
TransactionInformation
{
"originalInstructionIdentification": "string",
"originalMessageIdentification": "string",
"statusRequestIdentification": "string"
}
Information concerning the original transaction, to which the Request for Status Update on Recall message refers
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
originalInstructionIdentification (required) | string | Unique identification, as assigned by the original instructing party for the original instructed party, to unambiguously identify the original instruction. | none |
originalMessageIdentification (required) | string | Point to point reference assigned by the original instructing party to identify the original group of individual transactions | none |
statusRequestIdentification (required) | string | Unique identification, as assigned by an instructing party for an instructed party, to identify the status request | none |