Changelog
This page lists changes to the Stablegate public documentation and API. Entries are ordered newest first.
November 11, 2026
This release makes the API explain itself: every failed call answers in one envelope with a request id a partner can quote, the documentation covers that surface end to end, and a customer's verification state is readable without guessing from kyc_level.
GET /v1/customers/{customer_uuid}/verification/returns the latest KYC application with its status and the message compliance wrote for the customer, and the verification link can be re-issued while the application waits for the customer or for compliance.- The orders list reports the commission the platform actually charged, together with
commission_asset_code, so the amount matches the order details for both on-ramps and off-ramps. check-feesnames the asset the commission is charged in: on an off-ramp the amount is deducted in the crypto you send, not in EUR.- The verification link section says which open applications accept a new link:
new,waitingandpendingkeep it short-lived, so the partner asks for a fresh one. - The guide examples and the order list fields show the commission in the asset it is charged in, with
commission_asset_codebeside the amount. - Every response carries an
X-Request-Idheader: send your own value and the same id appears in the header and in thetrace_idof an error, so a gateway timeout without a body still leaves a trace. - A new Errors page covers the body of every error, the status codes, the
devapi_*codes you can branch on, and when to retry. - A new Quickstart page walks seven requests from an API key to a paid-out on-ramp order.
- The On-Ramp and Off-Ramp guides describe
check-limitsthe way the API returns it — only the rules the operation breaks — and name the fields a payout needs. - External Accounts carry the third-party flag you set yourself when registering a bank account; payouts above the invoice threshold ask for the supporting document based on it.
- The Postman Collection page and the API reference come from the same OpenAPI snapshot, so every endpoint is listed once.
November 2, 2026
A customer's account can now be activated through the API: Create a Verification Order returns the bank details the customer pays the test deposit to, and permissions.can_trade turns true once the deposit arrives. A regular order does not activate an account.
- A customer created by mistake can be closed through the API: Close a Customer answers
204and leaves the record visible in theclosedstate.
October 31, 2026
A bank account now describes the payment scheme it moves money on. POST and PUT /v1/customers/{customer_uuid}/bank-accounts/ take supported_rails (sepa, swift, ach, wire), account_number for accounts outside SEPA, bank_routing_number for US payments, and the address of the bank and of the account holder. See External Accounts.
- One record covers one scheme: SEPA takes a separate account from ACH and FedWire.
holder_nameis the only field the request body requires. SEPA needs aniban, SWIFT needs abank_code(BIC), US payments needbank_country: "US"and a 9-digitbank_routing_number.- The bank decides which details it needs to execute a payout. It can require the holder address and the bank address for SWIFT and US payouts even though the API accepts an account without them, and rejects the payout when the order is executed.
October 30, 2026
- Orders that pay out to a third-party bank account wait for an invoice when the amount is above 15 000 EUR equivalent: such an order is created as usual but Stablegate does not execute it until the invoice is attached. See Orders.
- Stablegate no longer emails deposit instructions for orders you create through the API, so show the payment details to the customer on your own screen. Emails about the received deposit and the sent payout are unchanged. See Integration Checklist.
October 29, 2026
The documentation has a new design: the API Reference has a page for every endpoint, and /openapi.json, llms.txt and the Postman collection are generated from the same specification. Existing links keep working.
Check these before you update.
- Limit amounts are decimal strings like
"5000.00"— inGET /limits/,POST /check-limits/and the order list. Parse them as decimals, not numbers. See Limits. - Every error,
422included, returnstrace_id,error_code,messageanddetails. Thedetailkey is still there and goes away in a later release, so readmessageanderror_code. - A customer that does not exist or belongs to another partner answers
404instead of403.
New in orders.
source.deposit_statusshows that the customer's transfer has arrived while the order is stillnew. See Orders.exchange_rateandrate_valid_untilshow the rate the order holds and until when.source.deposit_bank_infocarriesholder_nameandbank_addressto give to the customer.- Limit rules carry
rail_types,rail_codesandoperation_types.
Also fixed.
POST /v1/customers/{customer_uuid}/orders/{order_uuid}/cancel/works for orders innew.- Creating a customer with an email that is already taken answers
400withdevapi_email_occupied_errorinstead of500. - An
Idempotency-Keycache entry belongs to the API key that made the request. - A wallet address must be unique across all customers on its network; a conflict answers
oa_client_external_account_address_exists. - A path without the trailing slash redirects to
https://and keepsX-Api-Key.
October 2, 2026
This release makes bank accounts easier to register. bank_code is no longer required: Stablegate derives the BIC and the bank name from the IBAN, and the new GET /v1/bank-accounts/info-by-iban/ shows what will be filled in — see External Accounts. Order details now also carry the hash of the customer's crypto deposit in source.transaction_hash, so you can show the customer that the transfer has been seen.
Also in this release:
- When the bank registry has no BIC for an IBAN, creating a bank account answers
400withdevapi_bank_code_required_error; passbank_codeyourself in that case. exchange_ratereturned bycheck-feesnow includes the exchange spread: it is the ratedestination.amountis calculated with. Amounts are rounded to the precision of their asset instead of two decimals. See Fees.- An order whose payout is rejected by the payment provider now moves from
processingtorejected; it used to end up infailed. Afailedorder can now be stopped by Stablegate operations and move tostopped. See Orders. - A webhook now receives only the events of the account it belongs to.
- An API key whose account has no access to the Partner API answers
403instead of an internal error. When Stablegate cannot verify a key because an internal service is unavailable, the API answers503— retry the request. See Authentication.
September 15, 2026
This release brings Instant (Light) Verification to the Partner API. POST /v1/customers/{customer_uuid}/verification/instant/ takes the customer's first name, last name, and date of birth, runs the automated AML screening, and approves the application when the screening is clear. It is documented on the Customers guide together with the existing Standard verification link endpoint.
Also in this release:
GET /v1/customers/{customer_uuid}/now returnskyc_level, so you can poll the outcome of a verification on the detail endpoint (previously only the list endpoint had it).- Documented what Instant (Light) Verification consists of on Individual Verification: first name, last name, and date of birth, followed by an automated AML screening; approval is automatic when the screening is clear. Verification has to be started by the customer or by the partner through the API — it does not begin on its own after registration.
- Clarified on Account Activation that the test deposit or video interview applies to Standard verification only; Instant verification needs no activation. The
permissions.can_tradenote on Customers now says which level requires activation.
August 25, 2026
This release corrects the documentation where it disagreed with the API. Two corrections matter most for an integration. A customer cannot transact before verification: the €1,000 monthly limit applies only after Light Verification, and before any verification the limit is €0 — see Individual Verification and Limits. And every transaction is charged whichever is greater, the percentage rate or the €20 minimum commission, which was previously undocumented and could look like a flat fee at small transaction sizes — see Fees.
Also in this release:
- Corrected the Customers guide: customer records cannot be updated after creation (only
GETis supported on/v1/customers/{customer_uuid}/;PATCH/PUTreturn405). The March 4, 2026 entry below incorrectly listed "update" among the supported operations. - Documented
bank_code(BIC/SWIFT) as a required field on bank account creation — it was previously listed as optional. - Documented the
statusandverified_atfields on crypto wallet responses under External Accounts, so you can confirm Satoshi Test / WalletConnect ownership verification via the API before placing an order. - Clarified in Customers that
email/usernameuniqueness is enforced across your whole legal entity, not per customertype.
April 21, 2026
- Published machine-readable resources for LLM coding agents at the site root:
llms.txt(curated index following the llmstxt.org spec),llms-full.txt(full documentation bundle in one file), andopenapi.json(raw OpenAPI 3.1 spec). - Added the For LLM Agents page describing these resources and when to use each.
April 20, 2026
- Updated the list of non-serviced countries to reflect current sanctions and policy.
April 13, 2026
- Added the Bank Providers guide and API endpoint for discovering banks, their supported rails, and the exchange routes accessible through each bank.
- Added the
exchange_ratefield to fee quotes so you can surface the live rate before placing an order. See Fees. - Cross-linked the Bank Providers concept from the Introduction, Getting Started, and the integration guides.
April 10, 2026
- Added the Webhooks guide: event types, payload schemas, HMAC signature verification, and endpoint registration.
- Updated Orders and Getting Started to reference webhook-driven order status updates as an alternative to polling.
March 20, 2026
- Documented the
external_referencefield on orders, which lets you correlate Stablegate orders with identifiers in your own system. See Orders. - Clarified the end-to-end integration flow in the Introduction and Getting Started pages.
- Corrected inaccuracies across the Customers, Idempotency, Fees, Limits, and integration guides.
- Refreshed the Postman collection to match the current API contract.
March 4, 2026
- Added the Customers guide covering creation, retrieval, listing, and update of customer records, along with customer UUID scoping rules.
- Added the Idempotency guide covering the
Idempotency-Keyheader and safe-retry semantics. - Expanded the OpenAPI specification to cover the full set of
v1endpoints and schemas rendered on the API Reference.
February 16, 2026
February 13, 2026
- Replaced the initial placeholder guides with the current resource-oriented documentation. Integration content now lives under Getting Started, Integration Guides, and the per-resource guides (Customers, External Accounts, Exchange Routes, Orders, Fees & Limits).
- Updated the OpenAPI specification accordingly.
December 5, 2025
- Added the Terms of Business page to the Verification section.
October 30, 2025
- Initial release of the public Stablegate documentation, including integration guides, API reference, and verification rules.