curl -X POST "https://api.services.payward.com/v1/accounts/W4BE9868GY65TB6523/quotes/qte_01J0M7C0Z9F8YX3GQH8E/execute" \
-H "API-Key: $PWS_API_KEY" \
-H "API-Nonce: $PWS_API_NONCE" \
-H "API-Sign: $PWS_API_SIGN"import requests
url = "https://api.services.payward.com/v1/accounts/{account_id}/quotes/{quote_id}/execute"
headers = {
"API-Key": "<api-key>",
"API-Nonce": "<api-key>",
"API-Sign": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'API-Key': '<api-key>', 'API-Nonce': '<api-key>', 'API-Sign': '<api-key>'}
};
fetch('https://api.services.payward.com/v1/accounts/{account_id}/quotes/{quote_id}/execute', 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/accounts/{account_id}/quotes/{quote_id}/execute",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>",
"API-Nonce: <api-key>",
"API-Sign: <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://api.services.payward.com/v1/accounts/{account_id}/quotes/{quote_id}/execute"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Nonce", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
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/accounts/{account_id}/quotes/{quote_id}/execute")
.header("API-Key", "<api-key>")
.header("API-Nonce", "<api-key>")
.header("API-Sign", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.services.payward.com/v1/accounts/{account_id}/quotes/{quote_id}/execute")
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>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "Q-BTC2USD-1",
"status": "executing",
"executed_at": "2026-04-23T16:00:12Z"
}
}{
"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": 403,
"instance": "<string>",
"code": "forbidden",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "request_error",
"status": 404,
"instance": "<string>",
"code": "not_found",
"doc_url": "<string>"
}
}{
"error": {
"type": "quote_error",
"status": 409,
"instance": "<string>",
"code": "quote_already_executed",
"doc_url": "<string>",
"quote_id": "<string>"
}
}{
"error": {
"type": "quote_error",
"status": 410,
"instance": "<string>",
"code": "quote_expired",
"doc_url": "<string>",
"quote_id": "<string>"
}
}{
"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": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 504,
"instance": "<string>",
"code": "deadline_exceeded",
"doc_url": "<string>",
"causes": [
{}
]
}
}Execute quote
Triggers execution of a pending account-funded swap quote.
Preconditions: the quote must be in offered status and must not have passed its expires_at timestamp. Quotes are valid for ~2 minutes after creation; execution after expiry returns 410 Gone.
Execution is asynchronous. The response confirms the quote entered executing status; poll GET /v1/accounts/{account_id}/quotes/{quote_id} to observe the terminal state (executed or failed).
curl -X POST "https://api.services.payward.com/v1/accounts/W4BE9868GY65TB6523/quotes/qte_01J0M7C0Z9F8YX3GQH8E/execute" \
-H "API-Key: $PWS_API_KEY" \
-H "API-Nonce: $PWS_API_NONCE" \
-H "API-Sign: $PWS_API_SIGN"import requests
url = "https://api.services.payward.com/v1/accounts/{account_id}/quotes/{quote_id}/execute"
headers = {
"API-Key": "<api-key>",
"API-Nonce": "<api-key>",
"API-Sign": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'API-Key': '<api-key>', 'API-Nonce': '<api-key>', 'API-Sign': '<api-key>'}
};
fetch('https://api.services.payward.com/v1/accounts/{account_id}/quotes/{quote_id}/execute', 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/accounts/{account_id}/quotes/{quote_id}/execute",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>",
"API-Nonce: <api-key>",
"API-Sign: <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://api.services.payward.com/v1/accounts/{account_id}/quotes/{quote_id}/execute"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Nonce", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
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/accounts/{account_id}/quotes/{quote_id}/execute")
.header("API-Key", "<api-key>")
.header("API-Nonce", "<api-key>")
.header("API-Sign", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.services.payward.com/v1/accounts/{account_id}/quotes/{quote_id}/execute")
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>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "Q-BTC2USD-1",
"status": "executing",
"executed_at": "2026-04-23T16:00:12Z"
}
}{
"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": 403,
"instance": "<string>",
"code": "forbidden",
"doc_url": "<string>",
"causes": [
{}
]
}
}{
"error": {
"type": "request_error",
"status": 404,
"instance": "<string>",
"code": "not_found",
"doc_url": "<string>"
}
}{
"error": {
"type": "quote_error",
"status": 409,
"instance": "<string>",
"code": "quote_already_executed",
"doc_url": "<string>",
"quote_id": "<string>"
}
}{
"error": {
"type": "quote_error",
"status": 410,
"instance": "<string>",
"code": "quote_expired",
"doc_url": "<string>",
"quote_id": "<string>"
}
}{
"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": [
{}
]
}
}{
"error": {
"type": "<string>",
"status": 504,
"instance": "<string>",
"code": "deadline_exceeded",
"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.
Path Parameters
ID of the account the request applies to. This refers to one of the accounts held by the user the request is acting on behalf of (typically the user's main account, but any of the user's accounts is accepted). Routes the request to that specific account container. Canonical identifier for an account in the Payward public API.
14 - 42ID of the quote to execute.
1 - 64Response
Successful response
Result of triggering execution of a quote.
Show child attributes
Show child attributes