curl --request POST \
--url https://api.example.com/provisionings \
--header 'ApiKey: <apikey>' \
--header 'Content-Type: application/json' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>' \
--data '
{
"amount": 100,
"currency": "XOF",
"description": "<string>"
}
'import requests
url = "https://api.example.com/provisionings"
payload = {
"amount": 100,
"currency": "XOF",
"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: 100, currency: 'XOF', description: '<string>'})
};
fetch('https://api.example.com/provisionings', 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/provisionings",
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' => 100,
'currency' => 'XOF',
'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/provisionings"
payload := strings.NewReader("{\n \"amount\": 100,\n \"currency\": \"XOF\",\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/provisionings")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 100,\n \"currency\": \"XOF\",\n \"description\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/provisionings")
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\": 100,\n \"currency\": \"XOF\",\n \"description\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "prov_z1urYtVFgEebtcj8fxp4v",
"status": "pending",
"date": "2020-10-15T12:09:49.355Z",
"description": "<string>",
"withdrawal": {
"id": "wtd_z1urYtVFgEebtcj8fxp4v",
"type": "withdrawal",
"date": "2020-10-15T12:09:49.355Z",
"amount": 100,
"currency": "XOF"
},
"deposit": {
"id": "dep_z1urYtVFgEebtcj8fxp4v",
"type": "deposit",
"date": "2020-10-15T12:09:49.355Z",
"amount": 100,
"currency": "XOF"
},
"failureCause": {}
}{
"id": "prov_z1urYtVFgEebtcj8fxp4v",
"status": "pending",
"date": "2020-10-15T12:09:49.355Z",
"description": "<string>",
"withdrawal": {
"id": "wtd_z1urYtVFgEebtcj8fxp4v",
"type": "withdrawal",
"date": "2020-10-15T12:09:49.355Z",
"amount": 100,
"currency": "XOF"
},
"deposit": {
"id": "dep_z1urYtVFgEebtcj8fxp4v",
"type": "deposit",
"date": "2020-10-15T12:09:49.355Z",
"amount": 100,
"currency": "XOF"
},
"failureCause": {}
}{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}{
"httpStatus": 409,
"type": "invalid_request",
"code": "unsupported_action",
"message": "This action is not supported"
}{
"type": "internal_error",
"code": [
"internal_error",
"wrong_credentials",
"not_granted",
"live_mode_not_granted",
"invalid_sandbox_msisdn",
"invalid_url",
"orange_invalid_url",
"wrong_provider",
"override_business_name",
"do_not_override_business_name"
],
"message": "An error occurred on our system. Please try again later."
}Create a Provisioning
Move funds from merchant’s collection account to transfer account
curl --request POST \
--url https://api.example.com/provisionings \
--header 'ApiKey: <apikey>' \
--header 'Content-Type: application/json' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>' \
--data '
{
"amount": 100,
"currency": "XOF",
"description": "<string>"
}
'import requests
url = "https://api.example.com/provisionings"
payload = {
"amount": 100,
"currency": "XOF",
"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: 100, currency: 'XOF', description: '<string>'})
};
fetch('https://api.example.com/provisionings', 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/provisionings",
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' => 100,
'currency' => 'XOF',
'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/provisionings"
payload := strings.NewReader("{\n \"amount\": 100,\n \"currency\": \"XOF\",\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/provisionings")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 100,\n \"currency\": \"XOF\",\n \"description\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/provisionings")
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\": 100,\n \"currency\": \"XOF\",\n \"description\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "prov_z1urYtVFgEebtcj8fxp4v",
"status": "pending",
"date": "2020-10-15T12:09:49.355Z",
"description": "<string>",
"withdrawal": {
"id": "wtd_z1urYtVFgEebtcj8fxp4v",
"type": "withdrawal",
"date": "2020-10-15T12:09:49.355Z",
"amount": 100,
"currency": "XOF"
},
"deposit": {
"id": "dep_z1urYtVFgEebtcj8fxp4v",
"type": "deposit",
"date": "2020-10-15T12:09:49.355Z",
"amount": 100,
"currency": "XOF"
},
"failureCause": {}
}{
"id": "prov_z1urYtVFgEebtcj8fxp4v",
"status": "pending",
"date": "2020-10-15T12:09:49.355Z",
"description": "<string>",
"withdrawal": {
"id": "wtd_z1urYtVFgEebtcj8fxp4v",
"type": "withdrawal",
"date": "2020-10-15T12:09:49.355Z",
"amount": 100,
"currency": "XOF"
},
"deposit": {
"id": "dep_z1urYtVFgEebtcj8fxp4v",
"type": "deposit",
"date": "2020-10-15T12:09:49.355Z",
"amount": 100,
"currency": "XOF"
},
"failureCause": {}
}{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}{
"httpStatus": 409,
"type": "invalid_request",
"code": "unsupported_action",
"message": "This action is not supported"
}{
"type": "internal_error",
"code": [
"internal_error",
"wrong_credentials",
"not_granted",
"live_mode_not_granted",
"invalid_sandbox_msisdn",
"invalid_url",
"orange_invalid_url",
"wrong_provider",
"override_business_name",
"do_not_override_business_name"
],
"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
Amount intended to be moved from CollectionAccount to TransferAccount. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge €1.00 or 100 to charge FCFA100, a zero-decimal currency).
100
Three-letter ISO currency code.
"XOF"
An arbitrary string attached to the Transfer. Mostly useful for displaying to user.
Response
Unique identifier for the Provisioning
"prov_z1urYtVFgEebtcj8fxp4v"
Type of this Transaction
"pending"
Datetime in UTC timezone at which this object was created. Follows the Datetime ISO.
"2020-10-15T12:09:49.355Z"
An arbitrary string attached to the Transfer. Mostly useful for displaying to user.
Transaction executed on the merchant collectionAccount
Show child attributes
Show child attributes
Transaction executed on the merchant transferAccount
Show child attributes
Show child attributes
Failure cause explaining why the Provisioning failed.
