Payment method types for a corridor
curl --request GET \
--url https://sandbox.elementpay.net/api/v1/partner/payment-methods \
--header 'X-API-Key: <api-key>'import requests
url = "https://sandbox.elementpay.net/api/v1/partner/payment-methods"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://sandbox.elementpay.net/api/v1/partner/payment-methods', 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://sandbox.elementpay.net/api/v1/partner/payment-methods",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <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"
"net/http"
"io"
)
func main() {
url := "https://sandbox.elementpay.net/api/v1/partner/payment-methods"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.elementpay.net/api/v1/partner/payment-methods")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.elementpay.net/api/v1/partner/payment-methods")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "Partner payment methods (indicative)",
"data": {
"context": {
"country": "KE",
"currency": "KES"
},
"onramp": [
{
"type": "mobile_money",
"status": "active",
"networks": [
{
"id": "7ea6df5c-6bba-46b2-a7e6-f511959e7edb",
"name": "Safaricom M-PESA",
"min_amount": 100,
"max_amount": 250000,
"currency": "KES"
}
]
},
{
"type": "bank",
"status": "active",
"networks": []
}
],
"offramp": [
{
"type": "mobile_money",
"status": "active",
"networks": []
},
{
"type": "bank",
"status": "active",
"networks": []
}
]
}
}{
"status": "error",
"message": "Provide country for African corridors (e.g. KE) or currency for international bank (EUR/USD).",
"data": null
}{
"status": "error",
"message": "Corridor not supported on this environment.",
"data": {
"currency": "EUR",
"country": "FR"
}
}{
"status": "error",
"message": "Quote request failed",
"data": {
"upstream_http_status": 502
}
}Partner
Payment method types for a corridor
Indicative payment methods for one corridor.
GET
/
partner
/
payment-methods
Payment method types for a corridor
curl --request GET \
--url https://sandbox.elementpay.net/api/v1/partner/payment-methods \
--header 'X-API-Key: <api-key>'import requests
url = "https://sandbox.elementpay.net/api/v1/partner/payment-methods"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://sandbox.elementpay.net/api/v1/partner/payment-methods', 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://sandbox.elementpay.net/api/v1/partner/payment-methods",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <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"
"net/http"
"io"
)
func main() {
url := "https://sandbox.elementpay.net/api/v1/partner/payment-methods"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.elementpay.net/api/v1/partner/payment-methods")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.elementpay.net/api/v1/partner/payment-methods")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "Partner payment methods (indicative)",
"data": {
"context": {
"country": "KE",
"currency": "KES"
},
"onramp": [
{
"type": "mobile_money",
"status": "active",
"networks": [
{
"id": "7ea6df5c-6bba-46b2-a7e6-f511959e7edb",
"name": "Safaricom M-PESA",
"min_amount": 100,
"max_amount": 250000,
"currency": "KES"
}
]
},
{
"type": "bank",
"status": "active",
"networks": []
}
],
"offramp": [
{
"type": "mobile_money",
"status": "active",
"networks": []
},
{
"type": "bank",
"status": "active",
"networks": []
}
]
}
}{
"status": "error",
"message": "Provide country for African corridors (e.g. KE) or currency for international bank (EUR/USD).",
"data": null
}{
"status": "error",
"message": "Corridor not supported on this environment.",
"data": {
"currency": "EUR",
"country": "FR"
}
}{
"status": "error",
"message": "Quote request failed",
"data": {
"upstream_http_status": 502
}
}Indicative payment methods for one corridor.
African corridors
country— requiredcurrency— optional; must match the catalog when sent; responsecontextalways includes bothorder_type—OnRamporOffRamp; omit to get bothonrampandofframpbuckets
International bank
currency= EUR or USD (required)- Do not pass
country - EUR/USD onramp returns
bank - Offramp uses international bank when configured
International bank payout markets
Example: FR + EUR offramp — passcountry + currency. Returns rails such as BankSepa and BankSwift with type set to the international bank PaymentMethodType.
Local fiat (African)
mobile_money and bank rows include a networks[] list (id, name, min_amount, max_amount, currency) for client-side amount gating.
Binding check:
POST /partner/orders/quote.Authorizations
Partner API key. Sandbox keys start with is_test_; production keys start with is_live_. Keys are not interchangeable across environments. Send on every request. Never expose in browser or mobile clients.
Query Parameters
ISO country (required for African corridors, e.g. KE).
Optional for African (validated against catalog). Required for international_bank (EUR/USD).
OnRamp or OffRamp; omit for both onramp and offramp buckets.
Example:
"OnRamp"