curl --request POST \
--url https://api.example.com/deposits \
--header 'ApiKey: <apikey>' \
--header 'Content-Type: application/json' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>' \
--data '
{
"amount": 1000,
"currency": "XOF",
"accountType": "transfer",
"method": {
"type": "bank_transfer",
"hub2Iban": "FR7630006000011234567890189"
},
"description": "<string>"
}
'import requests
url = "https://api.example.com/deposits"
payload = {
"amount": 1000,
"currency": "XOF",
"accountType": "transfer",
"method": {
"type": "bank_transfer",
"hub2Iban": "FR7630006000011234567890189"
},
"description": "<string>"
}
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({
amount: 1000,
currency: 'XOF',
accountType: 'transfer',
method: {type: 'bank_transfer', hub2Iban: 'FR7630006000011234567890189'},
description: '<string>'
})
};
fetch('https://api.example.com/deposits', 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/deposits",
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([
'amount' => 1000,
'currency' => 'XOF',
'accountType' => 'transfer',
'method' => [
'type' => 'bank_transfer',
'hub2Iban' => 'FR7630006000011234567890189'
],
'description' => '<string>'
]),
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/deposits"
payload := strings.NewReader("{\n \"amount\": 1000,\n \"currency\": \"XOF\",\n \"accountType\": \"transfer\",\n \"method\": {\n \"type\": \"bank_transfer\",\n \"hub2Iban\": \"FR7630006000011234567890189\"\n },\n \"description\": \"<string>\"\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/deposits")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 1000,\n \"currency\": \"XOF\",\n \"accountType\": \"transfer\",\n \"method\": {\n \"type\": \"bank_transfer\",\n \"hub2Iban\": \"FR7630006000011234567890189\"\n },\n \"description\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/deposits")
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 \"amount\": 1000,\n \"currency\": \"XOF\",\n \"accountType\": \"transfer\",\n \"method\": {\n \"type\": \"bank_transfer\",\n \"hub2Iban\": \"FR7630006000011234567890189\"\n },\n \"description\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"merchantId": "<string>",
"merchantAccountId": "<string>",
"matchingCode": "<string>",
"amount": 123,
"currency": "<string>",
"accountType": "collection",
"method": {
"type": "bank_transfer",
"hub2Iban": "FR7630006000011234567890189",
"country": "FR",
"provider": "ecobank"
},
"status": "created",
"statusDetails": "waiting_provider",
"mode": "live",
"fees": [
{}
],
"createdAt": "<string>",
"createdBy": "<string>",
"updatedAt": "<string>",
"merchantName": "<string>",
"description": "<string>",
"failureCause": {},
"nextAction": {},
"legalData": {
"proofDocuments": [
"<string>"
]
}
}{
"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."
}
}{
"status": 403,
"error": {
"statusCode": 403,
"message": "Forbidden",
"error": "<string>"
}
}{
"httpStatus": 409,
"type": "invalid_request",
"code": "unsupported_action",
"message": "This action is not supported"
}{
"status": 429,
"error": "ThrottlerException: Too Many Requests"
}{
"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 deposit
This endpoint allows you to create a deposit.
curl --request POST \
--url https://api.example.com/deposits \
--header 'ApiKey: <apikey>' \
--header 'Content-Type: application/json' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>' \
--data '
{
"amount": 1000,
"currency": "XOF",
"accountType": "transfer",
"method": {
"type": "bank_transfer",
"hub2Iban": "FR7630006000011234567890189"
},
"description": "<string>"
}
'import requests
url = "https://api.example.com/deposits"
payload = {
"amount": 1000,
"currency": "XOF",
"accountType": "transfer",
"method": {
"type": "bank_transfer",
"hub2Iban": "FR7630006000011234567890189"
},
"description": "<string>"
}
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({
amount: 1000,
currency: 'XOF',
accountType: 'transfer',
method: {type: 'bank_transfer', hub2Iban: 'FR7630006000011234567890189'},
description: '<string>'
})
};
fetch('https://api.example.com/deposits', 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/deposits",
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([
'amount' => 1000,
'currency' => 'XOF',
'accountType' => 'transfer',
'method' => [
'type' => 'bank_transfer',
'hub2Iban' => 'FR7630006000011234567890189'
],
'description' => '<string>'
]),
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/deposits"
payload := strings.NewReader("{\n \"amount\": 1000,\n \"currency\": \"XOF\",\n \"accountType\": \"transfer\",\n \"method\": {\n \"type\": \"bank_transfer\",\n \"hub2Iban\": \"FR7630006000011234567890189\"\n },\n \"description\": \"<string>\"\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/deposits")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 1000,\n \"currency\": \"XOF\",\n \"accountType\": \"transfer\",\n \"method\": {\n \"type\": \"bank_transfer\",\n \"hub2Iban\": \"FR7630006000011234567890189\"\n },\n \"description\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/deposits")
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 \"amount\": 1000,\n \"currency\": \"XOF\",\n \"accountType\": \"transfer\",\n \"method\": {\n \"type\": \"bank_transfer\",\n \"hub2Iban\": \"FR7630006000011234567890189\"\n },\n \"description\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"merchantId": "<string>",
"merchantAccountId": "<string>",
"matchingCode": "<string>",
"amount": 123,
"currency": "<string>",
"accountType": "collection",
"method": {
"type": "bank_transfer",
"hub2Iban": "FR7630006000011234567890189",
"country": "FR",
"provider": "ecobank"
},
"status": "created",
"statusDetails": "waiting_provider",
"mode": "live",
"fees": [
{}
],
"createdAt": "<string>",
"createdBy": "<string>",
"updatedAt": "<string>",
"merchantName": "<string>",
"description": "<string>",
"failureCause": {},
"nextAction": {},
"legalData": {
"proofDocuments": [
"<string>"
]
}
}{
"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."
}
}{
"status": 403,
"error": {
"statusCode": 403,
"message": "Forbidden",
"error": "<string>"
}
}{
"httpStatus": 409,
"type": "invalid_request",
"code": "unsupported_action",
"message": "This action is not supported"
}{
"status": 429,
"error": "ThrottlerException: Too Many Requests"
}{
"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
The amount to deposit
1000
The currency of the deposit
"XOF"
The account type to deposit funds on. Only TRANSFER, TRANSFER_IRT and CROSS_BORDER are allowed for deposits.
transfer, transfer-irt, cross-border Informations about HUB2 account
Show child attributes
Show child attributes
Description of the deposit
300Response
Unique identifier for the deposit
Merchant identifier
Merchant account identifier
Reference to use for the bank transfer
Amount of the deposit
Currency of the deposit (ISO 4217 format)
Type of merchant account
collection, transfer, transfer-irt, delegated, cross-border Method used for the deposit
Show child attributes
Show child attributes
Status of the deposit
created, failed, pending, successful Status details of the deposit
waiting_provider, waiting_proof, unverified, verified, mismatch Application mode (e.g., live or sandbox)
live, sandbox List of fees associated with the deposit
Date and time when the deposit was created
User id or merchant id who created the deposit
Date and time when the deposit was last updated
Merchant display name
Description of the deposit
300Optional failure cause details
Next action required, if any
Legal data of the deposit
Show child attributes
Show child attributes
