> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stableyard.fi/llms.txt
> Use this file to discover all available pages before exploring further.

# API reference

> Base URLs, authentication, objects and the conventions every endpoint follows.

The Partner API is called from your backend with your app credentials. Every Partner API endpoint is grouped in this tab’s sidebar, and each endpoint page has a request playground. Browser and mobile code uses the client and checkout endpoints instead, with a short-lived session your backend creates.

## Base URLs

| Environment | Base URL |
| - | - |
| Sandbox | `https://staging-api-v2.stableyard.fi` |
| Production | `https://prod-api.stableyard.fi` |

Credentials belong to one environment. Every endpoint page has a server selector, so a copied request switches between the two without edits.

## Authentication

HTTP Basic: app ID as the username, app secret as the password.

```bash theme={"system"}
curl https://staging-api-v2.stableyard.fi/v2/partners/config \
  -u "$APP_ID:$APP_SECRET"
```

The app secret is a server-side credential. It never reaches browser, mobile or agent-visible code. See [Authentication](/authentication).

## Conventions

| Rule | What it means for you |
| - | - |
| **Idempotency** | Send an `Idempotency-Key` on every endpoint that lists one; the endpoint page marks it required or optional. An identical retry returns the original result; the same key with a changed body is refused. See [Idempotency](/idempotency). |
| **Amounts** | Exact decimal strings, never floating-point numbers. |
| **Identifiers** | Prefixed, stable and opaque. Store them as strings. |
| **Versioning** | Responses echo `Stableyard-Version`. A dated contract never changes; a new date is a new contract. |
| **Availability** | What a credential can use depends on what is enabled for your app and on its permissions. Read `GET /v2/partners/config` for app access and `GET /v2/accounts/{accountId}/capabilities` for an account's bank approval. The bank and on-ramp requirements endpoints report which countries, rails and wallets are available. |

## Bank payouts and funding

Paying a US linked bank is a send Payment with `destination.type: "bank_account"`, reported through `payment.*` events. See [Off-ramps](/payments/off-ramps). A reusable USD funding account is an on-ramp account, with `bank_funding.*` events for each inbound transfer. See [On-ramp accounts](/concepts/on-ramp-accounts).

A published endpoint does not enable a rail for your app. Check [US bank environments](/supported-regions-and-currencies#us-bank-environments) and confirm with Stableyard before offering either flow.

## Objects

Every object, its ID prefix and the call that creates it are on [Concepts](/concepts/overview).

<Card title="Start with your configuration" icon="list-check" href="/api-reference/configuration/get-partner-config">
  `GET /v2/partners/config` proves the credential and reports what it can use. Call it first.
</Card>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.