Welcome
This documentation was last updated on Tue Sep 12 12:51:36 CEST 2023
Welcome to the Mambu Functions API Reference documentation.
Mambu Functions help you enhance your financial products by extending the functionality of the Mambu composable banking platform. Using Functions reduces the time it takes to create custom financial products and gives you the power to customize for your unique requirements by injecting your own code into existing business processes.
Base URLs
The base URL for requests to the API is:
https://TENANT_NAME.mambu.com/api/mambu-functions
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/mambu-functions
HTTP verbs
Standard HTTP verbs are used to indicate the API request method.
Verb | Function |
---|---|
GET |
To get a resource or a collection of resources |
POST |
To create a resource |
PUT |
To replace an existing resource |
DELETE |
To delete a resource |
Open API Specification
Use this link to get 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 software development kits, in various languages, for interacting with our APIs using tools such as Swagger Editor.
Using the API
Authentication
Mambu supports two methods for authenticating API requests:
- Basic authentication, using Mambu UI login credentials for a user account with API access permissions.
- API keys, which are unique UUID tokens provided in an
apiKey
header (Early Access feature).
Basic Authentication
curl --location --request GET 'https://TENANT_NAME.mambu.com/api/users' \
--header 'Authorization: Basic U29tZVVzZXI6T3BlblNlc2FtZQ=='
GET /api/users HTTP/1.1
Host: TENANT_NAME.mambu.com
Authorization: Basic U29tZVVzZXI6T3BlblNlc2FtZQ==
var settings = {
"url": "https://TENANT_NAME.mambu.com/api/users",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "Basic U29tZVVzZXI6T3BlblNlc2FtZQ=="
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
require "uri"
require "net/http"
url = URI("https://TENANT_NAME.mambu.com/api/users")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Basic U29tZVVzZXI6T3BlblNlc2FtZQ=="
response = https.request(request)
puts response.read_body
import requests
url = "https://TENANT_NAME.mambu.com/api/users"
payload={}
headers = {
'Authorization': 'Basic U29tZVVzZXI6T3BlblNlc2FtZQ=='
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://TENANT_NAME.mambu.com/api/users")
.method("GET", null)
.addHeader("Authorization", "Basic U29tZVVzZXI6T3BlblNlc2FtZQ==")
.build();
Response response = client.newCall(request).execute();
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://TENANT_NAME.mambu.com/api/users"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Authorization", "Basic U29tZVVzZXI6T3BlblNlc2FtZQ==")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
For basic authorization, provide your username and password directly via the Authorization
header in the format Basic {base64-encoded-string}
, where base64-encoded-string
is the base-64-encoded value of your username and password separated by a colon ':'.
For example, a user with the username SomeUser
and the password OpenSesame
would take the value SomeUser:OpenSesame
and base-64 encode it, yielding U29tZVVzZXI6T3BlblNlc2FtZQ==
. They would then provide an Authorization
header for their request with the value Basic U29tZVVzZXI6T3BlblNlc2FtZQ==
.
See the code samples for this section for sample GET
requests to the /users
endpoint using the above example.
Note that the login credentials must be for a user account with API access permissions. For more information, see Creating a User - Access Rights in our User Guide.
API Keys
API keys are tokens that you provide in an apiKey
header to authenticate requests. They are generated by API consumers, which are an abstraction similar to an OAuth client.
API consumers are currently an Early Access feature. If you would like to request access to this feature, please get in touch with your Mambu Customer Success Manager to discuss your requirements.
For more information on API consumers and keys, see API Consumers in our User Guide.
Content types
The Mambu Functions API will only accept JSON content. The format should be specified in the Content-Type
header with the value application/json
. 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.
Endpoints
Get all deployed Functions
Code samples
# You can also use wget
curl -X GET https://TENANT_NAME.mambu.com/api/mambu-functions \
-H 'Accept: application/vnd.mambu.v2+json'
GET https://TENANT_NAME.mambu.com/api/mambu-functions HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/vnd.mambu.v2+json
const headers = {
'Accept':'application/vnd.mambu.v2+json'
};
fetch('https://TENANT_NAME.mambu.com/api/mambu-functions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/vnd.mambu.v2+json'
}
result = RestClient.get 'https://TENANT_NAME.mambu.com/api/mambu-functions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/vnd.mambu.v2+json'
}
r = requests.get('https://TENANT_NAME.mambu.com/api/mambu-functions', headers = headers)
print(r.json())
'application/vnd.mambu.v2+json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_NAME.mambu.com/api/mambu-functions', 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/mambu-functions");
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/vnd.mambu.v2+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_NAME.mambu.com/api/mambu-functions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /mambu-functions
Gets a list of Mambu Functions, with optional filtering by extensionPointId
. This operation also supports pagination to help manage large lists.
Parameters
Name | Type | Description | In |
---|---|---|---|
extensionPointId | string | The ID of the Extension Point (for example, DEPOSIT_FEE_AMOUNT ). |
query |
offset | integer(int32) | For pagination this defines the start index to search from when getting elements and is used in combination with limit to paginate results. | query |
limit | integer(int32) | For pagination this defines the number of elements to get and is used in combination with offset to paginate results. | query |
paginationDetails | string | Flag specifying whether the pagination details should be provided in response headers. Please note that this is disabled (OFF ) by default. |
query |
Enumerated Values
Parameter | Value |
---|---|
paginationDetails | ON |
paginationDetails | OFF |
Example Responses
200 Response
[
{
"name": "my-func-1",
"state": "ACTIVE",
"version": "v1",
"lastModifiedDate": "2023-05-08T06:53:52Z",
"extensionPointId": "DEPOSIT_FEE_AMOUNT"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | Returned Mambu Functions | Inline |
400 |
Bad Request | Bad Request - Validation: This code is returned when there is malformed syntax in the request or incorrect data in the payload. | ErrorResponse |
401 |
Unauthorized | Unauthorized | ErrorResponse |
403 |
Forbidden | Forbidden | ErrorResponse |
Response Schema
Status Code 200
Name | Type | Description | Restrictions |
---|---|---|---|
anonymous | [MambuFunction] | [Represents a Mambu Function.] | none |
» name | string | The name of the Mambu Function. | none |
» state | string | The current state of the Mambu Function. | none |
» version | string | The version of the Mambu Function. | none |
» lastModifiedDate | string(date-time) | The last date the Mambu Function was updated (in UTC). | none |
» extensionPointId | string | The ID of the extension point | none |
Enumerated Values
Property | Value |
---|---|
state | CREATE_PENDING |
state | UPDATE_PENDING |
state | ACTIVE |
state | FAILED |
state | REMOVING |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Items-Offset |
integer | int32 | The index of the first returned item. |
200 | Items-Limit |
integer | int32 | The size of the requested list. |
200 | Items-Total |
integer | int32 | The total number of available items. |
Create Mambu Function
Code samples
# You can also use wget
curl -X POST https://TENANT_NAME.mambu.com/api/mambu-functions \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.mambu.v2+json' \
-H 'Content-Type: string'
POST https://TENANT_NAME.mambu.com/api/mambu-functions HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Content-Type: string
const inputBody = '{
"name": "my-func-1",
"extensionPointId": "DEPOSIT_FEE_AMOUNT",
"version": "v1",
"functionCode": {
"languageId": "es2020",
"code": "ZXhwb3J0cy5kZWZhdWx0ID0gYXN5bmMgZnVuY3Rpb24oaW5wdXQpIHsgCiAgcmV0dXJuIGlucHV0LnRvdGFsQmFsYW5jZSAqIDAuMDE7IAp9"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/vnd.mambu.v2+json',
'Content-Type':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/mambu-functions',
{
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/vnd.mambu.v2+json',
'Content-Type' => 'string'
}
result = RestClient.post 'https://TENANT_NAME.mambu.com/api/mambu-functions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/vnd.mambu.v2+json',
'Content-Type': 'string'
}
r = requests.post('https://TENANT_NAME.mambu.com/api/mambu-functions', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/vnd.mambu.v2+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/mambu-functions', 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/mambu-functions");
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/vnd.mambu.v2+json"},
"Content-Type": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_NAME.mambu.com/api/mambu-functions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /mambu-functions
This operation creates a new Mambu Function and returns the created Function, including its deployment state.
Depending on the outcome of this operation, the returned Function might be in one of these states:
State | Description |
---|---|
ACTIVE | Mambu Function has been successfully deployed and is ready to be used. |
CREATE_PENDING | Mambu Function has been queued for deployment. |
FAILED | Mambu Function deployment failed. |
Example Request
{
"name": "my-func-1",
"extensionPointId": "DEPOSIT_FEE_AMOUNT",
"version": "v1",
"functionCode": {
"languageId": "es2020",
"code": "ZXhwb3J0cy5kZWZhdWx0ID0gYXN5bmMgZnVuY3Rpb24oaW5wdXQpIHsgCiAgcmV0dXJuIGlucHV0LnRvdGFsQmFsYW5jZSAqIDAuMDE7IAp9"
}
}
Parameters
Name | Type | Description | In |
---|---|---|---|
Content-Type (required) | string | application/json | header |
body | CreateMambuFunction | Represents an action to create a Mambu Function. | body |
Example Responses
201 Response
{
"name": "my-func-1",
"state": "ACTIVE",
"version": "v1",
"lastModifiedDate": "2023-05-08T06:53:52Z",
"extensionPointId": "DEPOSIT_FEE_AMOUNT"
}
409 Response
{
"errors": [
{
"errorCode": 30000,
"errorSource": "A human-readable message",
"errorReason": "MFUNCTION_ALREADY_EXISTS"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 |
Created | Mambu Function created | MambuFunction |
400 |
Bad Request | Bad Request - Validation: This code is returned when there is malformed syntax in the request or incorrect data in the payload. | ErrorResponse |
401 |
Unauthorized | Unauthorized | ErrorResponse |
403 |
Forbidden | Forbidden | ErrorResponse |
409 |
Conflict | Conflict - Validation: This code is returned when there is another concurrent operation on the same function or the function with the same name already exists. | ErrorResponse |
Get Mambu Function
Code samples
# You can also use wget
curl -X GET https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName} \
-H 'Accept: application/vnd.mambu.v2+json'
GET https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName} HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/vnd.mambu.v2+json
const headers = {
'Accept':'application/vnd.mambu.v2+json'
};
fetch('https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/vnd.mambu.v2+json'
}
result = RestClient.get 'https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/vnd.mambu.v2+json'
}
r = requests.get('https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName}', headers = headers)
print(r.json())
'application/vnd.mambu.v2+json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName}', 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/mambu-functions/{functionName}");
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/vnd.mambu.v2+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /mambu-functions/{functionName}
Get the details of a specified Mambu Function, including its deployment state. You can use this operation to check a Function's deployment state.
Parameters
Name | Type | Description | In |
---|---|---|---|
functionName (required) | string | The name of the Function to fetch. | path |
Example Responses
200 Response
{
"name": "my-func-1",
"state": "ACTIVE",
"version": "v1",
"lastModifiedDate": "2023-05-08T06:53:52Z",
"extensionPointId": "DEPOSIT_FEE_AMOUNT"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | Mambu Function returned | MambuFunction |
400 |
Bad Request | Bad Request - Validation: This code is returned when there is malformed syntax in the request or incorrect data in the payload. | ErrorResponse |
401 |
Unauthorized | Unauthorized | ErrorResponse |
403 |
Forbidden | Forbidden | ErrorResponse |
404 |
Not Found | Mambu Function not found | ErrorResponse |
Update Mambu Function
Code samples
# You can also use wget
curl -X PUT https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName} \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.mambu.v2+json' \
-H 'Content-Type: string'
PUT https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName} HTTP/1.1
Host: tenant_name.mambu.com
Content-Type: application/json
Accept: application/vnd.mambu.v2+json
Content-Type: string
const inputBody = '{
"version": "v1",
"functionCode": {
"languageId": "es2020",
"code": "ZXhwb3J0cy5kZWZhdWx0ID0gYXN5bmMgZnVuY3Rpb24oaW5wdXQpIHsgCiAgcmV0dXJuIGlucHV0LnRvdGFsQmFsYW5jZSAqIDAuMDE7IAp9"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/vnd.mambu.v2+json',
'Content-Type':'string'
};
fetch('https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName}',
{
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/vnd.mambu.v2+json',
'Content-Type' => 'string'
}
result = RestClient.put 'https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/vnd.mambu.v2+json',
'Content-Type': 'string'
}
r = requests.put('https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName}', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/vnd.mambu.v2+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/mambu-functions/{functionName}', 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/mambu-functions/{functionName}");
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/vnd.mambu.v2+json"},
"Content-Type": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /mambu-functions/{functionName}
Updates an existing Mambu Function with the provided changes and returns the updated Function, including its deployment state.
Depending on the outcome of this operation, the returned Function might be in one of these states:
State | Description |
---|---|
ACTIVE | Mambu Function has been successfully deployed and is ready to be used. |
UPDATE_PENDING | Mambu Function has been queued for deployment. |
FAILED | Mambu Function deployment failed. |
Example Request
{
"version": "v1",
"functionCode": {
"languageId": "es2020",
"code": "ZXhwb3J0cy5kZWZhdWx0ID0gYXN5bmMgZnVuY3Rpb24oaW5wdXQpIHsgCiAgcmV0dXJuIGlucHV0LnRvdGFsQmFsYW5jZSAqIDAuMDE7IAp9"
}
}
Parameters
Name | Type | Description | In |
---|---|---|---|
Content-Type (required) | string | application/json | header |
functionName (required) | string | The name of the Function to be updated. | path |
body | UpdateMambuFunction | Represents an action to update a Mambu Function. | body |
Example Responses
200 Response
{
"name": "my-func-1",
"state": "ACTIVE",
"version": "v1",
"lastModifiedDate": "2023-05-08T06:53:52Z",
"extensionPointId": "DEPOSIT_FEE_AMOUNT"
}
409 Response
{
"errors": [
{
"errorCode": 30003,
"errorSource": "A human-readable message",
"errorReason": "MFUNCTION_OPERATION_IN_PROGRESS"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 |
OK | Mambu Function updated | MambuFunction |
400 |
Bad Request | Bad Request - Validation: This code is returned when there is malformed syntax in the request or incorrect data in the payload. | ErrorResponse |
401 |
Unauthorized | Unauthorized | ErrorResponse |
403 |
Forbidden | Forbidden | ErrorResponse |
404 |
Not Found | Mambu Function not found | ErrorResponse |
409 |
Conflict | Conflict - Validation: This code is returned when there is another concurrent operation on the same function. | ErrorResponse |
Delete Mambu Function
Code samples
# You can also use wget
curl -X DELETE https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName} \
-H 'Accept: application/vnd.mambu.v2+json'
DELETE https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName} HTTP/1.1
Host: tenant_name.mambu.com
Accept: application/vnd.mambu.v2+json
const headers = {
'Accept':'application/vnd.mambu.v2+json'
};
fetch('https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/vnd.mambu.v2+json'
}
result = RestClient.delete 'https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/vnd.mambu.v2+json'
}
r = requests.delete('https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName}', headers = headers)
print(r.json())
'application/vnd.mambu.v2+json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName}', 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/mambu-functions/{functionName}");
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/vnd.mambu.v2+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://TENANT_NAME.mambu.com/api/mambu-functions/{functionName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /mambu-functions/{functionName}
Schedules the specified Mambu Function for removal, provided that it is not already bound to a product. The actual removal will happen after 24 hours.
If the removal is scheduled successfully, the Function will be in the REMOVING state. If the removal fails after the grace period the state will change to FAILED.
Parameters
Name | Type | Description | In |
---|---|---|---|
functionName (required) | string | The name of the function to be deleted. | path |
Example Responses
400 Response
{
"errors": [
{
"errorCode": 30002,
"errorSource": "A human-readable message",
"errorReason": "MFUNCTION_INTERNAL_ERROR"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 |
No Content | Mambu Function deleted. | None |
400 |
Bad Request | Bad Request - Validation: This code is returned when there is malformed syntax in the request or incorrect data in the payload. | ErrorResponse |
401 |
Unauthorized | Unauthorized | ErrorResponse |
403 |
Forbidden | Forbidden | ErrorResponse |
404 |
Not Found | Mambu Function not found | ErrorResponse |
Schemas
MambuFunction
{
"name": "my-func-1",
"state": "ACTIVE",
"version": "v1",
"lastModifiedDate": "2023-05-08T06:53:52Z",
"extensionPointId": "DEPOSIT_FEE_AMOUNT"
}
Represents a Mambu Function.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
name | string | The name of the Mambu Function. | none |
state | string | The current state of the Mambu Function. | none |
version | string | The version of the Mambu Function. | none |
lastModifiedDate | string(date-time) | The last date the Mambu Function was updated (in UTC). | none |
extensionPointId | string | The ID of the extension point | none |
Enumerated Values
Property | Value |
---|---|
state | CREATE_PENDING |
state | UPDATE_PENDING |
state | ACTIVE |
state | FAILED |
state | REMOVING |
ErrorResponse
{
"errors": [
{
"errorCode": 30002,
"errorSource": "A human-readable message",
"errorReason": "MFUNCTION_INTERNAL_ERROR"
}
]
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
errors | [array] | none | none |
RestError
{
"errorCode": 0,
"errorReason": "INVALID_BASIC_AUTHORIZATION",
"errorSource": "string"
}
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
errorCode | number | A unique error code. For more information, see API Responses and Error Codes. | none |
errorReason | string | A human-readable message capturing unsatisfied constraints. | none |
errorSource | string | A human-readable message stating the general category of the failure. | none |
Enumerated Values
Property | Value |
---|---|
errorReason | INVALID_BASIC_AUTHORIZATION |
errorReason | INVALID_API_OPERATION |
errorReason | INVALID_PARAMETERS |
errorReason | INTERNAL_ERROR |
errorReason | INVALID_TENANT_ID |
errorReason | INVALID_PAGINATION_OFFSET_VALUE |
errorReason | OUT_OF_BOUNDS_PAGINATION_OFFSET_VALUE |
errorReason | INVALID_PAGINATION_LIMIT_VALUE |
errorReason | OUT_OF_BOUNDS_PAGINATION_LIMIT_VALUE |
errorReason | INVALID_PERMISSIONS |
errorReason | INVALID_JSON_SYNTAX |
errorReason | OBJECT_NOT_FOUND |
errorReason | MFUNCTION_ALREADY_EXISTS |
errorReason | MFUNCTION_SERVICE_NOT_READY |
errorReason | MFUNCTION_INTERNAL_ERROR |
errorReason | MFUNCTION_OPERATION_IN_PROGRESS |
errorReason | MFUNCTION_MAX_FUNCTION_COUNT_LIMIT_REACHED |
errorReason | MFUNCTION_INTERNAL_LIMIT_REACHED |
errorReason | MFUNCTION_UNSUPPORTED_EXTENSION_POINT |
errorReason | MFUNCTION_MAPPED_FUNCTION_CANNOT_BE_DELETED |
CreateMambuFunction
{
"name": "my-func-1",
"extensionPointId": "DEPOSIT_FEE_AMOUNT",
"version": "v1",
"functionCode": {
"languageId": "es2020",
"code": "ZXhwb3J0cy5kZWZhdWx0ID0gYXN5bmMgZnVuY3Rpb24oaW5wdXQpIHsgCiAgcmV0dXJuIGlucHV0LnRvdGFsQmFsYW5jZSAqIDAuMDE7IAp9"
}
}
Represents an action to create a Mambu Function.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
name | string | The name of the Mambu Function. | none |
extensionPointId | string | The ID of the extension point | none |
version | string | The version of the Mambu Function. | none |
functionCode | MambuFunctionCode | Represents a Mambu Function's code. | none |
MambuFunctionCode
{
"languageId": "es2020",
"code": "ZXhwb3J0cy5kZWZhdWx0ID0gYXN5bmMgZnVuY3Rpb24oaW5wdXQpIHsgCiAgcmV0dXJuIGlucHV0LnRvdGFsQmFsYW5jZSAqIDAuMzsgCn0="
}
Represents a Mambu Function's code.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
languageId | string | The programming language used in the Mambu Function. | none |
code | string(byte) | The base-64 encoded code of the Mambu Function. | none |
Enumerated Values
Property | Value |
---|---|
languageId | es2020 |
UpdateMambuFunction
{
"version": "v1",
"functionCode": {
"languageId": "es2020",
"code": "ZXhwb3J0cy5kZWZhdWx0ID0gYXN5bmMgZnVuY3Rpb24oaW5wdXQpIHsgCiAgcmV0dXJuIGlucHV0LnRvdGFsQmFsYW5jZSAqIDAuMDE7IAp9"
}
}
Represents an action to update a Mambu Function.
Properties
Name | Type | Description | Restrictions |
---|---|---|---|
version | string | The version of the Mambu Function. | none |
functionCode | MambuFunctionCode | Represents a Mambu Function's code. | none |