Create a fiat account
Create a fiat account. The request format depends on the provider: LEGEND uses application/json, and GLDB uses multipart/form-data.
LEGEND
Idempotency-Keyis required.- On synchronous success, the standard account is returned directly, and the status can be
ACTIVE. IfPENDINGis returned, query the account detail. - If
fiat.account.channel.detail_unavailableis returned, query with the account ID in the message. Do not open the account again. - A request body with undefined fields is rejected.
GLDB
- Do not send
Idempotency-Key. If you send it,fiat.account.idempotency_key.unsupportedis returned. currencyaccepts only one currency. Multi-currency applications are not supported.- Account opening requires manual review. Create returns
PENDING, andaccountIdis the application number. Use it to poll the account detail. After approval, the status changes toACTIVE. - No Webhook is sent for status changes.
If you send a field that belongs to the other provider, fiat.account.field.unsupported is returned. If a field that this provider requires is missing, fiat.account.field.required is returned.
bearerAuthAuthorizationBearer <token>The access_token obtained from POST /oauth2/token. Header format: Authorization: Bearer {accessToken}.
X-Channel-Provider*stringProvider identifier, such as GLDB
Idempotency-Key?stringUnique request identifier (UUID recommended). Required for LEGEND. For the rules, see the Payment product guide. Do not send it for GLDB. If you send it, fiat.account.idempotency_key.unsupported is returned.
- body
LEGEND account opening request (application/json).
providerCustomerId?stringCustomer identifier on the provider side, supplied by the caller. Required for LEGEND; it is the user_short_id.
currency*stringISO 4217 currency code, 3 uppercase letters.
bankCountry?stringISO 3166-1 alpha-2 country code, 2 uppercase letters.
alias?stringAccount alias. Letters, digits, spaces, and hyphens only. Up to 50 characters.
openingOptionId?stringOpening option ID from the opening options query. If omitted, the provider chooses the route.
Returns the account detail. For LEGEND, status can be ACTIVE on synchronous success. GLDB returns PENDING with only accountId (the application number), currency, status, and accountHolderName.
application/json- response
code?integerBusiness status code
message?stringtraceId?stringRequest trace ID. Provide it when you contact technical support
data?Fiat account detail.
curl -X POST 'https://api.test.stabofx.com/openapi/v1/fiat-accounts' \ -H 'X-Channel-Provider: GLDB' \ -H 'Content-Type: application/json' \ -d '{ "providerCustomerId": "usr_user123", "currency": "USD", "bankCountry": "SG", "alias": "Main USD Account", "openingOptionId": "brt_abcdefghijklmnopqrstuvwxyz"}'{ "code": 200, "message": "OK", "traceId": "t_xxxxxxxx", "data": { "accountId": "bnk_abc123", "providerCustomerId": "usr_user123", "currency": "USD", "status": "PENDING", "alias": "Main USD Account", "bankCountry": "SG", "bankName": "DBS Bank", "swiftBic": "DBSSSGSG", "accountNumber": "072001234", "routingCodes": [ { "type": "ROUTING_NUMBER", "value": "123456789" } ] }}Submit RFI answers POST
Submits the answers to all questions of an RFI waiting for answers. The request is `multipart/form-data`. The `data` part is the JSON answers. Each other part is one file, and its part name equals a value in `answers[].clientFileIds`. - If the RFI is already under review (`UNDER_REVIEW`), the current status is returned. Nothing is written and there is no `submittedAt`. - `Idempotency-Key` is required. Reuse the original key when you retry the same submission. The provider does not accept it twice. - Acceptance is not approval and does not lift `restrictions`. - Stabo checks only that required fields are not empty, the safe characters of `clientFileId`, the file part match, and file size and type. The provider decides question ownership, required questions, length, file count, and selected values. A failure returns `openapi.channel.rejected`. For the answer format of each question type, see [Provider KYC and account opening](/en/docs/guide/provider-kyc#submit-rfi-answers).
List opening options GET
List the available opening routes and fees for a customer. `currency` and `bankCountry` are both optional. Without both, all options of the customer are returned. `partnerBanks` are candidate banks only; the account detail shows the bank actually used. Applies to LEGEND only. GLDB does not support it and returns `openapi.channel.unsupported`.