Creer un lien de paiement
curl --request POST \
--url https://api.mysoleas.com/payment-links \
--header 'Content-Type: application/json' \
--header 'x-sp-auth-token: <api-key>' \
--data '
{
"currency": "XAF",
"amount": 123,
"provider": "mtn_cmr",
"customerPaysFees": true,
"customer_pays_fees": true,
"title": "<string>",
"description": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"max_usage": 2,
"metadata": {},
"amount_unit": "MAJOR"
}
'import requests
url = "https://api.mysoleas.com/payment-links"
payload = {
"currency": "XAF",
"amount": 123,
"provider": "mtn_cmr",
"customerPaysFees": True,
"customer_pays_fees": True,
"title": "<string>",
"description": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"max_usage": 2,
"metadata": {},
"amount_unit": "MAJOR"
}
headers = {
"x-sp-auth-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-sp-auth-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
currency: 'XAF',
amount: 123,
provider: 'mtn_cmr',
customerPaysFees: true,
customer_pays_fees: true,
title: '<string>',
description: '<string>',
expires_at: '2023-11-07T05:31:56Z',
max_usage: 2,
metadata: {},
amount_unit: 'MAJOR'
})
};
fetch('https://api.mysoleas.com/payment-links', 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.mysoleas.com/payment-links",
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([
'currency' => 'XAF',
'amount' => 123,
'provider' => 'mtn_cmr',
'customerPaysFees' => true,
'customer_pays_fees' => true,
'title' => '<string>',
'description' => '<string>',
'expires_at' => '2023-11-07T05:31:56Z',
'max_usage' => 2,
'metadata' => [
],
'amount_unit' => 'MAJOR'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-sp-auth-token: <api-key>"
],
]);
$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.mysoleas.com/payment-links"
payload := strings.NewReader("{\n \"currency\": \"XAF\",\n \"amount\": 123,\n \"provider\": \"mtn_cmr\",\n \"customerPaysFees\": true,\n \"customer_pays_fees\": true,\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"max_usage\": 2,\n \"metadata\": {},\n \"amount_unit\": \"MAJOR\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-sp-auth-token", "<api-key>")
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.mysoleas.com/payment-links")
.header("x-sp-auth-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"currency\": \"XAF\",\n \"amount\": 123,\n \"provider\": \"mtn_cmr\",\n \"customerPaysFees\": true,\n \"customer_pays_fees\": true,\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"max_usage\": 2,\n \"metadata\": {},\n \"amount_unit\": \"MAJOR\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mysoleas.com/payment-links")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-sp-auth-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"currency\": \"XAF\",\n \"amount\": 123,\n \"provider\": \"mtn_cmr\",\n \"customerPaysFees\": true,\n \"customer_pays_fees\": true,\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"max_usage\": 2,\n \"metadata\": {},\n \"amount_unit\": \"MAJOR\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"success": true,
"locale": "fr",
"message": "<string>",
"meta": {},
"data": {
"reference": "<string>",
"short_code": "<string>",
"payment_url": "<string>",
"status": "ACTIVE",
"amount": 123,
"currency": "<string>",
"title": "<string>",
"description": "<string>",
"expires_at": "<string>",
"created_at": "<string>"
}
}{
"success": false,
"code": 400,
"message": "empty_data",
"error": {
"details": {}
}
}Liens de paiement
Creer un lien de paiement
POST
/
payment-links
Creer un lien de paiement
curl --request POST \
--url https://api.mysoleas.com/payment-links \
--header 'Content-Type: application/json' \
--header 'x-sp-auth-token: <api-key>' \
--data '
{
"currency": "XAF",
"amount": 123,
"provider": "mtn_cmr",
"customerPaysFees": true,
"customer_pays_fees": true,
"title": "<string>",
"description": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"max_usage": 2,
"metadata": {},
"amount_unit": "MAJOR"
}
'import requests
url = "https://api.mysoleas.com/payment-links"
payload = {
"currency": "XAF",
"amount": 123,
"provider": "mtn_cmr",
"customerPaysFees": True,
"customer_pays_fees": True,
"title": "<string>",
"description": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"max_usage": 2,
"metadata": {},
"amount_unit": "MAJOR"
}
headers = {
"x-sp-auth-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-sp-auth-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
currency: 'XAF',
amount: 123,
provider: 'mtn_cmr',
customerPaysFees: true,
customer_pays_fees: true,
title: '<string>',
description: '<string>',
expires_at: '2023-11-07T05:31:56Z',
max_usage: 2,
metadata: {},
amount_unit: 'MAJOR'
})
};
fetch('https://api.mysoleas.com/payment-links', 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.mysoleas.com/payment-links",
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([
'currency' => 'XAF',
'amount' => 123,
'provider' => 'mtn_cmr',
'customerPaysFees' => true,
'customer_pays_fees' => true,
'title' => '<string>',
'description' => '<string>',
'expires_at' => '2023-11-07T05:31:56Z',
'max_usage' => 2,
'metadata' => [
],
'amount_unit' => 'MAJOR'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-sp-auth-token: <api-key>"
],
]);
$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.mysoleas.com/payment-links"
payload := strings.NewReader("{\n \"currency\": \"XAF\",\n \"amount\": 123,\n \"provider\": \"mtn_cmr\",\n \"customerPaysFees\": true,\n \"customer_pays_fees\": true,\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"max_usage\": 2,\n \"metadata\": {},\n \"amount_unit\": \"MAJOR\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-sp-auth-token", "<api-key>")
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.mysoleas.com/payment-links")
.header("x-sp-auth-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"currency\": \"XAF\",\n \"amount\": 123,\n \"provider\": \"mtn_cmr\",\n \"customerPaysFees\": true,\n \"customer_pays_fees\": true,\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"max_usage\": 2,\n \"metadata\": {},\n \"amount_unit\": \"MAJOR\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mysoleas.com/payment-links")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-sp-auth-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"currency\": \"XAF\",\n \"amount\": 123,\n \"provider\": \"mtn_cmr\",\n \"customerPaysFees\": true,\n \"customer_pays_fees\": true,\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"max_usage\": 2,\n \"metadata\": {},\n \"amount_unit\": \"MAJOR\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"success": true,
"locale": "fr",
"message": "<string>",
"meta": {},
"data": {
"reference": "<string>",
"short_code": "<string>",
"payment_url": "<string>",
"status": "ACTIVE",
"amount": 123,
"currency": "<string>",
"title": "<string>",
"description": "<string>",
"expires_at": "<string>",
"created_at": "<string>"
}
}{
"success": false,
"code": 400,
"message": "empty_data",
"error": {
"details": {}
}
}Unité du montant
Envoyezamount en valeur réelle par défaut : 4.01 pour 4,01 USD/EUR. Les clients API qui envoient déjà des centimes peuvent préciser amount_unit: "MINOR" à la racine du corps JSON, au même niveau que amount et currency, et non dans metadata. Les réponses publiques reviennent en valeur réelle même si la requête utilise MINOR. Consultez les montants et devises.Autorisations
Token Bearer obtenu avec le client_id et le client_secret de l'application creee dans SoleasPay. Format: Bearer <access_token>.
Corps
application/json
Exemple:
"XAF"
Montant en valeur réelle par défaut : 4.01 pour 4,01 USD/EUR. Avec amount_unit MINOR à la racine, envoyez des centimes entiers (401).
Exemple:
"mtn_cmr"
Options disponibles:
PROVIDER, WALLET, AUTO Indique qui supporte les frais du lien.
Options disponibles:
CUSTOMER, MERCHANT Options disponibles:
CUSTOMER, MERCHANT Plage requise:
x >= 1Unité des montants de la requête. Facultatif, MAJOR par défaut. Placez ce champ à la racine du corps JSON, pas dans metadata. MINOR conserve les montants déjà exprimés dans la plus petite unité.
Options disponibles:
MAJOR, MINOR Exemple:
"MAJOR"
⌘I
