cURL
curl --request GET \
--url https://api.spotflow.co/api/v1/payments \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.spotflow.co/api/v1/payments"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.spotflow.co/api/v1/payments', 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.spotflow.co/api/v1/payments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.spotflow.co/api/v1/payments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.spotflow.co/api/v1/payments")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.spotflow.co/api/v1/payments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"content": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"reference": "REF123456789",
"amount": 100,
"currency": "USD",
"status": "SUCCESS",
"spotflowReference": "SPF-REF-001",
"localAmount": 156000,
"totalFees": 500,
"localCurrency": "NGN",
"channel": "card",
"mode": "TEST",
"rate": 1560,
"region": "Nigeria",
"authorization": {
"mode": "Pin"
},
"ussd": {
"code": "*737#",
"paymentCode": "123456"
},
"bankDetails": {
"accountName": "John Doe",
"accountNumber": "0123456789",
"bankName": "Access Bank"
},
"card": {
"type": "VISA",
"firstSix": "412345",
"lastFour": "6789"
},
"createdAt": "2025-10-17T15:21:11.287Z",
"metadata": {
"orderId": "ORD-000123",
"note": "First payment"
},
"totalTaxAmount": 50,
"totalLocalAmount": 156050,
"planId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"mobileMoney": {
"otp": "1234",
"code": "MTN",
"name": "MTN Mobile Money",
"phoneNumber": "+233540000000"
}
}
],
"pageNumber": 1,
"pageSize": 10,
"totalElements": 100,
"totalPages": 10
}{
"error": "Missing Parameter",
"message": "missing_parameter",
"status": 400
}{
"error": "Unauthorized",
"message": "invalid_credentials",
"status": 401
}Payment Collections
List Payments
Get details of all payments collection done via your keys.
GET
/
payments
cURL
curl --request GET \
--url https://api.spotflow.co/api/v1/payments \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.spotflow.co/api/v1/payments"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.spotflow.co/api/v1/payments', 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.spotflow.co/api/v1/payments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.spotflow.co/api/v1/payments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.spotflow.co/api/v1/payments")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.spotflow.co/api/v1/payments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"content": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"reference": "REF123456789",
"amount": 100,
"currency": "USD",
"status": "SUCCESS",
"spotflowReference": "SPF-REF-001",
"localAmount": 156000,
"totalFees": 500,
"localCurrency": "NGN",
"channel": "card",
"mode": "TEST",
"rate": 1560,
"region": "Nigeria",
"authorization": {
"mode": "Pin"
},
"ussd": {
"code": "*737#",
"paymentCode": "123456"
},
"bankDetails": {
"accountName": "John Doe",
"accountNumber": "0123456789",
"bankName": "Access Bank"
},
"card": {
"type": "VISA",
"firstSix": "412345",
"lastFour": "6789"
},
"createdAt": "2025-10-17T15:21:11.287Z",
"metadata": {
"orderId": "ORD-000123",
"note": "First payment"
},
"totalTaxAmount": 50,
"totalLocalAmount": 156050,
"planId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"mobileMoney": {
"otp": "1234",
"code": "MTN",
"name": "MTN Mobile Money",
"phoneNumber": "+233540000000"
}
}
],
"pageNumber": 1,
"pageSize": 10,
"totalElements": 100,
"totalPages": 10
}{
"error": "Missing Parameter",
"message": "missing_parameter",
"status": 400
}{
"error": "Unauthorized",
"message": "invalid_credentials",
"status": 401
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Page number for pagination (default is 0).
Number of items per page for pagination (default is 10).
The unique identifier of the payment.
Use this to get payments by any internal reference you set when creating/initializing payments
Example:
"ref-db15ac7a-78c4-480d-afc4-2be8b2325399"
This can either be successful, failed or pending.
This can either be card, bank transfer, mobile_money, or eft for local currency payments.
Available options:
card, bank_transfer, mobile_money, eft These are available payment providers on Spotflow.
⌘I

