curl -X POST "https://api.services.payward.com/v1/funds/withdrawals/addresses/validate" \
-H "API-Key: $PWS_API_KEY" \
-H "API-Nonce: $PWS_API_NONCE" \
-H "API-Sign: $PWS_API_SIGN" \
-H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
-H "Content-Type: application/json" \
-d '{
"asset_symbol": "BTC",
"asset_type": "crypto",
"method_id": "550e8400-e29b-41d4-a716-446655440000",
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0b8c1"
}'import requests
url = "https://api.services.payward.com/v1/funds/withdrawals/addresses/validate"
payload = {
"asset_symbol": "BTC",
"method_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"address": "<string>",
"asset_type": "crypto",
"memo": "<string>"
}
headers = {
"API-Key": "<api-key>",
"API-Nonce": "<api-key>",
"API-Sign": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'API-Key': '<api-key>',
'API-Nonce': '<api-key>',
'API-Sign': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
asset_symbol: 'BTC',
method_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
address: '<string>',
asset_type: 'crypto',
memo: '<string>'
})
};
fetch('https://api.services.payward.com/v1/funds/withdrawals/addresses/validate', 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.services.payward.com/v1/funds/withdrawals/addresses/validate",
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([
'asset_symbol' => 'BTC',
'method_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'address' => '<string>',
'asset_type' => 'crypto',
'memo' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>",
"API-Nonce: <api-key>",
"API-Sign: <api-key>",
"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://api.services.payward.com/v1/funds/withdrawals/addresses/validate"
payload := strings.NewReader("{\n \"asset_symbol\": \"BTC\",\n \"method_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"address\": \"<string>\",\n \"asset_type\": \"crypto\",\n \"memo\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Nonce", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
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://api.services.payward.com/v1/funds/withdrawals/addresses/validate")
.header("API-Key", "<api-key>")
.header("API-Nonce", "<api-key>")
.header("API-Sign", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"asset_symbol\": \"BTC\",\n \"method_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"address\": \"<string>\",\n \"asset_type\": \"crypto\",\n \"memo\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.services.payward.com/v1/funds/withdrawals/addresses/validate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["API-Key"] = '<api-key>'
request["API-Nonce"] = '<api-key>'
request["API-Sign"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"asset_symbol\": \"BTC\",\n \"method_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"address\": \"<string>\",\n \"asset_type\": \"crypto\",\n \"memo\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"valid": true
}
}{
"error": {
"type": "<string>",
"status": 400,
"instance": "<string>",
"code": "bad_request",
"doc_url": "<string>",
"causes": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"type": "<string>",
"status": 401,
"instance": "<string>",
"code": "unauthenticated",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 504,
"instance": "<string>",
"code": "deadline_exceeded",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 429,
"instance": "<string>",
"code": "resource_exhausted",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 500,
"instance": "<string>",
"code": "internal",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 503,
"instance": "<string>",
"code": "unavailable",
"doc_url": "<string>",
"causes": [
{}
]
}
}Validate Withdrawal Address
Validate a crypto withdrawal address for the provided asset and method.
This endpoint validates the address format and network compatibility but does not persist the address.
curl -X POST "https://api.services.payward.com/v1/funds/withdrawals/addresses/validate" \
-H "API-Key: $PWS_API_KEY" \
-H "API-Nonce: $PWS_API_NONCE" \
-H "API-Sign: $PWS_API_SIGN" \
-H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
-H "Content-Type: application/json" \
-d '{
"asset_symbol": "BTC",
"asset_type": "crypto",
"method_id": "550e8400-e29b-41d4-a716-446655440000",
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0b8c1"
}'import requests
url = "https://api.services.payward.com/v1/funds/withdrawals/addresses/validate"
payload = {
"asset_symbol": "BTC",
"method_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"address": "<string>",
"asset_type": "crypto",
"memo": "<string>"
}
headers = {
"API-Key": "<api-key>",
"API-Nonce": "<api-key>",
"API-Sign": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'API-Key': '<api-key>',
'API-Nonce': '<api-key>',
'API-Sign': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
asset_symbol: 'BTC',
method_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
address: '<string>',
asset_type: 'crypto',
memo: '<string>'
})
};
fetch('https://api.services.payward.com/v1/funds/withdrawals/addresses/validate', 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.services.payward.com/v1/funds/withdrawals/addresses/validate",
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([
'asset_symbol' => 'BTC',
'method_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'address' => '<string>',
'asset_type' => 'crypto',
'memo' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>",
"API-Nonce: <api-key>",
"API-Sign: <api-key>",
"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://api.services.payward.com/v1/funds/withdrawals/addresses/validate"
payload := strings.NewReader("{\n \"asset_symbol\": \"BTC\",\n \"method_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"address\": \"<string>\",\n \"asset_type\": \"crypto\",\n \"memo\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Nonce", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
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://api.services.payward.com/v1/funds/withdrawals/addresses/validate")
.header("API-Key", "<api-key>")
.header("API-Nonce", "<api-key>")
.header("API-Sign", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"asset_symbol\": \"BTC\",\n \"method_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"address\": \"<string>\",\n \"asset_type\": \"crypto\",\n \"memo\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.services.payward.com/v1/funds/withdrawals/addresses/validate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["API-Key"] = '<api-key>'
request["API-Nonce"] = '<api-key>'
request["API-Sign"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"asset_symbol\": \"BTC\",\n \"method_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"address\": \"<string>\",\n \"asset_type\": \"crypto\",\n \"memo\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"valid": true
}
}{
"error": {
"type": "<string>",
"status": 400,
"instance": "<string>",
"code": "bad_request",
"doc_url": "<string>",
"causes": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"type": "<string>",
"status": 401,
"instance": "<string>",
"code": "unauthenticated",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 504,
"instance": "<string>",
"code": "deadline_exceeded",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 429,
"instance": "<string>",
"code": "resource_exhausted",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 500,
"instance": "<string>",
"code": "internal",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 503,
"instance": "<string>",
"code": "unavailable",
"doc_url": "<string>",
"causes": [
{}
]
}
}Authorizations
Your public API key. Identifies the partner making the request.
Monotonically increasing nonce included in the request signature.
HMAC signature over the request, computed with your private key.
Headers
Client-generated UUIDv4 for safe retries. Sent as the Idempotency-Key HTTP header. Replayed responses include the Idempotent-Replayed: true header.
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"550e8400-e29b-41d4-a716-446655440000"
Body
Ticker symbol of the asset to validate the address against (e.g. BTC, ETH).
3 - 16"BTC"
Withdrawal method identifier from GET /b2b/funds/withdrawals/methods/{asset}
The crypto address to validate
Classification of the asset. Pair with asset_symbol to disambiguate when the same ticker exists across asset classes. Defaults to crypto.
fiat, crypto, stablecoin, xstock Memo or tag for networks that require one (e.g., XRP, XLM)
Response
Response
Show child attributes
Show child attributes