curl --request POST \
--url https://payoes.com/api/v1/payments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pricing_currency": "USD",
"pricing_amount": "25.00",
"allowed_assets": [
{
"asset_code": "USDC",
"issuer_address": "<string>"
}
],
"description": "<string>",
"metadata": {},
"expires_in_minutes": 5042,
"customer_id": "<string>"
}
'import requests
url = "https://payoes.com/api/v1/payments"
payload = {
"pricing_currency": "USD",
"pricing_amount": "25.00",
"allowed_assets": [
{
"asset_code": "USDC",
"issuer_address": "<string>"
}
],
"description": "<string>",
"metadata": {},
"expires_in_minutes": 5042,
"customer_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
pricing_currency: 'USD',
pricing_amount: '25.00',
allowed_assets: [{asset_code: 'USDC', issuer_address: '<string>'}],
description: '<string>',
metadata: {},
expires_in_minutes: 5042,
customer_id: '<string>'
})
};
fetch('https://payoes.com/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://payoes.com/api/v1/payments",
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([
'pricing_currency' => 'USD',
'pricing_amount' => '25.00',
'allowed_assets' => [
[
'asset_code' => 'USDC',
'issuer_address' => '<string>'
]
],
'description' => '<string>',
'metadata' => [
],
'expires_in_minutes' => 5042,
'customer_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://payoes.com/api/v1/payments"
payload := strings.NewReader("{\n \"pricing_currency\": \"USD\",\n \"pricing_amount\": \"25.00\",\n \"allowed_assets\": [\n {\n \"asset_code\": \"USDC\",\n \"issuer_address\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"metadata\": {},\n \"expires_in_minutes\": 5042,\n \"customer_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://payoes.com/api/v1/payments")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pricing_currency\": \"USD\",\n \"pricing_amount\": \"25.00\",\n \"allowed_assets\": [\n {\n \"asset_code\": \"USDC\",\n \"issuer_address\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"metadata\": {},\n \"expires_in_minutes\": 5042,\n \"customer_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://payoes.com/api/v1/payments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pricing_currency\": \"USD\",\n \"pricing_amount\": \"25.00\",\n \"allowed_assets\": [\n {\n \"asset_code\": \"USDC\",\n \"issuer_address\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"metadata\": {},\n \"expires_in_minutes\": 5042,\n \"customer_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "pay_nLU2gUDk-v3tdyd6",
"object": "payment_intent",
"amount": "2.0000000",
"settlement_asset": {
"asset_code": "USDC",
"issuer_address": "<string>"
},
"allowed_assets": [
{
"asset_code": "USDC",
"issuer_address": "<string>"
}
],
"status": "pending",
"checkout_url": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"paid_asset": {
"asset_code": "USDC",
"issuer_address": "<string>"
},
"description": "<string>",
"metadata": {},
"source_type": "direct",
"customer_id": "<string>",
"payer_address": "<string>",
"tx_hash": "<string>",
"confirmed_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z"
}{
"error": "Settlement wallet is not configured"
}{
"error": "Unauthorized"
}Create a payment
Creates a pending payment and returns a hosted checkout URL. The settlement wallet and Stellar network are resolved from your organization settings.
curl --request POST \
--url https://payoes.com/api/v1/payments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pricing_currency": "USD",
"pricing_amount": "25.00",
"allowed_assets": [
{
"asset_code": "USDC",
"issuer_address": "<string>"
}
],
"description": "<string>",
"metadata": {},
"expires_in_minutes": 5042,
"customer_id": "<string>"
}
'import requests
url = "https://payoes.com/api/v1/payments"
payload = {
"pricing_currency": "USD",
"pricing_amount": "25.00",
"allowed_assets": [
{
"asset_code": "USDC",
"issuer_address": "<string>"
}
],
"description": "<string>",
"metadata": {},
"expires_in_minutes": 5042,
"customer_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
pricing_currency: 'USD',
pricing_amount: '25.00',
allowed_assets: [{asset_code: 'USDC', issuer_address: '<string>'}],
description: '<string>',
metadata: {},
expires_in_minutes: 5042,
customer_id: '<string>'
})
};
fetch('https://payoes.com/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://payoes.com/api/v1/payments",
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([
'pricing_currency' => 'USD',
'pricing_amount' => '25.00',
'allowed_assets' => [
[
'asset_code' => 'USDC',
'issuer_address' => '<string>'
]
],
'description' => '<string>',
'metadata' => [
],
'expires_in_minutes' => 5042,
'customer_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://payoes.com/api/v1/payments"
payload := strings.NewReader("{\n \"pricing_currency\": \"USD\",\n \"pricing_amount\": \"25.00\",\n \"allowed_assets\": [\n {\n \"asset_code\": \"USDC\",\n \"issuer_address\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"metadata\": {},\n \"expires_in_minutes\": 5042,\n \"customer_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://payoes.com/api/v1/payments")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pricing_currency\": \"USD\",\n \"pricing_amount\": \"25.00\",\n \"allowed_assets\": [\n {\n \"asset_code\": \"USDC\",\n \"issuer_address\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"metadata\": {},\n \"expires_in_minutes\": 5042,\n \"customer_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://payoes.com/api/v1/payments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pricing_currency\": \"USD\",\n \"pricing_amount\": \"25.00\",\n \"allowed_assets\": [\n {\n \"asset_code\": \"USDC\",\n \"issuer_address\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"metadata\": {},\n \"expires_in_minutes\": 5042,\n \"customer_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "pay_nLU2gUDk-v3tdyd6",
"object": "payment_intent",
"amount": "2.0000000",
"settlement_asset": {
"asset_code": "USDC",
"issuer_address": "<string>"
},
"allowed_assets": [
{
"asset_code": "USDC",
"issuer_address": "<string>"
}
],
"status": "pending",
"checkout_url": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"paid_asset": {
"asset_code": "USDC",
"issuer_address": "<string>"
},
"description": "<string>",
"metadata": {},
"source_type": "direct",
"customer_id": "<string>",
"payer_address": "<string>",
"tx_hash": "<string>",
"confirmed_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z"
}{
"error": "Settlement wallet is not configured"
}{
"error": "Unauthorized"
}Authorizations
API key from the Payoes dashboard (pk_test_... or pk_live_...)
Body
Fiat currency code for the charge amount (for example USD or IDR).
"USD"
Charge amount in the pricing currency.
"25.00"
Optional. Defaults to the organization settlement asset.
Show child attributes
Show child attributes
Optional. Defaults to all enabled organization assets.
1Show child attributes
Show child attributes
500Show child attributes
Show child attributes
Minutes until the payment expires (default 60)
5 <= x <= 10080Customer public ID to link before checkout
Response
Payment created
"pay_nLU2gUDk-v3tdyd6"
payment_intent "2.0000000"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
pending, completed, failed, expired Asset the customer actually paid with (set after checkout)
Show child attributes
Show child attributes
Show child attributes
Show child attributes
direct, checkout_session, payment_link, invoice 