curl --request GET \
--url https://api.services.payward.com/v1/accounts/{account_id}/conversions/{conversion_id}/transactions \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>'import requests
url = "https://api.services.payward.com/v1/accounts/{account_id}/conversions/{conversion_id}/transactions"
headers = {
"API-Key": "<api-key>",
"API-Nonce": "<api-key>",
"API-Sign": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'API-Key': '<api-key>', 'API-Nonce': '<api-key>', 'API-Sign': '<api-key>'}
};
fetch('https://api.services.payward.com/v1/accounts/{account_id}/conversions/{conversion_id}/transactions', 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}/conversions/{conversion_id}/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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}/conversions/{conversion_id}/transactions"
req, _ := http.NewRequest("GET", 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.get("https://api.services.payward.com/v1/accounts/{account_id}/conversions/{conversion_id}/transactions")
.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}/conversions/{conversion_id}/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.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": "conv_smoke_001",
"status": "completed",
"conversion_rule_id": "12345678-1234-1234-1234-123456789012",
"from": {
"symbol": "EUR",
"amount": "100.00",
"type": "bank",
"via": "sepa",
"status": "settled"
},
"to": {
"symbol": "BTC",
"amount": "0.002",
"status": "settled",
"via": "bitcoin"
},
"chain_references": {
"deposit_txid": "deposit-eur-001",
"withdraw_txid": "withdraw-btc-001"
},
"created_at": "2026-04-01T12:00:00Z"
},
{
"id": "conv_smoke_002",
"status": "pending_deposit",
"conversion_rule_id": "12345678-1234-1234-1234-123456789012",
"chain_references": {},
"created_at": "2026-04-02T09:30:00Z"
},
{
"id": "conv_smoke_003",
"status": "held",
"conversion_rule_id": "12345678-1234-1234-1234-123456789012",
"from": {
"symbol": "EUR",
"amount": "250.00",
"type": "bank",
"via": "sepa",
"status": "held"
},
"chain_references": {
"deposit_txid": "deposit-held-001"
},
"created_at": "2026-04-03T14:15:00Z"
}
]
}{
"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": "<string>",
"status": 404,
"instance": "<string>",
"code": "not_found",
"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": 501,
"instance": "<string>",
"code": "unimplemented",
"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": [
{}
]
}
}List conversion transactions
Lists transactions produced by a single conversion, ordered by
created_at descending.
Each conversion (rule) accumulates zero-or-more transactions over its
lifetime as deposits arrive and trades execute. Use ListConversions
to enumerate the rules themselves.
curl --request GET \
--url https://api.services.payward.com/v1/accounts/{account_id}/conversions/{conversion_id}/transactions \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>'import requests
url = "https://api.services.payward.com/v1/accounts/{account_id}/conversions/{conversion_id}/transactions"
headers = {
"API-Key": "<api-key>",
"API-Nonce": "<api-key>",
"API-Sign": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'API-Key': '<api-key>', 'API-Nonce': '<api-key>', 'API-Sign': '<api-key>'}
};
fetch('https://api.services.payward.com/v1/accounts/{account_id}/conversions/{conversion_id}/transactions', 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}/conversions/{conversion_id}/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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}/conversions/{conversion_id}/transactions"
req, _ := http.NewRequest("GET", 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.get("https://api.services.payward.com/v1/accounts/{account_id}/conversions/{conversion_id}/transactions")
.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}/conversions/{conversion_id}/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.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": "conv_smoke_001",
"status": "completed",
"conversion_rule_id": "12345678-1234-1234-1234-123456789012",
"from": {
"symbol": "EUR",
"amount": "100.00",
"type": "bank",
"via": "sepa",
"status": "settled"
},
"to": {
"symbol": "BTC",
"amount": "0.002",
"status": "settled",
"via": "bitcoin"
},
"chain_references": {
"deposit_txid": "deposit-eur-001",
"withdraw_txid": "withdraw-btc-001"
},
"created_at": "2026-04-01T12:00:00Z"
},
{
"id": "conv_smoke_002",
"status": "pending_deposit",
"conversion_rule_id": "12345678-1234-1234-1234-123456789012",
"chain_references": {},
"created_at": "2026-04-02T09:30:00Z"
},
{
"id": "conv_smoke_003",
"status": "held",
"conversion_rule_id": "12345678-1234-1234-1234-123456789012",
"from": {
"symbol": "EUR",
"amount": "250.00",
"type": "bank",
"via": "sepa",
"status": "held"
},
"chain_references": {
"deposit_txid": "deposit-held-001"
},
"created_at": "2026-04-03T14:15:00Z"
}
]
}{
"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": "<string>",
"status": 404,
"instance": "<string>",
"code": "not_found",
"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": 501,
"instance": "<string>",
"code": "unimplemented",
"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
Internet International Bank Account Number identifying the PWS account the conversion belongs to.
14 - 42Identifier of the conversion whose transactions to list.
Query Parameters
Maximum number of results to return on a single page. Defaults to 20, maximum 25.
1 <= x <= 25Opaque cursor returned by a previous response's next_page_token. Omit
to start from the beginning.
1 - 256