Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/lightspark-internal-accounts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Grid Internal Accounts API
description: 'API for managing global payments on the open Money Grid. Built by Lightspark. See the full documentation at https://docs.lightspark.com/.
'
version: '2025-10-13'
contact:
name: Lightspark Support
email: support@lightspark.com
license:
name: Proprietary
url: https://lightspark.com/terms
servers:
- url: https://api.lightspark.com/grid/2025-10-13
description: Production server
security:
- BasicAuth: []
- AgentAuth: []
tags:
- name: Internal Accounts
description: Internal account management endpoints for creating and managing internal accounts
paths:
/customers/internal-accounts:
get:
summary: List Customer internal accounts
description: 'Retrieve a list of internal accounts with optional filtering parameters. Returns all
internal accounts that match the specified filters. If no filters are provided, returns all internal accounts
(paginated).
Internal accounts are created automatically when a customer is created based on the platform configuration.
'
operationId: listCustomerInternalAccounts
tags:
- Internal Accounts
security:
- BasicAuth: []
parameters:
- name: currency
in: query
description: Filter by currency code
required: false
schema:
type: string
- name: customerId
in: query
description: Filter by internal accounts associated with a specific customer
required: false
schema:
type: string
- name: type
in: query
description: Filter by internal account type. Use `EMBEDDED_WALLET` to find the self-custodial wallet provisioned for a customer, or `INTERNAL_FIAT` / `INTERNAL_CRYPTO` for the platform-managed holding accounts.
required: false
schema:
$ref: '#/components/schemas/InternalAccountType'
- name: limit
in: query
description: Maximum number of results to return (default 20, max 100)
required: false
schema:
type: integer
minimum: 1
maximum: 100
default: 20
- name: cursor
in: query
description: Cursor for pagination (returned from previous request)
required: false
schema:
type: string
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/InternalAccountListResponse'
'400':
description: Bad request - Invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error400'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'500':
description: Internal service error
content:
application/json:
schema:
$ref: '#/components/schemas/Error500'
/platform/internal-accounts:
get:
summary: List platform internal accounts
description: 'Retrieve a list of all internal accounts that belong to the platform, as opposed to an individual customer.
These accounts are created automatically when the platform is configured for each supported currency. They can be used for things like distributing bitcoin rewards to customers, or for other platform-wide purposes.
'
operationId: listPlatformInternalAccounts
tags:
- Internal Accounts
security:
- BasicAuth: []
parameters:
- name: currency
in: query
description: Filter by currency code
required: false
schema:
type: string
- name: type
in: query
description: Filter by internal account type. Use `EMBEDDED_WALLET` to find the self-custodial wallet provisioned for a customer, or `INTERNAL_FIAT` / `INTERNAL_CRYPTO` for the platform-managed holding accounts.
required: false
schema:
$ref: '#/components/schemas/InternalAccountType'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/PlatformInternalAccountListResponse'
'400':
description: Bad request - Invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error400'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'500':
description: Internal service error
content:
application/json:
schema:
$ref: '#/components/schemas/Error500'
/internal-accounts/{id}:
parameters:
- name: id
in: path
description: The id of the internal account to update.
required: true
schema:
type: string
example: InternalAccount:019542f5-b3e7-1d02-0000-000000000002
patch:
summary: Update internal account
description: 'Update mutable fields on an internal account. Today this supports updating the wallet privacy setting for an Embedded Wallet internal account.
Updating wallet privacy is a two-step signed-retry flow:
1. Call `PATCH /internal-accounts/{id}` with the request body `{ "privateEnabled": true }` and no signature headers. Grid returns `202` with `payloadToSign`, `requestId`, and `expiresAt`.
2. Use the session API keypair of a verified authentication credential on the same internal account to build an API-key stamp over `payloadToSign`, then retry with that full stamp as the `Grid-Wallet-Signature` header and the `requestId` echoed back as the `Request-Id` header. The retry body must carry the same update fields submitted in step 1. The signed retry returns `200` with the updated internal account.
'
operationId: updateInternalAccount
tags:
- Internal Accounts
security:
- BasicAuth: []
parameters:
- name: Grid-Wallet-Signature
in: header
required: false
description: Full API-key stamp built over the prior `payloadToSign` with the session API keypair of a verified authentication credential on the target internal account. Required on the signed retry; ignored on the initial call.
schema:
type: string
example: eyJwdWJsaWNLZXkiOiIwMmExYjIuLi4iLCJzY2hlbWUiOiJTSUdOQVRVUkVfU0NIRU1FX1RLX0FQSV9QMjU2Iiwic2lnbmF0dXJlIjoiMzA0NTAyMjEwMC4uLiJ9
- name: Request-Id
in: header
required: false
description: The `requestId` returned in a prior `202` response, echoed back on the signed retry so the server can correlate it with the issued challenge. Required on the signed retry; must be paired with `Grid-Wallet-Signature`.
schema:
type: string
example: Request:019542f5-b3e7-1d02-0000-000000000010
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/InternalAccountUpdateRequest'
examples:
updateWalletPrivacy:
summary: Update wallet privacy request (both steps)
value:
privateEnabled: true
responses:
'200':
description: Signed retry accepted. Returns the updated internal account.
content:
application/json:
schema:
$ref: '#/components/schemas/InternalAccount'
examples:
enabled:
summary: Wallet privacy enabled
value:
id: InternalAccount:019542f5-b3e7-1d02-0000-000000000002
customerId: Customer:019542f5-b3e7-1d02-0000-000000000001
type: EMBEDDED_WALLET
status: ACTIVE
balance:
amount: 12550
currency:
code: USD
name: United States Dollar
symbol: $
decimals: 2
totalBalance:
amount: 12550
currency:
code: USD
name: United States Dollar
symbol: $
decimals: 2
fundingPaymentInstructions: []
privateEnabled: true
createdAt: '2026-04-08T15:30:00Z'
updatedAt: '2026-04-08T15:35:02Z'
'202':
description: Challenge issued. The response contains `payloadToSign` (which binds the submitted update fields) plus a `requestId`. Build an API-key stamp over `payloadToSign` with the session API keypair and echo `requestId` on the retry.
content:
application/json:
schema:
$ref: '#/components/schemas/SignedRequestChallenge'
examples:
challenge:
summary: Internal account update challenge
value:
payloadToSign: '{"organizationId":"org_2m9F...","parameters":{"encoding":"PAYLOAD_ENCODING_HEXADECIMAL","hashFunction":"HASH_FUNCTION_NO_OP","payload":"9f3b...","signWith":"sp1q..."},"timestampMs":"1775681700000","type":"ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2"}'
requestId: Request:019542f5-b3e7-1d02-0000-000000000010
expiresAt: '2026-04-08T15:35:00Z'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error400'
'401':
description: Unauthorized. Returned when the provided `Grid-Wallet-Signature` is missing, malformed, or does not match a pending internal account update challenge, when the `Request-Id` does not match an unexpired pending challenge, or when the retry body does not match the update fields bound into `payloadToSign` on the initial call.
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'404':
description: Internal account not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error404'
'500':
description: Internal service error
content:
application/json:
schema:
$ref: '#/components/schemas/Error500'
/internal-accounts/{id}/export:
post:
summary: Export internal account wallet credentials
description: 'Export the wallet credentials of an Embedded Wallet internal account. The returned wallet credentials are HPKE-encrypted to the `clientPublicKey` supplied in the request body.
Export is a two-step signed-retry flow (same pattern as add-additional credential, revoke credential, and revoke session):
1. Call `POST /internal-accounts/{id}/export` with the request body `{ "clientPublicKey": "..." }` and no signature headers. Grid binds the `clientPublicKey` into the `payloadToSign` it returns, so the subsequent stamp in `Grid-Wallet-Signature` commits to the target encryption key. The response is `202` with `payloadToSign`, `requestId`, and `expiresAt`.
2. Use the session API keypair of a verified authentication credential on the same internal account to build an API-key stamp over `payloadToSign`, then retry with that full stamp as the `Grid-Wallet-Signature` header and the `requestId` echoed back as the `Request-Id` header. The retry body must carry the **same** `clientPublicKey` submitted in step 1 — Grid rejects the retry with `401` if it disagrees with what was bound into `payloadToSign`. The signed retry returns `200` with `encryptedWalletCredentials`, which the client decrypts with the matching private key.
The `clientPublicKey` is ephemeral: generate a fresh P-256 keypair for this export and discard the private key after decrypting. Do not reuse the keypair from any prior verify call — that private key was already discarded after decrypting the session signing key it was issued against.
'
operationId: exportInternalAccount
tags:
- Internal Accounts
security:
- BasicAuth: []
parameters:
- name: id
in: path
description: The id of the internal account to export.
required: true
schema:
type: string
- name: Grid-Wallet-Signature
in: header
required: false
description: Full API-key stamp built over the prior `payloadToSign` with the session API keypair of a verified authentication credential on the target internal account. Required on the signed retry; ignored on the initial call.
schema:
type: string
example: eyJwdWJsaWNLZXkiOiIwMmExYjIuLi4iLCJzY2hlbWUiOiJTSUdOQVRVUkVfU0NIRU1FX1RLX0FQSV9QMjU2Iiwic2lnbmF0dXJlIjoiMzA0NTAyMjEwMC4uLiJ9
- name: Request-Id
in: header
required: false
description: The `requestId` returned in a prior `202` response, echoed back exactly on the signed retry so the server can correlate it with the issued challenge. Required on the signed retry; must be paired with `Grid-Wallet-Signature`.
schema:
type: string
example: Request:7c4a8d09-ca37-4e3e-9e0d-8c2b3e9a1f21
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/InternalAccountExportRequest'
examples:
export:
summary: Export request (both steps)
value:
clientPublicKey: 04f45f2a22c908b9ce09a7150e514afd24627c401c38a4afc164e1ea783adaaa31d4245acfb88c2ebd42b47628d63ecabf345484f0a9f665b63c54c897d5578be2
responses:
'200':
description: Signed retry accepted. Returns the encrypted wallet credentials.
content:
application/json:
schema:
$ref: '#/components/schemas/InternalAccountExportResponse'
'202':
description: Challenge issued. The response contains `payloadToSign` (which binds the submitted `clientPublicKey`) plus a `requestId`. Build an API-key stamp over `payloadToSign` with the session API keypair and echo `requestId` on the retry.
content:
application/json:
schema:
$ref: '#/components/schemas/SignedRequestChallenge'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error400'
'401':
description: Unauthorized. Returned when the provided `Grid-Wallet-Signature` is missing, malformed, or does not match a pending export challenge for this internal account, when the `Request-Id` does not match an unexpired pending challenge, or when the retry's `clientPublicKey` does not match the one bound into `payloadToSign` on the initial call.
content:
application/json:
schema:
$ref: '#/components/schemas/Error401'
'404':
description: Internal account not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error404'
'500':
description: Internal service error
content:
application/json:
schema:
$ref: '#/components/schemas/Error500'
components:
schemas:
SignedRequestChallenge:
title: Signed Request Challenge
type: object
required:
- payloadToSign
- requestId
- expiresAt
description: Common base for two-step signed-retry challenge responses on Embedded Wallet endpoints (credential registration or revocation, session refresh or revocation, wallet export, customer email updates, and similar). Holds the signing fields shared across every challenge shape; each variant composes this base via `allOf` and adds its own resource `id` (and `type`, when applicable) with variant-specific description and example.
properties:
payloadToSign:
type: string
description: Canonical payload for the retry authorization stamp. Build an API-key stamp over this exact value with the session API keypair, then send the full base64url-encoded stamp in `Grid-Wallet-Signature` on the retry that completes the original request.
example: '{"organizationId":"org_2m9F...","parameters":{"userId":"user_2m9F..."},"timestampMs":"1775681700000","type":"ACTIVITY_TYPE_EXAMPLE"}'
requestId:
type: string
description: Grid-issued `Request:<uuid>` identifier for this pending request. Echo this value exactly in the `Request-Id` header on the signed retry so the server can correlate the retry with the issued challenge.
example: Request:7c4a8d09-ca37-4e3e-9e0d-8c2b3e9a1f21
expiresAt:
type: string
format: date-time
description: Timestamp after which this challenge is no longer valid. The signed retry must be submitted before this time.
example: '2026-04-08T15:35:00Z'
BasePaymentAccountInfo:
type: object
required:
- accountType
properties:
accountType:
$ref: '#/components/schemas/PaymentAccountType'
InternalAccountListResponse:
type: object
required:
- data
- hasMore
properties:
data:
type: array
description: List of internal accounts matching the filter criteria
items:
$ref: '#/components/schemas/InternalAccount'
hasMore:
type: boolean
description: Indicates if more results are available beyond this page
nextCursor:
type: string
description: Cursor to retrieve the next page of results (only present if hasMore is true)
totalCount:
type: integer
description: Total number of customers matching the criteria (excluding pagination)
BdtAccountInfo:
allOf:
- $ref: '#/components/schemas/BdtAccountInfoBase'
- type: object
required:
- paymentRails
properties:
paymentRails:
type: array
items:
type: string
enum:
- BANK_TRANSFER
- MOBILE_MONEY
PhpAccountInfo:
allOf:
- $ref: '#/components/schemas/PhpAccountInfoBase'
- type: object
required:
- paymentRails
properties:
paymentRails:
type: array
items:
type: string
enum:
- BANK_TRANSFER
XofAccountInfoBase:
type: object
required:
- accountType
- phoneNumber
- provider
- region
properties:
accountType:
type: string
enum:
- XOF_ACCOUNT
phoneNumber:
type: string
description: The phone number in international format
example: '+1234567890'
minLength: 7
maxLength: 15
pattern: ^\+[0-9]{6,14}$
provider:
type: string
description: The mobile money provider name
minLength: 1
maxLength: 255
region:
type: string
description: Country code within the West African CFA franc zone
minLength: 2
maxLength: 2
pattern: ^[A-Z]{2}$
enum:
- BJ
- CI
- SN
- TG
example:
accountType: XOF_ACCOUNT
phoneNumber: '+1234567890'
provider: Example Provider
region: BJ
PaymentEthereumWalletInfo:
title: Ethereum Wallet
allOf:
- $ref: '#/components/schemas/BasePaymentAccountInfo'
- $ref: '#/components/schemas/EthereumWalletInfo'
- type: object
properties:
assetType:
type: string
description: Type of asset
enum:
- USDC
HkdAccountInfo:
allOf:
- $ref: '#/components/schemas/HkdAccountInfoBase'
- type: object
required:
- paymentRails
properties:
paymentRails:
type: array
items:
type: string
enum:
- BANK_TRANSFER
PaymentUsdAccountInfo:
title: USD Bank Account
allOf:
- $ref: '#/components/schemas/BasePaymentAccountInfo'
- $ref: '#/components/schemas/UsdAccountInfo'
- type: object
required:
- reference
properties:
reference:
type: string
description: Unique reference code that must be included with the payment to properly credit it
example: UMA-Q12345-REF
PaymentCadAccountInfo:
title: CAD Account
allOf:
- $ref: '#/components/schemas/BasePaymentAccountInfo'
- $ref: '#/components/schemas/CadAccountInfo'
- type: object
required:
- reference
properties:
reference:
type: string
description: Unique reference code that must be included with the payment to properly credit it
example: UMA-Q12345-REF
PaymentGhsAccountInfo:
title: GHS Account
allOf:
- $ref: '#/components/schemas/BasePaymentAccountInfo'
- $ref: '#/components/schemas/GhsAccountInfo'
- type: object
required:
- reference
properties:
reference:
type: string
description: Unique reference code that must be included with the payment to properly credit it
example: UMA-Q12345-REF
PaymentEmbeddedWalletInfo:
title: Embedded Wallet
allOf:
- $ref: '#/components/schemas/BasePaymentAccountInfo'
- type: object
required:
- accountType
- payloadToSign
properties:
accountType:
type: string
enum:
- EMBEDDED_WALLET
description: Discriminator value identifying this as Embedded Wallet payment instructions.
payloadToSign:
type: string
description: JSON-encoded transaction signing payload that must be stamped, as-is (byte-for-byte, without re-serialization), with the session private key of a verified authentication credential on the source Embedded Wallet. The resulting Grid wallet signature is passed as the `Grid-Wallet-Signature` header on `POST /quotes/{quoteId}/execute` to authorize the outbound transfer from the wallet.
example: '{"type":"ACTIVITY_TYPE_SIGN_TRANSACTION_V2","timestampMs":"1746736509954","organizationId":"org_abc123","parameters":{"signWith":"wallet_abc123def456","unsignedTransaction":"ea69b4bf05f775209f26ff0a34a05569180f7936579d5c4af9377ae550194f72","type":"TRANSACTION_TYPE_ETHEREUM"},"generateAppProofs":true}'
UgxAccountInfo:
allOf:
- $ref: '#/components/schemas/UgxAccountInfoBase'
- type: object
required:
- paymentRails
properties:
paymentRails:
type: array
items:
type: string
enum:
- MOBILE_MONEY
InternalAccountType:
title: Internal Account Type
type: string
enum:
- INTERNAL_FIAT
- INTERNAL_CRYPTO
- EMBEDDED_WALLET
description: 'Classification of an internal account.
- `INTERNAL_FIAT`: A Grid-managed fiat holding account (for example, the USD holding account used as the source for Payouts flows).
- `INTERNAL_CRYPTO`: A Grid-managed crypto holding account denominated in a stablecoin such as USDC.
- `EMBEDDED_WALLET`: A self-custodial Embedded Wallet provisioned for the customer. Outbound transfers require a session signature produced by the customer''s device — see the Embedded Wallets guide.'
MyrAccountInfoBase:
type: object
required:
- accountType
- bankName
- accountNumber
- swiftCode
properties:
accountType:
type: string
enum:
- MYR_ACCOUNT
bankName:
type: string
description: The name of the bank
minLength: 1
maxLength: 255
accountNumber:
type: string
description: Malaysian bank account number
minLength: 1
maxLength: 34
example: '1234567890'
swiftCode:
type: string
description: The SWIFT/BIC code of the bank
example: MABORUMMYYY
minLength: 8
maxLength: 11
pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
example:
accountType: MYR_ACCOUNT
bankName: Example Bank
accountNumber: '1234567890'
swiftCode: MABORUMMYYY
HkdAccountInfoBase:
type: object
required:
- accountType
- bankName
- accountNumber
- swiftCode
properties:
accountType:
type: string
enum:
- HKD_ACCOUNT
bankName:
type: string
description: The name of the bank
minLength: 1
maxLength: 255
accountNumber:
type: string
description: Hong Kong bank account number
minLength: 1
maxLength: 34
example: '123456789012'
swiftCode:
type: string
description: The SWIFT/BIC code of the bank
example: HSBCHKHHHKH
minLength: 8
maxLength: 11
pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
example:
accountType: HKD_ACCOUNT
bankName: Example Bank
accountNumber: '123456789012'
swiftCode: HSBCHKHHHKH
PaymentUgxAccountInfo:
title: UGX Account
allOf:
- $ref: '#/components/schemas/BasePaymentAccountInfo'
- $ref: '#/components/schemas/UgxAccountInfo'
- type: object
required:
- reference
properties:
reference:
type: string
description: Unique reference code that must be included with the payment to properly credit it
example: UMA-Q12345-REF
UsdAccountInfoBase:
type: object
required:
- accountType
- accountNumber
- routingNumber
properties:
accountType:
type: string
enum:
- USD_ACCOUNT
accountNumber:
type: string
description: The account number of the bank
minLength: 1
maxLength: 34
routingNumber:
type: string
description: The ABA routing number
example: '021000021'
minLength: 9
maxLength: 9
pattern: ^[0-9]{9}$
example:
accountType: USD_ACCOUNT
accountNumber: '1234567890'
routingNumber: '021000021'
PaymentBaseWalletInfo:
title: Base Wallet
allOf:
- $ref: '#/components/schemas/BasePaymentAccountInfo'
- $ref: '#/components/schemas/BaseWalletInfo'
- type: object
properties:
assetType:
type: string
description: Type of asset
enum:
- USDC
EgpAccountInfo:
allOf:
- $ref: '#/components/schemas/EgpAccountInfoBase'
- type: object
required:
- paymentRails
properties:
paymentRails:
type: array
items:
type: string
enum:
- BANK_TRANSFER
- MOBILE_MONEY
GtqAccountInfo:
allOf:
- $ref: '#/components/schemas/GtqAccountInfoBase'
- type: object
required:
- paymentRails
properties:
paymentRails:
type: array
items:
type: string
enum:
- BANK_TRANSFER
IdrAccountInfoBase:
type: object
required:
- accountType
- bankName
- accountNumber
- swiftCode
- phoneNumber
properties:
accountType:
type: string
enum:
- IDR_ACCOUNT
bankName:
type: string
description: The name of the bank
minLength: 1
maxLength: 255
example: Bank Central Asia
accountNumber:
type: string
description: Indonesian bank account number
minLength: 1
maxLength: 34
example: '1234567890'
swiftCode:
type: string
description: The SWIFT/BIC code of the bank
example: CENAIDJA
minLength: 8
maxLength: 11
pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
phoneNumber:
type: string
description: Indonesian phone number for e-wallet payments
example: '+6281234567890'
minLength: 7
maxLength: 15
pattern: ^\+62[0-9]{9,12}$
example:
accountType: IDR_ACCOUNT
bankName: Bank Central Asia
accountNumber: '1234567890'
swiftCode: CENAIDJA
phoneNumber: '+6281234567890'
JmdAccountInfo:
allOf:
- $ref: '#/components/schemas/JmdAccountInfoBase'
- type: object
required:
- paymentRails
properties:
paymentRails:
type: array
items:
type: string
enum:
- BANK_TRANSFER
Error500:
type: object
required:
- message
- status
- code
properties:
status:
type: integer
enum:
- 500
description: HTTP status code
code:
type: string
description: '| Error Code | Description |
|------------|-------------|
| GRID_SWITCH_ERROR | Grid switch error |
| INTERNAL_ERROR | Internal server or UMA error |
'
enum:
- GRID_SWITCH_ERROR
- INTERNAL_ERROR
message:
type: string
description: Error message
details:
type: object
description: Additional error details
additionalProperties: true
AedAccountInfoBase:
type: object
required:
- accountType
- iban
properties:
accountType:
type: string
enum:
- AED_ACCOUNT
iban:
type: string
description: UAE IBAN (23 characters, starting with AE)
example: AE070331234567890123456
minLength: 23
maxLength: 23
pattern: ^AE[0-9]{21}$
swiftCode:
type: string
description: The SWIFT/BIC code of the bank
example: EBILAEAD
minLength: 8
maxLength: 11
pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
example:
accountType: AED_ACCOUNT
iban: AE070331234567890123456
swiftCode: EBILAEAD
PaymentBrlAccountInfo:
title: BRL Account
allOf:
- $ref: '#/components/schemas/BasePaymentAccountInfo'
- type: object
required:
- qrCode
properties:
accountType:
type: string
enum:
- BRL_ACCOUNT
qrCode:
type: string
description: A PIX QR code payload that can be used to fund the transaction. This can be rendered as a QR code image or pasted into a PIX-compatible banking app.
minLength: 1
PaymentHkdAccountInfo:
title: HKD Account
allOf:
- $ref: '#/components/schemas/BasePaymentAccountInfo'
- $ref: '#/components/schemas/HkdAccountInfo'
- type: object
required:
- reference
properties:
reference:
type: string
description: Unique reference code that must be included with the payment to properly credit it
example: UMA-Q12345-REF
PaymentInrAccountInfo:
title: INR Account
allOf:
- $ref: '#/components/schemas/BasePaymentAccountInfo'
- $ref: '#/components/schemas/InrAccountInfo'
NgnAccountInfo:
# --- truncated at 32 KB (110 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lightspark/refs/heads/main/openapi/lightspark-internal-accounts-api-openapi.yml