curl --request GET \
--url https://v2.prod.halliday.xyz/payments/methods \
--header 'Authorization: Bearer <token>'import requests
url = "https://v2.prod.halliday.xyz/payments/methods"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://v2.prod.halliday.xyz/payments/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://v2.prod.halliday.xyz/payments/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 => [
"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://v2.prod.halliday.xyz/payments/methods"
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://v2.prod.halliday.xyz/payments/methods")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://v2.prod.halliday.xyz/payments/methods")
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{
"providers": {
"stripe": [
"CREDIT_CARD",
"DEBIT_CARD",
"GOOGLE_PAY"
],
"moonpay": [
"APPLE_PAY",
"CREDIT_CARD",
"DEBIT_CARD",
"GOOGLE_PAY",
"PAYPAL",
"VENMO"
],
"coinbase": [
"ACH",
"DEBIT_CARD",
"FIAT_BALANCE"
],
"banxa": [
"CREDIT_CARD",
"DEBIT_CARD",
"GOOGLE_PAY"
],
"rampnetwork": [
"APPLE_PAY",
"CREDIT_CARD",
"DEBIT_CARD",
"GOOGLE_PAY"
]
}
}{
"errors": [
{
"code": "invalid_union",
"path": [
"output"
],
"message": "Invalid input"
}
]
}{
"errors": [
{
"kind": "other",
"message": "Invalid API key"
}
]
}Get available payment methods
List the onramp payment methods available for a fiat input and an output asset, grouped by onramp provider.
Availability depends on the end user’s location, so pass the end user’s customer_ip_address
when your backend makes the request on their behalf. Use the result to show users which
payment methods they can choose before requesting quotes, or to build the onramp_methods
filter for POST /payments/quotes.
curl --request GET \
--url https://v2.prod.halliday.xyz/payments/methods \
--header 'Authorization: Bearer <token>'import requests
url = "https://v2.prod.halliday.xyz/payments/methods"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://v2.prod.halliday.xyz/payments/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://v2.prod.halliday.xyz/payments/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 => [
"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://v2.prod.halliday.xyz/payments/methods"
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://v2.prod.halliday.xyz/payments/methods")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://v2.prod.halliday.xyz/payments/methods")
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{
"providers": {
"stripe": [
"CREDIT_CARD",
"DEBIT_CARD",
"GOOGLE_PAY"
],
"moonpay": [
"APPLE_PAY",
"CREDIT_CARD",
"DEBIT_CARD",
"GOOGLE_PAY",
"PAYPAL",
"VENMO"
],
"coinbase": [
"ACH",
"DEBIT_CARD",
"FIAT_BALANCE"
],
"banxa": [
"CREDIT_CARD",
"DEBIT_CARD",
"GOOGLE_PAY"
],
"rampnetwork": [
"APPLE_PAY",
"CREDIT_CARD",
"DEBIT_CARD",
"GOOGLE_PAY"
]
}
}{
"errors": [
{
"code": "invalid_union",
"path": [
"output"
],
"message": "Invalid input"
}
]
}{
"errors": [
{
"kind": "other",
"message": "Invalid API key"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Fiat currency the user will pay with Fiat currency code
"USD"
Asset the user will receive Identifier in the token format ("chain:address") or fiat currency code ("USD")
"ethereum:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
IPv4 or IPv6 address of the end user, used to determine location-based availability
Response
Payment methods retrieved successfully
Onramp provider name mapped to the payment methods it offers for this route and location. Get in touch with the Halliday team to have SWIFT enabled on your API key.
Show child attributes
Show child attributes
Same shape as providers, for rails operated directly by Halliday. Present only when applicable. Get in touch with the Halliday team to have SWIFT enabled on your API key.
Show child attributes
Show child attributes

