Payer un lien de paiement
curl --request POST \
--url https://api.mysoleas.com/pay/{shortCode}/pay \
--header 'Content-Type: application/json' \
--data '
{
"customer_phone": "237670000000",
"transaction_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customer_name": "<string>",
"customer_email": "jsmith@example.com",
"amount": 123,
"provider": "<string>",
"otp": 123,
"metadata": {},
"amount_unit": "MAJOR",
"currency": "USD",
"source_amount": 123,
"source_currency": "EUR"
}
'import requests
url = "https://api.mysoleas.com/pay/{shortCode}/pay"
payload = {
"customer_phone": "237670000000",
"transaction_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customer_name": "<string>",
"customer_email": "jsmith@example.com",
"amount": 123,
"provider": "<string>",
"otp": 123,
"metadata": {},
"amount_unit": "MAJOR",
"currency": "USD",
"source_amount": 123,
"source_currency": "EUR"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
customer_phone: '237670000000',
transaction_uuid: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
customer_name: '<string>',
customer_email: 'jsmith@example.com',
amount: 123,
provider: '<string>',
otp: 123,
metadata: {},
amount_unit: 'MAJOR',
currency: 'USD',
source_amount: 123,
source_currency: 'EUR'
})
};
fetch('https://api.mysoleas.com/pay/{shortCode}/pay', 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/pay/{shortCode}/pay",
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([
'customer_phone' => '237670000000',
'transaction_uuid' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'customer_name' => '<string>',
'customer_email' => 'jsmith@example.com',
'amount' => 123,
'provider' => '<string>',
'otp' => 123,
'metadata' => [
],
'amount_unit' => 'MAJOR',
'currency' => 'USD',
'source_amount' => 123,
'source_currency' => 'EUR'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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/pay/{shortCode}/pay"
payload := strings.NewReader("{\n \"customer_phone\": \"237670000000\",\n \"transaction_uuid\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customer_name\": \"<string>\",\n \"customer_email\": \"jsmith@example.com\",\n \"amount\": 123,\n \"provider\": \"<string>\",\n \"otp\": 123,\n \"metadata\": {},\n \"amount_unit\": \"MAJOR\",\n \"currency\": \"USD\",\n \"source_amount\": 123,\n \"source_currency\": \"EUR\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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/pay/{shortCode}/pay")
.header("Content-Type", "application/json")
.body("{\n \"customer_phone\": \"237670000000\",\n \"transaction_uuid\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customer_name\": \"<string>\",\n \"customer_email\": \"jsmith@example.com\",\n \"amount\": 123,\n \"provider\": \"<string>\",\n \"otp\": 123,\n \"metadata\": {},\n \"amount_unit\": \"MAJOR\",\n \"currency\": \"USD\",\n \"source_amount\": 123,\n \"source_currency\": \"EUR\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mysoleas.com/pay/{shortCode}/pay")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"customer_phone\": \"237670000000\",\n \"transaction_uuid\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customer_name\": \"<string>\",\n \"customer_email\": \"jsmith@example.com\",\n \"amount\": 123,\n \"provider\": \"<string>\",\n \"otp\": 123,\n \"metadata\": {},\n \"amount_unit\": \"MAJOR\",\n \"currency\": \"USD\",\n \"source_amount\": 123,\n \"source_currency\": \"EUR\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"success": true,
"locale": "fr",
"message": "<string>",
"meta": {},
"data": {
"transaction_reference": "<string>",
"environment": "prod",
"invoice_reference": "<string>",
"provider_reference": "<string>",
"status": "INITIATED",
"operation": "COLLECTION",
"channel": "PROVIDER",
"amount": 123,
"currency": "<string>",
"confirmation_method": "MSISDN",
"confirmation_url": "<string>",
"fee": 123,
"required_total": 123,
"settlement_mode": "DIRECT",
"split_reference": "<string>",
"split_status": "NONE",
"created_at": "<string>",
"updated_at": "<string>",
"amount_unit": "MAJOR"
}
}{
"success": false,
"code": 400,
"message": "empty_data",
"error": {
"details": {}
}
}Liens de paiement
Payer un lien
POST
/
pay
/
{shortCode}
/
pay
Payer un lien de paiement
curl --request POST \
--url https://api.mysoleas.com/pay/{shortCode}/pay \
--header 'Content-Type: application/json' \
--data '
{
"customer_phone": "237670000000",
"transaction_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customer_name": "<string>",
"customer_email": "jsmith@example.com",
"amount": 123,
"provider": "<string>",
"otp": 123,
"metadata": {},
"amount_unit": "MAJOR",
"currency": "USD",
"source_amount": 123,
"source_currency": "EUR"
}
'import requests
url = "https://api.mysoleas.com/pay/{shortCode}/pay"
payload = {
"customer_phone": "237670000000",
"transaction_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customer_name": "<string>",
"customer_email": "jsmith@example.com",
"amount": 123,
"provider": "<string>",
"otp": 123,
"metadata": {},
"amount_unit": "MAJOR",
"currency": "USD",
"source_amount": 123,
"source_currency": "EUR"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
customer_phone: '237670000000',
transaction_uuid: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
customer_name: '<string>',
customer_email: 'jsmith@example.com',
amount: 123,
provider: '<string>',
otp: 123,
metadata: {},
amount_unit: 'MAJOR',
currency: 'USD',
source_amount: 123,
source_currency: 'EUR'
})
};
fetch('https://api.mysoleas.com/pay/{shortCode}/pay', 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/pay/{shortCode}/pay",
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([
'customer_phone' => '237670000000',
'transaction_uuid' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'customer_name' => '<string>',
'customer_email' => 'jsmith@example.com',
'amount' => 123,
'provider' => '<string>',
'otp' => 123,
'metadata' => [
],
'amount_unit' => 'MAJOR',
'currency' => 'USD',
'source_amount' => 123,
'source_currency' => 'EUR'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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/pay/{shortCode}/pay"
payload := strings.NewReader("{\n \"customer_phone\": \"237670000000\",\n \"transaction_uuid\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customer_name\": \"<string>\",\n \"customer_email\": \"jsmith@example.com\",\n \"amount\": 123,\n \"provider\": \"<string>\",\n \"otp\": 123,\n \"metadata\": {},\n \"amount_unit\": \"MAJOR\",\n \"currency\": \"USD\",\n \"source_amount\": 123,\n \"source_currency\": \"EUR\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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/pay/{shortCode}/pay")
.header("Content-Type", "application/json")
.body("{\n \"customer_phone\": \"237670000000\",\n \"transaction_uuid\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customer_name\": \"<string>\",\n \"customer_email\": \"jsmith@example.com\",\n \"amount\": 123,\n \"provider\": \"<string>\",\n \"otp\": 123,\n \"metadata\": {},\n \"amount_unit\": \"MAJOR\",\n \"currency\": \"USD\",\n \"source_amount\": 123,\n \"source_currency\": \"EUR\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mysoleas.com/pay/{shortCode}/pay")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"customer_phone\": \"237670000000\",\n \"transaction_uuid\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"customer_name\": \"<string>\",\n \"customer_email\": \"jsmith@example.com\",\n \"amount\": 123,\n \"provider\": \"<string>\",\n \"otp\": 123,\n \"metadata\": {},\n \"amount_unit\": \"MAJOR\",\n \"currency\": \"USD\",\n \"source_amount\": 123,\n \"source_currency\": \"EUR\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"success": true,
"locale": "fr",
"message": "<string>",
"meta": {},
"data": {
"transaction_reference": "<string>",
"environment": "prod",
"invoice_reference": "<string>",
"provider_reference": "<string>",
"status": "INITIATED",
"operation": "COLLECTION",
"channel": "PROVIDER",
"amount": 123,
"currency": "<string>",
"confirmation_method": "MSISDN",
"confirmation_url": "<string>",
"fee": 123,
"required_total": 123,
"settlement_mode": "DIRECT",
"split_reference": "<string>",
"split_status": "NONE",
"created_at": "<string>",
"updated_at": "<string>",
"amount_unit": "MAJOR"
}
}{
"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.Paramètres de chemin
Pattern:
^[A-Za-z0-9]{8,12}$Corps
application/json
Exemple:
"237670000000"
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).
Options disponibles:
PROVIDER, WALLET, AUTO Unité 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"
Devise du paiement sélectionné ; la devise du lien est utilisée si ce champ est absent.
Exemple:
"USD"
Montant du lien dans source_currency avant conversion. Suit le champ amount_unit à la racine.
Devise source du montant du lien avant conversion.
Exemple:
"EUR"
⌘I
