Get UPA by external user ID
curl --request GET \
--url https://prod-api.stableyard.fi/v2/accounts/external/{externalUserId} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://prod-api.stableyard.fi/v2/accounts/external/{externalUserId}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://prod-api.stableyard.fi/v2/accounts/external/{externalUserId}', 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://prod-api.stableyard.fi/v2/accounts/external/{externalUserId}",
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: Basic <encoded-value>"
],
]);
$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://prod-api.stableyard.fi/v2/accounts/external/{externalUserId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://prod-api.stableyard.fi/v2/accounts/external/{externalUserId}")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod-api.stableyard.fi/v2/accounts/external/{externalUserId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"account": {
"id": "acct_123",
"externalUserId": "user_123",
"subjectType": "individual",
"status": "active",
"paymentAcceptance": {
"publicReceiveEnabled": false,
"version": 1
},
"metadata": {},
"createdAt": "2026-08-28T10:00:00.000Z",
"updatedAt": "2026-08-28T10:00:00.000Z"
},
"paymentHandle": {
"id": "handle_123",
"accountId": "acct_123",
"namespace": "partner",
"handle": "alice",
"status": "active",
"createdAt": "2026-08-28T10:00:00.000Z",
"updatedAt": "2026-08-28T10:00:00.000Z"
},
"connectedWallets": [
{
"id": "wallet_123",
"accountId": "acct_123",
"kind": "evm",
"chainId": 42161,
"address": "0x1111111111111111111111111111111111111111",
"label": "Connected wallet",
"status": "active",
"ownershipVerificationStatus": "unverified",
"ownershipVerificationMethod": "eip712_signature",
"settlementProfileId": "settle_123",
"createdAt": "2026-08-28T10:00:00.000Z",
"updatedAt": "2026-08-28T10:00:00.000Z"
}
],
"settlementProfile": {
"id": "settle_123",
"accountId": "acct_123",
"version": 2,
"connectedWalletId": "wallet_123",
"settlementDestinationId": "destination_123",
"status": "draft",
"destinationType": "smart_wallet",
"chainId": 42161,
"destinationAddress": "11111111111111111111111111111111",
"assetSymbol": "USDC",
"tokenAddress": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"snapshot": {}
}
}{
"error": {
"code": "bad_request",
"message": "The request is invalid",
"details": "example"
}
}{
"error": {
"code": "bad_request",
"message": "The request is invalid",
"details": "example"
}
}{
"error": {
"code": "bad_request",
"message": "The request is invalid",
"details": "example"
}
}{
"error": {
"code": "bad_request",
"message": "The request is invalid",
"details": "example"
}
}{
"error": {
"code": "bad_request",
"message": "The request is invalid",
"details": "example"
}
}{
"error": {
"code": "bad_request",
"message": "The request is invalid",
"details": "example"
}
}{
"error": {
"code": "bad_request",
"message": "The request is invalid",
"details": "example"
}
}Universal Payment Accounts
Get an account by external user ID
Fetch a UPA using the externalUserId you supplied when you created it.
GET
/
v2
/
accounts
/
external
/
{externalUserId}
Get UPA by external user ID
curl --request GET \
--url https://prod-api.stableyard.fi/v2/accounts/external/{externalUserId} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://prod-api.stableyard.fi/v2/accounts/external/{externalUserId}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://prod-api.stableyard.fi/v2/accounts/external/{externalUserId}', 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://prod-api.stableyard.fi/v2/accounts/external/{externalUserId}",
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: Basic <encoded-value>"
],
]);
$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://prod-api.stableyard.fi/v2/accounts/external/{externalUserId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://prod-api.stableyard.fi/v2/accounts/external/{externalUserId}")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod-api.stableyard.fi/v2/accounts/external/{externalUserId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"account": {
"id": "acct_123",
"externalUserId": "user_123",
"subjectType": "individual",
"status": "active",
"paymentAcceptance": {
"publicReceiveEnabled": false,
"version": 1
},
"metadata": {},
"createdAt": "2026-08-28T10:00:00.000Z",
"updatedAt": "2026-08-28T10:00:00.000Z"
},
"paymentHandle": {
"id": "handle_123",
"accountId": "acct_123",
"namespace": "partner",
"handle": "alice",
"status": "active",
"createdAt": "2026-08-28T10:00:00.000Z",
"updatedAt": "2026-08-28T10:00:00.000Z"
},
"connectedWallets": [
{
"id": "wallet_123",
"accountId": "acct_123",
"kind": "evm",
"chainId": 42161,
"address": "0x1111111111111111111111111111111111111111",
"label": "Connected wallet",
"status": "active",
"ownershipVerificationStatus": "unverified",
"ownershipVerificationMethod": "eip712_signature",
"settlementProfileId": "settle_123",
"createdAt": "2026-08-28T10:00:00.000Z",
"updatedAt": "2026-08-28T10:00:00.000Z"
}
],
"settlementProfile": {
"id": "settle_123",
"accountId": "acct_123",
"version": 2,
"connectedWalletId": "wallet_123",
"settlementDestinationId": "destination_123",
"status": "draft",
"destinationType": "smart_wallet",
"chainId": 42161,
"destinationAddress": "11111111111111111111111111111111",
"assetSymbol": "USDC",
"tokenAddress": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"snapshot": {}
}
}{
"error": {
"code": "bad_request",
"message": "The request is invalid",
"details": "example"
}
}{
"error": {
"code": "bad_request",
"message": "The request is invalid",
"details": "example"
}
}{
"error": {
"code": "bad_request",
"message": "The request is invalid",
"details": "example"
}
}{
"error": {
"code": "bad_request",
"message": "The request is invalid",
"details": "example"
}
}{
"error": {
"code": "bad_request",
"message": "The request is invalid",
"details": "example"
}
}{
"error": {
"code": "bad_request",
"message": "The request is invalid",
"details": "example"
}
}{
"error": {
"code": "bad_request",
"message": "The request is invalid",
"details": "example"
}
}Looks up the UPA by the partner-owned
externalUserId supplied at creation and returns the same account bundle as Get an account. The lookup is scoped to the authenticated app and environment.Authorizations
HTTP Basic auth. Username is the Stableyard app ID. Password is the app secret. The optional Stableyard-Version request header must match the environment pin.
Headers
Optional contract-version assertion. Omit it to use the app environment's pinned version. A different supported version is accepted only after that environment is explicitly migrated.
Available options:
2026-09-09 Path Parameters
Partner-owned external user id supplied when the UPA was created.
Maximum string length:
128Example:
"user_123"