Transactions
Chaque mouvement sur vos soldes, issu du registre : encaissements crédités, paiements et reversements débités, recharges de cartes, paiements par carte, frais. À utiliser pour le rapprochement.
Chaque mouvement sur vos soldes, issu du registre : encaissements crédités, paiements et reversements débités, recharges de cartes, paiements par carte, frais. À utiliser pour le rapprochement.
L’objet transaction
Attributs
Identifiant unique (UUID).
true en production, false en mode test.
Toujours transaction.
Ce qui a fait bouger l’argent.
collectionpayoutsettlementpayout_reversalsettlement_reversalcards_balance_topupcard_fundingcard_withdrawalcard_paymentcard_refundcard_reversalcard_feecard_fee_refundcard_issuing_feecard_funding_reversalconversion_debitconversion_creditconversion_reversalEffet signé sur votre solde (ou sur la carte, pour les mouvements de carte), en unités mineures. Négatif : sortie d’argent.
Devise du solde qui a bougé. Les mouvements de carte sont en USD.
Montant brut de l’opération d’origine, avant frais.
pending tant qu’un paiement ou un reversement est en route.
pendingsucceededfailedreversedLibellé court.
Nom du client, du bénéficiaire ou du marchand.
Identifiant de la carte, pour les mouvements de carte.
L’encaissement, le paiement ou le reversement à l’origine : { object, id }.
Date du mouvement, ISO 8601 (UTC).
{
"id": "e664ee8d-8ae1-4b05-b76f-d2a1ddf74b50",
"object": "transaction",
"livemode": false,
"type": "collection",
"amount": 4875,
"currency": "XAF",
"gross": 5000,
"status": "succeeded",
"description": "Awa Ndiaye",
"counterparty": "Awa Ndiaye",
"card": null,
"source": {
"object": "collection",
"id": "3b8f6c1e-2a47-4d1b-9e35-7c0a9d2f4e61"
},
"created_at": "2026-10-30T13:47:09.807Z"
}Lister les transactions
Du plus récent au plus ancien.
Rôles de la clé : Tous les rôles
Paramètres de requête
Ne renvoyer que ce type.
collectionpayoutsettlementpayout_reversalsettlement_reversalcards_balance_topupcard_fundingcard_withdrawalcard_paymentcard_refundcard_reversalcard_feecard_fee_refundcard_issuing_feecard_funding_reversalconversion_debitconversion_creditconversion_reversal20Nombre d’objets à renvoyer, de 1 à 100.
Curseur : l’identifiant du dernier objet de la page précédente.
Retour
Renvoie un objet liste : data contient jusqu’à limit objets transaction, et has_more indique s’il en reste.
curl "https://api.monerail.com/v1/transactions?type=collection&limit=10" \
-H "Authorization: Bearer $MONERAIL_KEY"const res = await fetch('https://api.monerail.com/v1/transactions?type=collection&limit=10', {
headers: {
Authorization: `Bearer ${process.env.MONERAIL_KEY}`,
},
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.error.code}: ${data.error.message}`);
console.log(data);import os
import requests
res = requests.get(
"https://api.monerail.com/v1/transactions",
headers={"Authorization": f"Bearer {os.environ['MONERAIL_KEY']}"},
params={"type": "collection", "limit": 10},
timeout=30,
)
data = res.json()
if not res.ok:
raise RuntimeError(f"{data['error']['code']}: {data['error']['message']}")
print(data)<?php
$ch = curl_init('https://api.monerail.com/v1/transactions?type=collection&limit=10');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MONERAIL_KEY'),
],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($status >= 400) {
throw new RuntimeException($data['error']['code'] . ': ' . $data['error']['message']);
}
print_r($data);package main
import (
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest(http.MethodGet, "https://api.monerail.com/v1/transactions?type=collection&limit=10", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("MONERAIL_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
var data map[string]any
if err := json.NewDecoder(res.Body).Decode(&data); err != nil {
panic(err)
}
if res.StatusCode >= 400 {
panic(fmt.Sprint(data["error"]))
}
fmt.Println(data)
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Example {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.monerail.com/v1/transactions?type=collection&limit=10"))
.header("Authorization", "Bearer " + System.getenv("MONERAIL_KEY"))
.GET()
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() >= 400) {
throw new RuntimeException(response.body());
}
System.out.println(response.body()); // parse with your JSON library (Jackson, Gson…)
}
}require "json"
require "net/http"
uri = URI("https://api.monerail.com/v1/transactions?type=collection&limit=10")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer #{ENV.fetch("MONERAIL_KEY")}"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)
raise "#{data["error"]["code"]}: #{data["error"]["message"]}" unless res.is_a?(Net::HTTPSuccess)
puts datausing System.Net.Http.Headers;
using System.Net.Http.Json;
using System.Text.Json;
using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("MONERAIL_KEY"));
using var request = new HttpRequestMessage(HttpMethod.Get, "https://api.monerail.com/v1/transactions?type=collection&limit=10");
using var response = await http.SendAsync(request);
var data = await response.Content.ReadFromJsonAsync<JsonElement>();
if (!response.IsSuccessStatusCode)
{
throw new HttpRequestException(data.GetProperty("error").GetProperty("message").GetString());
}
Console.WriteLine(data);{
"object": "list",
"url": "/v1/transactions",
"data": [
{
"id": "e664ee8d-8ae1-4b05-b76f-d2a1ddf74b50",
"object": "transaction",
"livemode": false,
"type": "collection",
"amount": 4875,
"currency": "XAF",
"gross": 5000,
"status": "succeeded",
"description": "Awa Ndiaye",
"counterparty": "Awa Ndiaye",
"card": null,
"source": {
"object": "collection",
"id": "3b8f6c1e-2a47-4d1b-9e35-7c0a9d2f4e61"
},
"created_at": "2026-10-30T13:47:09.807Z"
}
],
"has_more": true
}Consulter une transaction
Rôles de la clé : Tous les rôles
Paramètres de chemin
Identifiant de la transaction.
Retour
Renvoie l’objet transaction.
curl https://api.monerail.com/v1/transactions/e664ee8d-8ae1-4b05-b76f-d2a1ddf74b50 \
-H "Authorization: Bearer $MONERAIL_KEY"const res = await fetch('https://api.monerail.com/v1/transactions/e664ee8d-8ae1-4b05-b76f-d2a1ddf74b50', {
headers: {
Authorization: `Bearer ${process.env.MONERAIL_KEY}`,
},
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.error.code}: ${data.error.message}`);
console.log(data);import os
import requests
res = requests.get(
"https://api.monerail.com/v1/transactions/e664ee8d-8ae1-4b05-b76f-d2a1ddf74b50",
headers={"Authorization": f"Bearer {os.environ['MONERAIL_KEY']}"},
timeout=30,
)
data = res.json()
if not res.ok:
raise RuntimeError(f"{data['error']['code']}: {data['error']['message']}")
print(data)<?php
$ch = curl_init('https://api.monerail.com/v1/transactions/e664ee8d-8ae1-4b05-b76f-d2a1ddf74b50');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MONERAIL_KEY'),
],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($status >= 400) {
throw new RuntimeException($data['error']['code'] . ': ' . $data['error']['message']);
}
print_r($data);package main
import (
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest(http.MethodGet, "https://api.monerail.com/v1/transactions/e664ee8d-8ae1-4b05-b76f-d2a1ddf74b50", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("MONERAIL_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
var data map[string]any
if err := json.NewDecoder(res.Body).Decode(&data); err != nil {
panic(err)
}
if res.StatusCode >= 400 {
panic(fmt.Sprint(data["error"]))
}
fmt.Println(data)
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Example {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.monerail.com/v1/transactions/e664ee8d-8ae1-4b05-b76f-d2a1ddf74b50"))
.header("Authorization", "Bearer " + System.getenv("MONERAIL_KEY"))
.GET()
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() >= 400) {
throw new RuntimeException(response.body());
}
System.out.println(response.body()); // parse with your JSON library (Jackson, Gson…)
}
}require "json"
require "net/http"
uri = URI("https://api.monerail.com/v1/transactions/e664ee8d-8ae1-4b05-b76f-d2a1ddf74b50")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer #{ENV.fetch("MONERAIL_KEY")}"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)
raise "#{data["error"]["code"]}: #{data["error"]["message"]}" unless res.is_a?(Net::HTTPSuccess)
puts datausing System.Net.Http.Headers;
using System.Net.Http.Json;
using System.Text.Json;
using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("MONERAIL_KEY"));
using var request = new HttpRequestMessage(HttpMethod.Get, "https://api.monerail.com/v1/transactions/e664ee8d-8ae1-4b05-b76f-d2a1ddf74b50");
using var response = await http.SendAsync(request);
var data = await response.Content.ReadFromJsonAsync<JsonElement>();
if (!response.IsSuccessStatusCode)
{
throw new HttpRequestException(data.GetProperty("error").GetProperty("message").GetString());
}
Console.WriteLine(data);{
"id": "e664ee8d-8ae1-4b05-b76f-d2a1ddf74b50",
"object": "transaction",
"livemode": false,
"type": "collection",
"amount": 4875,
"currency": "XAF",
"gross": 5000,
"status": "succeeded",
"description": "Awa Ndiaye",
"counterparty": "Awa Ndiaye",
"card": null,
"source": {
"object": "collection",
"id": "3b8f6c1e-2a47-4d1b-9e35-7c0a9d2f4e61"
},
"created_at": "2026-10-30T13:47:09.807Z"
}