curl --request POST \
--url https://api.example.com/submerchants \
--header 'ApiKey: <apikey>' \
--header 'Content-Type: application/json' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>' \
--data '
{
"name": "Submerchant Name",
"description": "Submerchant description",
"address": "123 Main St",
"zipcode": "12345",
"city": "New York",
"phoneNumber": "+1234567890",
"legalInfo": {
"legalName": "<string>",
"headOfficeAddress": "<string>",
"businessActivity": "<string>",
"managerName": "<string>",
"websiteURL": "<string>",
"isBetting": true,
"isCrypto": true,
"isNGO": true
}
}
'import requests
url = "https://api.example.com/submerchants"
payload = {
"name": "Submerchant Name",
"description": "Submerchant description",
"address": "123 Main St",
"zipcode": "12345",
"city": "New York",
"phoneNumber": "+1234567890",
"legalInfo": {
"legalName": "<string>",
"headOfficeAddress": "<string>",
"businessActivity": "<string>",
"managerName": "<string>",
"websiteURL": "<string>",
"isBetting": True,
"isCrypto": True,
"isNGO": True
}
}
headers = {
"ApiKey": "<apikey>",
"MerchantId": "<merchantid>",
"Environment": "<environment>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
ApiKey: '<apikey>',
MerchantId: '<merchantid>',
Environment: '<environment>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Submerchant Name',
description: 'Submerchant description',
address: '123 Main St',
zipcode: '12345',
city: 'New York',
phoneNumber: '+1234567890',
legalInfo: {
legalName: '<string>',
headOfficeAddress: '<string>',
businessActivity: '<string>',
managerName: '<string>',
websiteURL: '<string>',
isBetting: true,
isCrypto: true,
isNGO: true
}
})
};
fetch('https://api.example.com/submerchants', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/submerchants",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Submerchant Name',
'description' => 'Submerchant description',
'address' => '123 Main St',
'zipcode' => '12345',
'city' => 'New York',
'phoneNumber' => '+1234567890',
'legalInfo' => [
'legalName' => '<string>',
'headOfficeAddress' => '<string>',
'businessActivity' => '<string>',
'managerName' => '<string>',
'websiteURL' => '<string>',
'isBetting' => true,
'isCrypto' => true,
'isNGO' => true
]
]),
CURLOPT_HTTPHEADER => [
"ApiKey: <apikey>",
"Content-Type: application/json",
"Environment: <environment>",
"MerchantId: <merchantid>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/submerchants"
payload := strings.NewReader("{\n \"name\": \"Submerchant Name\",\n \"description\": \"Submerchant description\",\n \"address\": \"123 Main St\",\n \"zipcode\": \"12345\",\n \"city\": \"New York\",\n \"phoneNumber\": \"+1234567890\",\n \"legalInfo\": {\n \"legalName\": \"<string>\",\n \"headOfficeAddress\": \"<string>\",\n \"businessActivity\": \"<string>\",\n \"managerName\": \"<string>\",\n \"websiteURL\": \"<string>\",\n \"isBetting\": true,\n \"isCrypto\": true,\n \"isNGO\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("ApiKey", "<apikey>")
req.Header.Add("MerchantId", "<merchantid>")
req.Header.Add("Environment", "<environment>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/submerchants")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Submerchant Name\",\n \"description\": \"Submerchant description\",\n \"address\": \"123 Main St\",\n \"zipcode\": \"12345\",\n \"city\": \"New York\",\n \"phoneNumber\": \"+1234567890\",\n \"legalInfo\": {\n \"legalName\": \"<string>\",\n \"headOfficeAddress\": \"<string>\",\n \"businessActivity\": \"<string>\",\n \"managerName\": \"<string>\",\n \"websiteURL\": \"<string>\",\n \"isBetting\": true,\n \"isCrypto\": true,\n \"isNGO\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/submerchants")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["ApiKey"] = '<apikey>'
request["MerchantId"] = '<merchantid>'
request["Environment"] = '<environment>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Submerchant Name\",\n \"description\": \"Submerchant description\",\n \"address\": \"123 Main St\",\n \"zipcode\": \"12345\",\n \"city\": \"New York\",\n \"phoneNumber\": \"+1234567890\",\n \"legalInfo\": {\n \"legalName\": \"<string>\",\n \"headOfficeAddress\": \"<string>\",\n \"businessActivity\": \"<string>\",\n \"managerName\": \"<string>\",\n \"websiteURL\": \"<string>\",\n \"isBetting\": true,\n \"isCrypto\": true,\n \"isNGO\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "mch_1a2b3c",
"createdAt": "2026-08-13T09:00:00.000Z",
"name": "Submerchant Name",
"defaultCurrency": "XOF",
"status": "closed",
"isActive": true,
"isAggregator": true,
"members": [
"<string>"
],
"activity": "compliance",
"description": "<string>",
"address": "<string>",
"zipcode": "<string>",
"city": "<string>",
"phoneNumber": "<string>",
"country": "CI",
"preferences": {},
"internalCode": "<string>",
"merchantGroupId": "<string>",
"details": {},
"enabledProducts": [
"<string>"
],
"legalInfo": {
"legalName": "<string>",
"headOfficeAddress": "<string>",
"businessActivity": "<string>",
"managerName": "<string>",
"websiteURL": "<string>",
"isBetting": true,
"isCrypto": true,
"isNGO": true
}
}{
"status": 400,
"code": "wrong_provider",
"message": "Provider 'unknown_provider' does not exist for country 'CI' and method 'mobile_money'.",
"request_id": "<string>"
}{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}{
"httpStatus": 404,
"message": "X not found",
"error": "Not found"
}{
"type": "internal_error",
"code": [
"internal_error",
"wrong_credentials",
"not_granted",
"live_mode_not_granted"
],
"message": "An error occurred on our system. Please try again later."
}Create a submerchant
curl --request POST \
--url https://api.example.com/submerchants \
--header 'ApiKey: <apikey>' \
--header 'Content-Type: application/json' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>' \
--data '
{
"name": "Submerchant Name",
"description": "Submerchant description",
"address": "123 Main St",
"zipcode": "12345",
"city": "New York",
"phoneNumber": "+1234567890",
"legalInfo": {
"legalName": "<string>",
"headOfficeAddress": "<string>",
"businessActivity": "<string>",
"managerName": "<string>",
"websiteURL": "<string>",
"isBetting": true,
"isCrypto": true,
"isNGO": true
}
}
'import requests
url = "https://api.example.com/submerchants"
payload = {
"name": "Submerchant Name",
"description": "Submerchant description",
"address": "123 Main St",
"zipcode": "12345",
"city": "New York",
"phoneNumber": "+1234567890",
"legalInfo": {
"legalName": "<string>",
"headOfficeAddress": "<string>",
"businessActivity": "<string>",
"managerName": "<string>",
"websiteURL": "<string>",
"isBetting": True,
"isCrypto": True,
"isNGO": True
}
}
headers = {
"ApiKey": "<apikey>",
"MerchantId": "<merchantid>",
"Environment": "<environment>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
ApiKey: '<apikey>',
MerchantId: '<merchantid>',
Environment: '<environment>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Submerchant Name',
description: 'Submerchant description',
address: '123 Main St',
zipcode: '12345',
city: 'New York',
phoneNumber: '+1234567890',
legalInfo: {
legalName: '<string>',
headOfficeAddress: '<string>',
businessActivity: '<string>',
managerName: '<string>',
websiteURL: '<string>',
isBetting: true,
isCrypto: true,
isNGO: true
}
})
};
fetch('https://api.example.com/submerchants', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/submerchants",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Submerchant Name',
'description' => 'Submerchant description',
'address' => '123 Main St',
'zipcode' => '12345',
'city' => 'New York',
'phoneNumber' => '+1234567890',
'legalInfo' => [
'legalName' => '<string>',
'headOfficeAddress' => '<string>',
'businessActivity' => '<string>',
'managerName' => '<string>',
'websiteURL' => '<string>',
'isBetting' => true,
'isCrypto' => true,
'isNGO' => true
]
]),
CURLOPT_HTTPHEADER => [
"ApiKey: <apikey>",
"Content-Type: application/json",
"Environment: <environment>",
"MerchantId: <merchantid>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/submerchants"
payload := strings.NewReader("{\n \"name\": \"Submerchant Name\",\n \"description\": \"Submerchant description\",\n \"address\": \"123 Main St\",\n \"zipcode\": \"12345\",\n \"city\": \"New York\",\n \"phoneNumber\": \"+1234567890\",\n \"legalInfo\": {\n \"legalName\": \"<string>\",\n \"headOfficeAddress\": \"<string>\",\n \"businessActivity\": \"<string>\",\n \"managerName\": \"<string>\",\n \"websiteURL\": \"<string>\",\n \"isBetting\": true,\n \"isCrypto\": true,\n \"isNGO\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("ApiKey", "<apikey>")
req.Header.Add("MerchantId", "<merchantid>")
req.Header.Add("Environment", "<environment>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/submerchants")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Submerchant Name\",\n \"description\": \"Submerchant description\",\n \"address\": \"123 Main St\",\n \"zipcode\": \"12345\",\n \"city\": \"New York\",\n \"phoneNumber\": \"+1234567890\",\n \"legalInfo\": {\n \"legalName\": \"<string>\",\n \"headOfficeAddress\": \"<string>\",\n \"businessActivity\": \"<string>\",\n \"managerName\": \"<string>\",\n \"websiteURL\": \"<string>\",\n \"isBetting\": true,\n \"isCrypto\": true,\n \"isNGO\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/submerchants")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["ApiKey"] = '<apikey>'
request["MerchantId"] = '<merchantid>'
request["Environment"] = '<environment>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Submerchant Name\",\n \"description\": \"Submerchant description\",\n \"address\": \"123 Main St\",\n \"zipcode\": \"12345\",\n \"city\": \"New York\",\n \"phoneNumber\": \"+1234567890\",\n \"legalInfo\": {\n \"legalName\": \"<string>\",\n \"headOfficeAddress\": \"<string>\",\n \"businessActivity\": \"<string>\",\n \"managerName\": \"<string>\",\n \"websiteURL\": \"<string>\",\n \"isBetting\": true,\n \"isCrypto\": true,\n \"isNGO\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "mch_1a2b3c",
"createdAt": "2026-08-13T09:00:00.000Z",
"name": "Submerchant Name",
"defaultCurrency": "XOF",
"status": "closed",
"isActive": true,
"isAggregator": true,
"members": [
"<string>"
],
"activity": "compliance",
"description": "<string>",
"address": "<string>",
"zipcode": "<string>",
"city": "<string>",
"phoneNumber": "<string>",
"country": "CI",
"preferences": {},
"internalCode": "<string>",
"merchantGroupId": "<string>",
"details": {},
"enabledProducts": [
"<string>"
],
"legalInfo": {
"legalName": "<string>",
"headOfficeAddress": "<string>",
"businessActivity": "<string>",
"managerName": "<string>",
"websiteURL": "<string>",
"isBetting": true,
"isCrypto": true,
"isNGO": true
}
}{
"status": 400,
"code": "wrong_provider",
"message": "Provider 'unknown_provider' does not exist for country 'CI' and method 'mobile_money'.",
"request_id": "<string>"
}{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}{
"httpStatus": 404,
"message": "X not found",
"error": "Not found"
}{
"type": "internal_error",
"code": [
"internal_error",
"wrong_credentials",
"not_granted",
"live_mode_not_granted"
],
"message": "An error occurred on our system. Please try again later."
}Headers
Your api key. To create a key, please get into our dashboard. If you don't have access to it, please reach the Support team.
Your merchant ID. This information is available in our dashboard. If you don't have access to it, please reach the Support team.
Allow you to choose between the sandbox mode to perform some tests or the live mode for real world transactions.
live, sandbox Body
Name of the submerchant
"Submerchant Name"
Description of the submerchant
"Submerchant description"
Address of the submerchant
"123 Main St"
Zipcode of the submerchant
"12345"
City of the submerchant
"New York"
Phone number of the submerchant
"+1234567890"
Legal info of the submerchant
Show child attributes
Show child attributes
Response
Submerchant created successfully
Identifier of the merchant
"mch_1a2b3c"
Creation date of the merchant, ISO 8601
"2026-08-13T09:00:00.000Z"
Name of the merchant
"Submerchant Name"
Default currency of the merchant, ISO 4217
"XOF"
Status of the merchant
closed, live, sandbox, suspended, testing, initialized Whether the merchant is active
Whether the merchant is an aggregator
Identifiers of the users that are members of the merchant
Activity of the merchant
compliance, inactive_30_days, inactive_90_days, low_performer, newcomer, top_performer, watch_list Description of the merchant
Address of the merchant
Zipcode of the merchant
City of the merchant
Phone number of the merchant
Country of the merchant, ISO 3166-1 alpha-2
"CI"
Preferences of the merchant
Internal code of the merchant
Identifier of the group the merchant belongs to
Additional details of the merchant
Products enabled for the merchant
Legal info of the submerchant
Show child attributes
Show child attributes
