{ "openapi": "3.1.0", "info": { "title": "HEVN Platform API", "description": "HEVN's account, verification and money-movement API. Verification follows a submission workflow: save applicant info and documents, inspect outstanding requirements, then explicitly complete the submission to send an immutable snapshot for review. Completing a submission is separate from editing it.", "version": "1.0.0" }, "paths": { "/auth/challenge": { "post": { "tags": [ "auth" ], "summary": "Start a developer-key login and receive the payload to sign", "description": "Start developer-key authentication. Sign the returned payload with the registered key and exchange it once through `POST /auth/token` before it expires.", "operationId": "start_challenge_auth_challenge_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChallengeRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChallengeResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/auth/token": { "post": { "tags": [ "auth" ], "summary": "Exchange a signed login challenge for a session", "description": "Exchange a signed, unexpired challenge for an access token and refresh token. A challenge is consumed once; replay, a different key or a different account is refused.", "operationId": "mint_token_auth_token_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "device-id", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Device-Id" } }, { "name": "user-agent", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User-Agent" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ChallengeTokenRequest" }, { "$ref": "#/components/schemas/ProofTokenRequest" } ], "title": "Data" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/auth/refresh": { "post": { "tags": [ "auth" ], "summary": "Exchange a refresh token for a session, optionally acting for an account", "description": "Exchange a device-bound refresh token for a new short-lived access token. `userId` may select an account the authenticated actor is currently authorized to access.", "operationId": "refresh_session_auth_refresh_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "user-agent", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User-Agent" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RefreshRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/clients/link": { "post": { "tags": [ "accounts" ], "summary": "Connect an existing account", "description": "Exchange the short-lived code the account holder approved in the HEVN sign-in window for access to their account. The account holder keeps signing their own transfers: a payout for this client answers with `authorization: client` and no approval, and the holder approves it in the HEVN sign-in window. Linking the same account again returns it.", "operationId": "link_client_clients_link_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientLinkRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/clients": { "get": { "tags": [ "accounts" ], "summary": "List clients", "description": "Every account connected to you, newest first.", "operationId": "list_clients_clients_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "email", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "format": "email" }, { "type": "null" } ], "description": "Exact match, lowercased.", "title": "Email" }, "description": "Exact match, lowercased." }, { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/PlatformClientStatus" }, { "type": "null" } ], "title": "Status" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 512 }, { "type": "null" } ], "title": "Cursor" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Page_ClientResponse_" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/client": { "get": { "tags": [ "accounts" ], "summary": "Retrieve one account", "description": "Retrieve the client selected by `X-Hevn-Account`. Unknown, malformed and foreign account ids share the same not-found response.", "operationId": "read_client_client_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": true, "schema": { "type": "string", "description": "The selected client account, as a `cl_…` id.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The selected client account, as a `cl_…` id." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } }, "patch": { "tags": [ "accounts" ], "summary": "Update a client profile", "description": "Update the phone and postal address for the client selected by `X-Hevn-Account`. Everything else about a client is verification data.", "operationId": "update_client_client_patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." }, { "name": "X-Hevn-Account", "in": "header", "required": true, "schema": { "type": "string", "description": "The selected client account, as a `cl_…` id.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The selected client account, as a `cl_…` id." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientProfileRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/connect/sessions": { "post": { "tags": [ "accounts" ], "summary": "Create a sign-in window session", "description": "Issue a short-lived URL for the HEVN sign-in window. Open it in a popup from your page: `link` lets the account holder connect their account and returns a code for `POST /clients/link`, `sign` lets the holder of a connected account approve one payout that waits for their signature. The result comes back on `redirectUri` with `state`.", "operationId": "create_connect_session_connect_sessions_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConnectSessionRequest" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConnectSessionResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/client/kyb": { "put": { "tags": [ "verification" ], "summary": "Provide applicant information", "description": "Save information for the business applicant and its related individual applicants in the entity graph. This updates an editable verification submission; it does not send anything for review. People are addressed by a stable `key` chosen by the caller, so retrying the same body updates the same entities. Omitting `people` leaves the roster unchanged; sending `people: []` removes only caller-managed people. `ready: false` is a successful draft write and `missing` names every outstanding field or document.", "operationId": "write_kyb_client_kyb_put", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." }, { "name": "X-Hevn-Account", "in": "header", "required": true, "schema": { "type": "string", "description": "The selected client account, as a `cl_…` id.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The selected client account, as a `cl_…` id." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformKybWriteRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformKybWriteResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } }, "get": { "tags": [ "verification" ], "summary": "Retrieve the verification submission", "description": "Return the current editable applicant information, related people, filed documents, outstanding requirements and the latest review status. `missing` is authoritative for whether `complete` can succeed. A pending or completed review is read-only as an application snapshot; later draft edits apply to the next submission.", "operationId": "read_kyb_client_kyb_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": true, "schema": { "type": "string", "description": "The selected client account, as a `cl_…` id.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The selected client account, as a `cl_…` id." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformKybResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/client/kyb/complete": { "post": { "tags": [ "verification" ], "summary": "Complete the verification submission", "description": "Close the editable submission and send its immutable snapshot for compliance review. This is the only operation that starts review. It is refused with `kyb_incomplete` and the same `missing` paths returned by GET when applicant information or documents are outstanding. An identical retry replays the existing application instead of creating a second review.", "operationId": "complete_kyb_client_kyb_complete_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": true, "schema": { "type": "string", "description": "The selected client account, as a `cl_…` id.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The selected client account, as a `cl_…` id." }, { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." } ], "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformKybSubmitResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/documents": { "post": { "tags": [ "documents" ], "summary": "Upload a document", "description": "Stores a file and answers the `doc_…` id the verification document references as `uploadId`. Uploading the same bytes in the same slot twice answers the first id.", "operationId": "upload_document_documents_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentUploadRequest" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/documents/{documentId}/content": { "put": { "tags": [ "documents" ], "summary": "Fill the typed fields read off a document", "description": "The verification gate refuses a submission whose documents have no recognised fields. Write them here — the keys are the paths the refusal names in `details.documents`, without the slot prefix.", "operationId": "write_document_content_documents__documentId__content_put", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "documentId", "in": "path", "required": true, "schema": { "type": "string", "description": "Prefixed document id", "title": "Documentid" }, "description": "Prefixed document id" }, { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentContentRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/escrow": { "post": { "tags": [ "escrow" ], "summary": "Open an escrow and return the payer's approval", "description": "Create an escrow draft and return the payer's approval that funds it. The payer signs it on its own wallet: a developer key cannot, and a payer that owns its wallet is refused with `account_not_controlled` until it can approve in the HEVN sign-in window. No on-chain action is submitted until it is signed.", "operationId": "create_escrow_escrow_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." }, { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EscrowCreateRequest" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EscrowView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } }, "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EscrowView" } } }, "description": "OK" } } }, "get": { "tags": [ "escrow" ], "summary": "List the escrows this account operates", "description": "List escrow agreements operated by the authenticated account, newest first.", "operationId": "list_escrows_escrow_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "$ref": "#/components/schemas/PlatformEscrowStatus" } }, { "type": "null" } ], "title": "Status" } }, { "name": "senderClientId", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Senderclientid" } }, { "name": "receiverClientId", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Receiverclientid" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 512 }, { "type": "null" } ], "title": "Cursor" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Page_EscrowView_" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/escrow/{escrowId}": { "get": { "tags": [ "escrow" ], "summary": "Read one escrow", "description": "Retrieve one escrow, its current balances, deadlines, available actions and last reconciled chain state.", "operationId": "read_escrow_escrow__escrowId__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "escrowId", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^(?:esc_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Escrowid" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EscrowView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/escrow/{escrowId}/sync": { "post": { "tags": [ "escrow" ], "summary": "Reconcile one escrow with the chain", "description": "Reconcile one escrow with current on-chain state. This read-through operation may persist newly observed events but never invents a successful chain action.", "operationId": "sync_escrow_escrow__escrowId__sync_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "escrowId", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^(?:esc_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Escrowid" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EscrowView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/escrow/{escrowId}/actions": { "post": { "tags": [ "escrow" ], "summary": "Prepare an escrow action and return the payload to sign", "description": "Prepare an escrow action and return the immutable payload to sign. This request does not broadcast the action.", "operationId": "prepare_escrow_action_escrow__escrowId__actions_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "escrowId", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^(?:esc_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Escrowid" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." }, { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EscrowActionRequest" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EscrowActionResultView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } }, "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EscrowActionResultView" } } }, "description": "OK" } } } }, "/escrow/{escrowId}/actions/{idempotencyKey}/confirm": { "post": { "tags": [ "escrow" ], "summary": "Submit the signature for a prepared escrow action", "description": "Submit the signature for the previously prepared escrow action. The path idempotency key must match the prepared action and makes safe retries return the first result.", "operationId": "confirm_escrow_action_escrow__escrowId__actions__idempotencyKey__confirm_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "escrowId", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^(?:esc_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Escrowid" } }, { "name": "idempotencyKey", "in": "path", "required": true, "schema": { "type": "string", "minLength": 1, "maxLength": 128, "title": "Idempotencykey" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EscrowConfirmRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EscrowActionResultView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/payouts": { "post": { "tags": [ "transfers" ], "summary": "Create an outgoing transfer", "description": "Validate the contact, fix the transfer terms, reserve an idempotent outgoing transfer and return the approval payload to sign. Supplying `amount` fixes the debit side; `amountTo` fixes the contact side.", "operationId": "create_payout_payouts_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." }, { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayoutCreateRequest" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayoutResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/payouts/preview": { "post": { "tags": [ "transfers" ], "summary": "Create an outgoing transfer quote", "description": "Estimate rate, fees, limits and contact amount without creating a contact, transfer or external side effect.", "operationId": "preview_payout_payouts_preview_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayoutPreviewRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayoutPreviewResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/payouts/{payoutId}/confirm": { "post": { "tags": [ "transfers" ], "summary": "Authorize an outgoing transfer", "description": "Verify the developer-key signature against the immutable approval and fund the prepared transfer. A retry cannot change the contact, amount, payment method or quote.", "operationId": "confirm_payout_payouts__payoutId__confirm_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "payoutId", "in": "path", "required": true, "schema": { "type": "string", "title": "Payoutid" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfirmRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayoutReceiptResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayoutReceiptResponse" } } }, "description": "Accepted" } } } }, "/payouts/{payoutId}": { "get": { "tags": [ "transfers" ], "summary": "Retrieve an outgoing transfer", "description": "Retrieve the current transfer lifecycle, including quote, contact, settlement result and any actionable failure.", "operationId": "read_payout_payouts__payoutId__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "payoutId", "in": "path", "required": true, "schema": { "type": "string", "title": "Payoutid" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayoutReadResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/swaps": { "post": { "tags": [ "transfers" ], "summary": "Create a transfer between the client's own accounts", "description": "Price a move between two accounts the client owns, reserve it idempotently and return the approval to sign. `authorization` says what that approval covers: a `debit` of the client's wallet that funds the move, or an `intent` its smart wallet signs so the backend can settle it.", "operationId": "create_swap_swaps_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." }, { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SwapCreateRequest" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SwapResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/swaps/preview": { "post": { "tags": [ "transfers" ], "summary": "Price a transfer between the client's own accounts", "description": "Compare every route that can serve this pair of accounts and return the best price. Nothing is booked with a provider and nothing is signed.", "operationId": "preview_swap_swaps_preview_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SwapPreviewRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SwapPreviewResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/swaps/{swapId}/confirm": { "post": { "tags": [ "transfers" ], "summary": "Authorize a transfer between the client's own accounts", "description": "Verify the developer-key signature against the immutable approval and settle the move. A retry cannot change the accounts, the amount or the quote it was fixed at.", "operationId": "confirm_swap_swaps__swapId__confirm_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "swapId", "in": "path", "required": true, "schema": { "type": "string", "title": "Swapid" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfirmRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SwapReceiptResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SwapReceiptResponse" } } }, "description": "Accepted" } } } }, "/swaps/{swapId}": { "get": { "tags": [ "transfers" ], "summary": "Retrieve a transfer between the client's own accounts", "description": "Retrieve the current lifecycle of a swap, the quote it was fixed at and any actionable failure.", "operationId": "read_swap_swaps__swapId__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "swapId", "in": "path", "required": true, "schema": { "type": "string", "title": "Swapid" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SwapReadResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/contacts": { "post": { "tags": [ "contacts" ], "summary": "Create a contact", "description": "Create an idempotent reusable contact from either payment-account or on-chain details. Fields are validated for the selected account type before persistence.", "operationId": "create_contact_contacts_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." }, { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactCreateRequest" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } }, "get": { "tags": [ "contacts" ], "summary": "List saved contacts", "description": "List saved contacts using opaque cursor pagination.", "operationId": "list_contacts_contacts_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 512 }, { "type": "null" } ], "title": "Cursor" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Page_ContactResponse_" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/contacts/{contactId}": { "get": { "tags": [ "contacts" ], "summary": "Retrieve one contact", "description": "Retrieve one saved contact without exposing internal routing or infrastructure identifiers.", "operationId": "read_contact_contacts__contactId__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "contactId", "in": "path", "required": true, "schema": { "type": "string", "title": "Contactid" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } }, "patch": { "tags": [ "contacts" ], "summary": "Update a contact", "description": "Update fields present in the request. Omitted fields are retained; immutable payment-routing identity cannot be replaced through this operation.", "operationId": "update_contact_contacts__contactId__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "contactId", "in": "path", "required": true, "schema": { "type": "string", "title": "Contactid" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." }, { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactUpdateRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } }, "delete": { "tags": [ "contacts" ], "summary": "Delete a contact", "description": "Remove a saved contact from future selection. Existing transactions remain immutable and readable.", "operationId": "delete_contact_contacts__contactId__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "contactId", "in": "path", "required": true, "schema": { "type": "string", "title": "Contactid" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." }, { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/contacts/{contactId}/capabilities": { "get": { "tags": [ "contacts" ], "summary": "Retrieve contact channels", "description": "Return currently available payment methods, limits, fees and blockers. Capabilities are a point-in-time eligibility read, not a transfer quote.", "operationId": "read_contact_capabilities_contacts__contactId__capabilities_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "contactId", "in": "path", "required": true, "schema": { "type": "string", "title": "Contactid" } }, { "name": "amount", "in": "query", "required": false, "schema": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Amount" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactCapabilitiesResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/banks": { "get": { "tags": [ "virtual accounts" ], "summary": "List virtual accounts and available payment methods", "description": "List receiving payment methods available to the selected account and identify which virtual accounts have already been opened.", "operationId": "list_rails_banks_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RailListView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } }, "post": { "tags": [ "virtual accounts" ], "summary": "Request a receiving account for a product", "description": "Answers 201 with the account record the first time, 200 with `Idempotency-Replayed: true` when the product was already requested or is already active. A receiving account is a singleton per client and product, so the server key is the client and the product. Unmet prerequisites never refuse the request: the record stays preparing and lists its blockers.", "operationId": "open_rail_banks_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RailOpenRequest" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RailView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/banks/{product}": { "get": { "tags": [ "virtual accounts" ], "summary": "Retrieve one virtual account", "description": "Retrieve the receiving account of one region product and, when opened, its receiving details. The product is the path key.", "operationId": "read_rail_banks__product__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/RailProduct", "description": "Region product, for example eu or us", "examples": [ "eu" ] }, "description": "Region product, for example eu or us" }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RailView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/banks/{product}/rate": { "get": { "tags": [ "virtual accounts" ], "summary": "Retrieve the receiving conversion rate", "description": "Return the current conversion rate and fixed fee for this receiving payment method. The result is indicative until an incoming transfer is created.", "operationId": "read_rail_rate_banks__product__rate_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/RailProduct", "description": "Region product, for example eu or us", "examples": [ "eu" ] }, "description": "Region product, for example eu or us" }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RailRateView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/payins": { "post": { "tags": [ "transfers" ], "summary": "Create an incoming transfer quote", "description": "Price money arriving for this account. Set `originChainId` for an on-chain transfer or `rail` for a local payment method; exactly one is required. An unsupported route answers `payin_not_available`.", "operationId": "create_payin_payins_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." }, { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayinCreateRequest" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayinView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/payins/{payinId}/instructions": { "post": { "tags": [ "transfers" ], "summary": "Open the incoming transfer and retrieve funding instructions", "description": "Idempotent: an already-open transfer returns the same payment-account details or on-chain deposit address. A quote that stopped holding answers `410 payin_expired`.", "operationId": "open_payin_payins__payinId__instructions_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "payinId", "in": "path", "required": true, "schema": { "type": "string", "description": "Prefixed pay-in id", "title": "Payinid" }, "description": "Prefixed pay-in id" }, { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayinInstructionsRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayinInstructionsView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/payins/{payinId}": { "get": { "tags": [ "transfers" ], "summary": "Retrieve an incoming transfer", "description": "Retrieve an incoming-transfer quote and its current funding lifecycle. Use the instructions operation when payment details are still required.", "operationId": "read_payin_payins__payinId__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "payinId", "in": "path", "required": true, "schema": { "type": "string", "description": "Prefixed pay-in id", "title": "Payinid" }, "description": "Prefixed pay-in id" }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayinView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/client/balance": { "get": { "tags": [ "accounts" ], "summary": "Read a client's balances", "description": "One row per account the client holds: the tokens on the smart wallet of the client selected by `X-Hevn-Account`, plus any custodial balance. `USDC_ARB` is USDC on Arbitrum at the same wallet address; it is turned on with the client's first balance read. A custodial row is read live from the provider that holds it and is left out when that provider cannot be reached.", "operationId": "read_balance_client_balance_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": true, "schema": { "type": "string", "description": "The selected client account, as a `cl_…` id.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The selected client account, as a `cl_…` id." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientBalanceView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/transactions/sync": { "post": { "tags": [ "transactions" ], "summary": "Refresh the client's ledger from its sources", "description": "Refresh the client's ledger from the banks and chains its money moved over, then answer how many entries changed. Reads never do this on their own: `GET /dapi/v1/transactions` answers from the ledger as it stands, so call this when a transfer made elsewhere has to be visible before you read. It reaches out to every source, so it is rate-limited and not a per-request call.", "operationId": "sync_transactions_transactions_sync_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LedgerSyncView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/transactions": { "get": { "tags": [ "transactions" ], "summary": "List transactions, newest first", "description": "Cursor-paged: pass `nextCursor` back as `cursor`. There is no offset and no total.", "operationId": "list_transactions_transactions_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated transaction types", "title": "Type" }, "description": "Comma-separated transaction types" }, { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated statuses", "title": "Status" }, "description": "Comma-separated statuses" }, { "name": "tag", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated tags", "title": "Tag" }, "description": "Comma-separated tags" }, { "name": "contactId", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Contactid" } }, { "name": "bankId", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Bankid" } }, { "name": "incomeOnly", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Incomeonly" } }, { "name": "q", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "minLength": 2 }, { "type": "null" } ], "title": "Q" } }, { "name": "from", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "From" } }, { "name": "to", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "To" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 512 }, { "type": "null" } ], "title": "Cursor" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Page_TransactionView_" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/transactions/summary": { "get": { "tags": [ "transactions" ], "summary": "Inflow and outflow totals for the same filters", "description": "Its own route: an aggregate is never folded into a page.", "operationId": "read_summary_transactions_summary_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated transaction types", "title": "Type" }, "description": "Comma-separated transaction types" }, { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated statuses", "title": "Status" }, "description": "Comma-separated statuses" }, { "name": "tag", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated tags", "title": "Tag" }, "description": "Comma-separated tags" }, { "name": "contactId", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Contactid" } }, { "name": "bankId", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Bankid" } }, { "name": "incomeOnly", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Incomeonly" } }, { "name": "q", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "minLength": 2 }, { "type": "null" } ], "title": "Q" } }, { "name": "from", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "From" } }, { "name": "to", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "To" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransactionSummaryView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/transactions/export": { "get": { "tags": [ "transactions" ], "summary": "Export transactions, a statement, a confirmation or a receipt", "description": "Without `kind` the filtered transaction list is exported as `csv`, `xlsx` or `pdf`. `kind=statement` and `kind=confirmation` need `bankId` and support `pdf` or `xlsx`; `kind=receipt` needs `transactionId` and answers `pdf`.", "operationId": "export_transactions_transactions_export_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "format", "in": "query", "required": false, "schema": { "$ref": "#/components/schemas/ExportFormat", "default": "csv" } }, { "name": "kind", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/ExportKind" }, { "type": "null" } ], "title": "Kind" } }, { "name": "bankId", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Bankid" } }, { "name": "transactionId", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Transactionid" } }, { "name": "type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated transaction types", "title": "Type" }, "description": "Comma-separated transaction types" }, { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated statuses", "title": "Status" }, "description": "Comma-separated statuses" }, { "name": "tag", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated tags", "title": "Tag" }, "description": "Comma-separated tags" }, { "name": "contactId", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Contactid" } }, { "name": "incomeOnly", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Incomeonly" } }, { "name": "q", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "minLength": 2 }, { "type": "null" } ], "title": "Q" } }, { "name": "from", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "From" } }, { "name": "to", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "To" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "The rendered file, with a `Content-Disposition` naming it.", "content": { "text/csv": { "schema": { "type": "string", "format": "binary" } }, "application/pdf": { "schema": { "type": "string", "format": "binary" } }, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { "schema": { "type": "string", "format": "binary" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/transactions/{transactionId}": { "get": { "tags": [ "transactions" ], "summary": "Retrieve one transaction", "description": "Retrieve one ledger transaction with detailed counterparties, payment references and attachments visible to the selected account.", "operationId": "read_transaction_transactions__transactionId__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "transactionId", "in": "path", "required": true, "schema": { "type": "string", "description": "Prefixed transaction id", "title": "Transactionid" }, "description": "Prefixed transaction id" }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransactionDetailView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/chains": { "get": { "tags": [ "catalog" ], "summary": "List supported chains and tokens", "description": "Every chain and token this API names, with the contract address and decimals of each token. `settlement` marks the chain accounts hold their balance on and the tokens a payout can be funded with.", "operationId": "list_chains_chains_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChainListView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/rates": { "get": { "tags": [ "catalog" ], "summary": "Retrieve a market reference rate", "description": "Convert one currency or token into another at the current market rate, before any transfer exists. Use it to show a price; the rate a transfer settles at comes from its own quote.", "operationId": "read_rate_rates_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "from", "in": "query", "required": true, "schema": { "type": "string", "minLength": 3, "maxLength": 5, "description": "ISO 4217 currency code or a token symbol.", "examples": [ "EUR" ], "title": "From" }, "description": "ISO 4217 currency code or a token symbol." }, { "name": "to", "in": "query", "required": true, "schema": { "type": "string", "minLength": 3, "maxLength": 5, "description": "ISO 4217 currency code or a token symbol.", "examples": [ "USDC" ], "title": "To" }, "description": "ISO 4217 currency code or a token symbol." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateView" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/sandbox/treasury": { "get": { "tags": [ "sandbox" ], "summary": "Read the sandbox treasury that funds emulated credits", "operationId": "read_treasury_sandbox_treasury_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SandboxTreasuryResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } }, "/sandbox/deposits": { "post": { "tags": [ "sandbox" ], "summary": "Emulate an incoming deposit: an account transfer with bankId, a token transfer without", "operationId": "credit_deposit_sandbox_deposits_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." }, { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SandboxDepositRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SandboxCreditResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SandboxCreditResponse" } } }, "description": "Accepted" } } } }, "/sandbox/payins/{payinId}/complete": { "post": { "tags": [ "sandbox" ], "summary": "Emulate the arrival of the funds a pay-in is waiting for", "operationId": "complete_payin_sandbox_payins__payinId__complete_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "payinId", "in": "path", "required": true, "schema": { "type": "string", "title": "Payinid" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." }, { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." } ], "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/SandboxPayinCompletionRequest" }, { "type": "null" } ], "title": "Body" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SandboxCreditResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SandboxCreditResponse" } } }, "description": "Accepted" } } } }, "/sandbox/payouts/{payoutId}/status": { "post": { "tags": [ "sandbox" ], "summary": "Move an emulated outgoing transfer to its next reported status", "operationId": "set_payout_status_sandbox_payouts__payoutId__status_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "payoutId", "in": "path", "required": true, "schema": { "type": "string", "title": "Payoutid" } }, { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." }, { "name": "Idempotency-Key", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.", "examples": [ "po-inv-2026-114" ], "title": "Idempotency-Key" }, "description": "Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SandboxPayoutStatusRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SandboxPayoutResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SandboxPayoutResponse" } } }, "description": "Accepted" } } } }, "/sandbox/kyb/status": { "post": { "tags": [ "sandbox" ], "summary": "Decide the client's latest KYB application, as the compliance reviewer would", "description": "Moves the latest application to `approved`, `rfi` or `rejected` (the last two need a `comment`). Asking for the status it already has replays it. An `rfi` or `rejected` application is answered as in production: write the document and complete the submission again, then decide the new attempt.", "operationId": "set_kyb_status_sandbox_kyb_status_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "X-Hevn-Account", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ], "title": "X-Hevn-Account" }, "description": "The client account to act for, as a `cl_…` id. Omit it to act as yourself." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SandboxKybStatusRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformKybResponse" } } } }, "422": { "description": "Request validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformErrorResponse" } } } } } } } }, "components": { "schemas": { "AccountBalanceView": { "properties": { "account": { "$ref": "#/components/schemas/AccountKey", "description": "Account this balance belongs to." }, "balance": { "type": "string", "title": "Balance", "description": "Available balance on this account.", "example": "500.00" }, "usdValue": { "type": "string", "title": "Usdvalue", "description": "Indicative USD value of this balance.", "example": "500.00" } }, "type": "object", "required": [ "account", "balance", "usdValue" ], "title": "AccountBalanceView" }, "AccountKey": { "type": "string", "enum": [ "USDC", "EURC", "RD", "USDC_ARB", "FDIC_USD", "FDIC_EUR", "KYC_CARDS" ], "title": "AccountKey" }, "ApprovalView": { "properties": { "id": { "type": "string", "title": "Id", "description": "Single-use approval identifier." }, "payload": { "type": "string", "title": "Payload", "description": "Base64 canonical authorization payload to sign with the developer key." }, "expiresAt": { "type": "string", "format": "date-time", "title": "Expiresat", "description": "UTC timestamp after which this approval is refused." } }, "type": "object", "required": [ "id", "payload", "expiresAt" ], "title": "ApprovalView" }, "AuthorizationKind": { "type": "string", "enum": [ "debit", "intent", "client" ], "title": "AuthorizationKind" }, "BalanceAccount": { "type": "string", "enum": [ "USDC", "EURC", "RD", "USDC_ARB" ], "title": "BalanceAccount" }, "BankAccountInput": { "properties": { "accountType": { "type": "string", "enum": [ "sepa", "swift", "ach", "uaefts", "fedwire", "rtp", "fednow", "pix", "spei", "pse", "breb", "transfers_3_0", "ukfps", "npp", "nip", "bdt_local", "bdt_ewallet", "bob_local", "brl_local", "cad_eft", "clp_local", "cny_alipay", "cny_wechatpay", "cop_local", "crc_local", "dkk_local", "dop_local", "dop_ewallet", "egp_local", "gtq_local", "gtq_ewallet", "hkd_fps", "hnl_local", "idr_local", "idr_ewallet", "ils_local", "inr_local", "inr_upi", "jmd_local", "jpy_local", "krw_local", "myr_local", "nok_local", "php_local", "php_ewallet", "pkr_raast", "pkr_ewallet", "pln_local", "sar_local", "sle_local", "thb_local", "try_fast", "tzs_local", "ugx_local", "vnd_local", "xof_local", "zmw_local" ], "title": "Accounttype", "description": "Local payment method used to reach the contact." }, "currency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Currency", "description": "ISO 4217 destination currency code." }, "bankName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Bankname", "description": "Name of the destination financial institution; required for ACH and Fedwire contacts." }, "bankAddress": { "anyOf": [ { "$ref": "#/components/schemas/BankAddressInput" }, { "type": "null" } ], "description": "Postal address of the destination institution." }, "intermediaryBank": { "anyOf": [ { "$ref": "#/components/schemas/IntermediaryBank-Input" }, { "type": "null" } ], "description": "Optional intermediary institution used to route an international transfer." }, "accountHolderType": { "anyOf": [ { "$ref": "#/components/schemas/RequisiteHolderType" }, { "type": "null" } ], "description": "Individual or business account holder." }, "accountHolderFirstName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Accountholderfirstname", "description": "Legal given name of an individual holder." }, "accountHolderLastName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Accountholderlastname", "description": "Legal family name of an individual holder." }, "accountHolderBusinessName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Accountholderbusinessname", "description": "Registered name of a business holder." }, "accountHolderName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Accountholdername", "description": "Full holder name for payment methods using one field." }, "holderIdType": { "anyOf": [ { "$ref": "#/components/schemas/RequisiteIdType" }, { "type": "null" } ], "description": "Government identifier type for the holder." }, "holderIdNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Holderidnumber", "description": "Government identifier number for the holder." }, "holderTaxId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Holdertaxid", "description": "Tax identifier of the holder." }, "holderNationality": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Holdernationality", "description": "ISO country code of the holder's nationality." }, "iban": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Iban", "description": "International account identifier without display separators." }, "bic": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Bic", "description": "BIC or SWIFT identifier of the destination institution." }, "accountNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Accountnumber", "description": "Domestic destination account number." }, "routingNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Routingnumber", "description": "Domestic routing or clearing number." }, "pixKey": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pixkey", "description": "Brazil PIX destination key." }, "pixKeyType": { "anyOf": [ { "$ref": "#/components/schemas/RequisitePixKeyType" }, { "type": "null" } ], "description": "Type of Brazil PIX key." }, "paymentKey": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Paymentkey", "description": "Local payment key required by the selected method." }, "financialInstitutionId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Financialinstitutionid", "description": "Institution identifier from the method directory." }, "branchNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Branchnumber", "description": "Destination institution branch identifier." }, "accountKind": { "anyOf": [ { "$ref": "#/components/schemas/RequisiteAccountKind" }, { "type": "null" } ], "description": "Checking, savings or equivalent classification." }, "phoneNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Phonenumber", "description": "Phone number required by the selected local method." } }, "type": "object", "required": [ "accountType" ], "title": "BankAccountInput" }, "BankAddress-Input": { "properties": { "addressLine1": { "type": "string", "title": "Addressline1", "description": "Street name and building number." }, "city": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "City", "description": "City or locality." }, "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "State", "description": "State, province or administrative area." }, "postalCode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Postalcode", "description": "Postal or ZIP code." }, "country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Country", "description": "ISO 3166-1 alpha-2 country code." } }, "type": "object", "required": [ "addressLine1" ], "title": "BankAddress" }, "BankAddress-Output": { "properties": { "addressLine1": { "type": "string", "title": "Addressline1", "description": "Street name and building number." }, "city": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "City", "description": "City or locality." }, "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "State", "description": "State, province or administrative area." }, "postalCode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Postalcode", "description": "Postal or ZIP code." }, "country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Country", "description": "ISO 3166-1 alpha-2 country code." } }, "type": "object", "required": [ "addressLine1", "city", "state", "postalCode", "country" ], "title": "BankAddress" }, "BankAddressInput": { "properties": { "addressLine1": { "type": "string", "maxLength": 120, "minLength": 1, "title": "Addressline1", "description": "Street name and building number." }, "city": { "type": "string", "maxLength": 80, "minLength": 1, "title": "City", "description": "City or locality." }, "state": { "anyOf": [ { "type": "string", "maxLength": 80 }, { "type": "null" } ], "title": "State", "description": "State, province or administrative area." }, "postalCode": { "anyOf": [ { "type": "string", "maxLength": 32 }, { "type": "null" } ], "title": "Postalcode", "description": "Postal or ZIP code." }, "country": { "type": "string", "maxLength": 3, "minLength": 2, "title": "Country", "description": "ISO 3166-1 alpha-2 country code." } }, "type": "object", "required": [ "addressLine1", "city", "country" ], "title": "BankAddressInput" }, "BankDepositCurrency": { "type": "string", "enum": [ "USD", "EUR", "USDC", "EURC", "RD", "USDC_ARB" ], "title": "BankDepositCurrency", "description": "The asset credited when money arrives through a bank rail." }, "ChainCode": { "type": "string", "enum": [ "eth", "bsc", "avax", "op", "arb", "pol", "sol", "base", "gnosis", "tron", "xrp", "zec", "doge", "ltc", "btc", "cardano", "bera", "sui", "near", "near_intents", "xlayer", "plasma", "ton", "stellar", "monad", "starknet", "aptos", "adi", "bch" ], "title": "ChainCode", "description": "Supported blockchain network code." }, "ChainListView": { "properties": { "chains": { "items": { "$ref": "#/components/schemas/ChainView" }, "type": "array", "title": "Chains", "description": "Every chain this API names, settlement chain included." } }, "type": "object", "required": [ "chains" ], "title": "ChainListView" }, "ChainView": { "properties": { "chain": { "type": "string", "title": "Chain", "description": "Chain code used by contacts, payouts and transactions." }, "name": { "type": "string", "title": "Name", "description": "Human-readable chain name." }, "chainId": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Chainid", "description": "EVM chain id; absent for non-EVM chains." }, "settlement": { "type": "boolean", "title": "Settlement", "description": "Whether payouts, payins and swaps settle on this chain. A token elsewhere may still name an account." }, "tokens": { "items": { "$ref": "#/components/schemas/TokenView" }, "type": "array", "title": "Tokens", "description": "Tokens this API names on the chain." } }, "type": "object", "required": [ "chain", "name", "settlement", "tokens" ], "title": "ChainView" }, "ChallengeRequest": { "properties": { "email": { "type": "string", "format": "email", "title": "Email", "description": "Email address of the account that owns the registered developer key." }, "publicKey": { "type": "string", "title": "Publickey", "description": "Base64 DER SubjectPublicKeyInfo for the registered P-256 developer key." }, "nonce": { "type": "integer", "title": "Nonce", "description": "Caller-generated single-use number included in the signed authentication proof." }, "requestExpiry": { "type": "integer", "title": "Requestexpiry", "description": "Unix time in milliseconds after which the signed request is refused." }, "signature": { "type": "string", "title": "Signature", "description": "Base64 DER ECDSA P-256/SHA-256 signature over the login proof message." } }, "additionalProperties": false, "type": "object", "required": [ "email", "publicKey", "nonce", "requestExpiry", "signature" ], "title": "ChallengeRequest" }, "ChallengeResponse": { "properties": { "challengeId": { "type": "string", "format": "uuid", "title": "Challengeid", "description": "Single-use authentication challenge identifier." }, "payload": { "type": "string", "title": "Payload", "description": "Base64-encoded canonical authorization payload the developer key must sign." }, "expiresAt": { "type": "string", "format": "date-time", "title": "Expiresat", "description": "UTC timestamp after which the challenge is refused." } }, "type": "object", "required": [ "challengeId", "payload", "expiresAt" ], "title": "ChallengeResponse" }, "ChallengeTokenRequest": { "properties": { "challengeId": { "type": "string", "format": "uuid", "title": "Challengeid", "description": "Single-use challenge identifier returned by POST /dapi/v1/auth/challenge." }, "signature": { "type": "string", "title": "Signature", "description": "Signature over the decoded payload returned for this challenge." }, "publicKey": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Publickey", "description": "Registered P-256 public key; omit when the signature uniquely identifies the key." } }, "additionalProperties": false, "type": "object", "required": [ "challengeId", "signature" ], "title": "ChallengeTokenRequest" }, "ClientAddressRequest": { "properties": { "streetAddress": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Streetaddress", "description": "Street name and building number." }, "addressLine2": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Addressline2", "description": "Optional apartment, suite or unit." }, "city": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "City", "description": "City or locality." }, "state": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "State", "description": "State, province or administrative area." }, "zip": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Zip", "description": "Postal or ZIP code." } }, "additionalProperties": false, "type": "object", "title": "ClientAddressRequest" }, "ClientBalanceView": { "properties": { "clientId": { "type": "string", "pattern": "^(?:cl_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Clientid", "description": "Account associated with this balance.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "baseSmartWallet": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Basesmartwallet", "description": "Base smart-wallet address controlled by the account." }, "accounts": { "items": { "$ref": "#/components/schemas/AccountBalanceView" }, "type": "array", "title": "Accounts", "description": "One entry per account the client holds a balance on." }, "totalUsd": { "type": "string", "title": "Totalusd", "description": "Indicative total balance converted to USD.", "example": "500.00" } }, "type": "object", "required": [ "clientId", "totalUsd" ], "title": "ClientBalanceView" }, "ClientFailureResponse": { "properties": { "code": { "$ref": "#/components/schemas/PlatformClientFailure", "description": "Stable machine-readable code for the provisioning failure." }, "message": { "type": "string", "title": "Message", "description": "Human-readable explanation safe to show to the account holder." }, "retriable": { "type": "boolean", "title": "Retriable", "description": "Whether retrying later without changing the request may succeed.", "default": false } }, "type": "object", "required": [ "code", "message" ], "title": "ClientFailureResponse" }, "ClientLinkRequest": { "properties": { "code": { "type": "string", "maxLength": 4096, "minLength": 1, "title": "Code", "description": "Short-lived code the account holder approved in the HEVN sign-in window." } }, "additionalProperties": false, "type": "object", "required": [ "code" ], "title": "ClientLinkRequest" }, "ClientProfileRequest": { "properties": { "phone": { "anyOf": [ { "type": "string", "pattern": "^\\+[1-9]\\d{6,14}$" }, { "type": "null" } ], "title": "Phone", "description": "Phone number in international E.164 format." }, "address": { "anyOf": [ { "$ref": "#/components/schemas/ClientAddressRequest" }, { "type": "null" } ], "description": "Postal address of the account holder." } }, "additionalProperties": false, "type": "object", "title": "ClientProfileRequest" }, "ClientResponse": { "properties": { "id": { "type": "string", "pattern": "^(?:cl_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Id", "description": "Stable public identifier for this account.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "status": { "$ref": "#/components/schemas/PlatformClientStatus", "description": "Current account-provisioning status." }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "description": "Legal or trading name of the account." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email", "description": "Email address associated with the account." }, "phone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Phone", "description": "Phone number in international E.164 format." }, "baseSmartWallet": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Basesmartwallet", "description": "Base smart-wallet address controlled by the account." }, "kybStatus": { "$ref": "#/components/schemas/PlatformKybStatus", "description": "Current business-verification status.", "default": "notStarted" }, "kybApplicationId": { "anyOf": [ { "type": "string", "pattern": "^(?:kyb_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "kyb_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Kybapplicationid", "description": "Latest immutable business-verification application identifier." }, "verifiedAt": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Verifiedat", "description": "When the account was verified: identity verification for a person, KYB for a business." }, "createdAt": { "type": "string", "format": "date-time", "title": "Createdat", "description": "UTC timestamp when the account was created." }, "failure": { "anyOf": [ { "$ref": "#/components/schemas/ClientFailureResponse" }, { "type": "null" } ], "description": "Provisioning failure details, when present." }, "pollUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pollurl", "description": "Relative API URL to poll with this response's id in `X-Hevn-Account`." }, "transferPolicy": { "anyOf": [ { "$ref": "#/components/schemas/TransferPolicyResponse" }, { "type": "null" } ], "description": "Account-level controls for the ways this client may move money." } }, "type": "object", "required": [ "id", "status", "createdAt" ], "title": "ClientResponse" }, "ConfirmRequest": { "properties": { "signature": { "type": "string", "maxLength": 2048, "minLength": 1, "title": "Signature", "description": "Base64 DER ECDSA P-256/SHA-256 signature over base64decode(approval.payload)." }, "publicKey": { "anyOf": [ { "type": "string", "maxLength": 512, "minLength": 1 }, { "type": "null" } ], "title": "Publickey", "description": "Registered P-256 public key; omit when the signature uniquely identifies the key." } }, "additionalProperties": false, "type": "object", "required": [ "signature" ], "title": "ConfirmRequest" }, "ConnectAction": { "type": "string", "enum": [ "link", "sign", "verify" ], "title": "ConnectAction" }, "ConnectSessionRequest": { "properties": { "action": { "$ref": "#/components/schemas/ConnectAction", "description": "`link` asks the account holder to connect their account, `sign` to approve one payout, `verify` to verify their identity." }, "payoutId": { "anyOf": [ { "type": "string", "pattern": "^(?:po_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "po_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Payoutid", "description": "The payout the account holder approves. Required for `sign`, not accepted for `link`." }, "clientId": { "anyOf": [ { "type": "string", "pattern": "^(?:cl_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Clientid", "description": "The connected individual client whose holder verifies their identity. Required for `verify`, not accepted otherwise. The holder must sign in to this account in the window." }, "redirectUri": { "type": "string", "maxLength": 2048, "minLength": 1, "title": "Redirecturi", "description": "Page the sign-in window returns to with the result and `state`. Its origin must be one of the allowed origins in the sign-in window settings." } }, "additionalProperties": false, "type": "object", "required": [ "action", "redirectUri" ], "title": "ConnectSessionRequest" }, "ConnectSessionResponse": { "properties": { "url": { "type": "string", "title": "Url", "description": "Open this URL in the sign-in window. It works once per result and expires." }, "state": { "type": "string", "title": "State", "description": "Comes back as `state` on the redirect URI; match it before trusting the result." }, "expiresAt": { "type": "string", "format": "date-time", "title": "Expiresat", "description": "When the session URL stops working." } }, "type": "object", "required": [ "url", "state", "expiresAt" ], "title": "ConnectSessionResponse" }, "ContactBlockerCode": { "type": "string", "enum": [ "contact_details_missing", "contact_address_incomplete", "contact_country_restricted", "contact_holder_type_unsupported", "account_type_unsupported", "routing_unresolved", "receiving_account_unavailable", "payment_method_unavailable", "currency_mismatch", "transfer_feature_disabled", "transfer_feature_on_request", "channel_not_configured", "sender_residency_ineligible", "sender_category_restricted", "endorsement_required", "channel_unavailable", "amount_below_minimum", "amount_above_maximum" ], "title": "ContactBlockerCode" }, "ContactBlockerView": { "properties": { "code": { "$ref": "#/components/schemas/ContactBlockerCode", "description": "Stable machine-readable blocker code." }, "message": { "type": "string", "title": "Message", "description": "Human-readable explanation safe to show to an end user." }, "field": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Field", "description": "Contact field associated with this blocker." } }, "type": "object", "required": [ "code", "message" ], "title": "ContactBlockerView" }, "ContactCapabilitiesResponse": { "properties": { "contactId": { "type": "string", "pattern": "^(?:ct_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Contactid", "description": "Saved contact associated with these capabilities.", "examples": [ "ct_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "available": { "type": "boolean", "title": "Available", "description": "Whether at least one payout option is currently available." }, "options": { "items": { "$ref": "#/components/schemas/ContactCapabilityOption" }, "type": "array", "title": "Options", "description": "Available transfer options." }, "blockers": { "items": { "$ref": "#/components/schemas/ContactBlockerView" }, "type": "array", "title": "Blockers", "description": "Contact-wide blockers." } }, "type": "object", "required": [ "contactId", "available" ], "title": "ContactCapabilitiesResponse" }, "ContactCapabilityOption": { "properties": { "bankId": { "anyOf": [ { "type": "string", "pattern": "^(?:bnk_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "bnk_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Bankid", "description": "Receiving-account route identifier, when applicable." }, "method": { "type": "string", "title": "Method", "description": "Payment method used to reach the contact." }, "currency": { "type": "string", "title": "Currency", "description": "Currency delivered to the contact." }, "available": { "type": "boolean", "title": "Available", "description": "Whether this option is currently available." }, "minAmount": { "type": "string", "title": "Minamount", "description": "Minimum supported source amount.", "example": "500.00" }, "maxAmount": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Maxamount", "description": "Maximum supported source amount." }, "feeBps": { "type": "integer", "title": "Feebps", "description": "Variable fee in basis points; 100 basis points equals 1 percent.", "default": 0 }, "fixedFee": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Fixedfee", "description": "Fixed fee component, when charged." }, "purposeRequired": { "type": "boolean", "title": "Purposerequired", "description": "Whether a transfer purpose must be supplied.", "default": false }, "memoRequired": { "type": "boolean", "title": "Memorequired", "description": "Whether a payment reference or memo must be supplied.", "default": false }, "documentsRequired": { "type": "boolean", "title": "Documentsrequired", "description": "Whether supporting documents must be supplied.", "default": false }, "blockers": { "items": { "$ref": "#/components/schemas/ContactBlockerView" }, "type": "array", "title": "Blockers", "description": "Reasons this option is unavailable." } }, "type": "object", "required": [ "method", "currency", "available", "minAmount" ], "title": "ContactCapabilityOption" }, "ContactCreateRequest": { "properties": { "name": { "type": "string", "maxLength": 200, "title": "Name", "description": "Human-readable contact name.", "default": "" }, "icon": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Icon", "description": "HTTPS image URL or emoji:// reference displayed for this contact." }, "currency": { "anyOf": [ { "type": "string", "maxLength": 4, "minLength": 3 }, { "type": "null" } ], "title": "Currency", "description": "Destination currency." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email", "description": "Email used to resolve an existing HEVN contact." }, "crypto": { "anyOf": [ { "$ref": "#/components/schemas/ContactCryptoInput" }, { "type": "null" } ], "description": "Legacy on-chain destination details." }, "account": { "anyOf": [ { "oneOf": [ { "$ref": "#/components/schemas/PlatformOnchainAccountInput" }, { "$ref": "#/components/schemas/PlatformEmailAccountInput" }, { "$ref": "#/components/schemas/BankAccountInput" } ] }, { "type": "null" } ], "title": "Account", "description": "Typed payment-account, email or on-chain destination." }, "bank": { "anyOf": [ { "$ref": "#/components/schemas/ContactPaymentAccount" }, { "type": "null" } ], "description": "Legacy payment-account destination details." }, "address": { "anyOf": [ { "$ref": "#/components/schemas/UserAddress-Input" }, { "type": "null" } ], "description": "Postal address of the contact or account holder." }, "isExternal": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Isexternal", "description": "Whether the contact is outside the selected account." } }, "additionalProperties": false, "type": "object", "title": "ContactCreateRequest" }, "ContactCryptoInput": { "properties": { "chain": { "$ref": "#/components/schemas/ChainCode", "description": "Blockchain network identifier." }, "token": { "type": "string", "title": "Token", "description": "Digital asset accepted by the contact address." }, "address": { "type": "string", "title": "Address", "description": "On-chain destination address." } }, "additionalProperties": false, "type": "object", "required": [ "chain", "token", "address" ], "title": "ContactCryptoInput" }, "ContactCryptoView": { "properties": { "chain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chain", "description": "Blockchain network identifier." }, "token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Token", "description": "Digital asset accepted by this address." }, "address": { "type": "string", "title": "Address", "description": "On-chain destination address." } }, "type": "object", "required": [ "address" ], "title": "ContactCryptoView" }, "ContactHolderUpdate": { "properties": { "type": { "anyOf": [ { "$ref": "#/components/schemas/RequisiteHolderType" }, { "type": "null" } ], "description": "Individual or business account holder." }, "firstName": { "anyOf": [ { "type": "string", "minLength": 1 }, { "type": "null" } ], "title": "Firstname", "description": "Legal given name of an individual holder." }, "lastName": { "anyOf": [ { "type": "string", "minLength": 1 }, { "type": "null" } ], "title": "Lastname", "description": "Legal family name of an individual holder." }, "businessName": { "anyOf": [ { "type": "string", "minLength": 1 }, { "type": "null" } ], "title": "Businessname", "description": "Registered legal name of a business holder." } }, "type": "object", "title": "ContactHolderUpdate" }, "ContactLinkedUserView": { "properties": { "avatar": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Avatar", "description": "Avatar of the linked HEVN account." }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "description": "Display name of the linked HEVN account." } }, "type": "object", "title": "ContactLinkedUserView" }, "ContactPaymentAccount": { "properties": { "method": { "$ref": "#/components/schemas/FiatPaymentType", "description": "Local payment method used to reach this contact." }, "currency": { "type": "string", "title": "Currency", "description": "ISO 4217 currency code accepted by the contact account." }, "fields": { "$ref": "#/components/schemas/RequisiteFields-Input", "description": "Structured destination account details." }, "holder": { "$ref": "#/components/schemas/RequisiteHolder-Input", "description": "Identity and address of the destination account holder." }, "bankName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Bankname", "description": "Name of the destination financial institution; required for ACH and Fedwire contacts." }, "bankAddress": { "anyOf": [ { "$ref": "#/components/schemas/BankAddress-Input" }, { "type": "null" } ], "description": "Postal address of the destination institution." }, "intermediaryBank": { "anyOf": [ { "$ref": "#/components/schemas/IntermediaryBank-Input" }, { "type": "null" } ], "description": "Optional intermediary institution used to route an international transfer." }, "paymentReference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Paymentreference", "description": "Reference or memo required by the contact." } }, "additionalProperties": false, "type": "object", "required": [ "method", "currency", "holder" ], "title": "ContactPaymentAccount", "description": "Legacy flat payment-account input without internal routing metadata." }, "ContactPaymentAccountView": { "properties": { "method": { "type": "string", "title": "Method", "description": "Local payment method used to reach this contact." }, "currency": { "type": "string", "title": "Currency", "description": "ISO 4217 currency code accepted by the contact account." }, "fields": { "$ref": "#/components/schemas/RequisiteFields-Output", "description": "Structured destination account details." }, "holder": { "$ref": "#/components/schemas/RequisiteHolder-Output", "description": "Identity and address of the destination account holder." }, "bankName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Bankname", "description": "Name of the destination financial institution." }, "bankAddress": { "anyOf": [ { "$ref": "#/components/schemas/BankAddress-Output" }, { "type": "null" } ], "description": "Postal address of the destination institution." }, "intermediaryBank": { "anyOf": [ { "$ref": "#/components/schemas/IntermediaryBank-Output" }, { "type": "null" } ], "description": "Optional intermediary institution used to route an international transfer." }, "paymentReference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Paymentreference", "description": "Reference or memo required by the contact." }, "destinationAccount": { "anyOf": [ { "$ref": "#/components/schemas/AccountKey" }, { "type": "null" } ], "description": "Account credited when this method settles." }, "state": { "$ref": "#/components/schemas/RequisiteState", "description": "Current usability state of the contact details." }, "minimumDeposit": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Minimumdeposit", "description": "Minimum amount accepted by this destination." } }, "type": "object", "required": [ "method", "currency", "fields", "holder", "state" ], "title": "ContactPaymentAccountView", "description": "Public payment-account details with infrastructure identifiers removed." }, "ContactResponse": { "properties": { "id": { "type": "string", "pattern": "^(?:ct_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Id", "description": "Stable public identifier for this contact.", "examples": [ "ct_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "name": { "type": "string", "title": "Name", "description": "Human-readable contact name." }, "icon": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Icon", "description": "HTTPS image URL or emoji:// contact icon reference." }, "isExternal": { "type": "boolean", "title": "Isexternal", "description": "Whether the contact is outside the selected account." }, "createdAt": { "type": "string", "format": "date-time", "title": "Createdat", "description": "UTC timestamp when the contact was created." }, "lastUsedAt": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Lastusedat", "description": "UTC timestamp when this contact was last used for a transfer or a successful fiat payout quote." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email", "description": "Email associated with an existing HEVN contact." }, "address": { "anyOf": [ { "$ref": "#/components/schemas/UserAddress-Output" }, { "type": "null" } ], "description": "Postal address of the contact or account holder." }, "bank": { "anyOf": [ { "$ref": "#/components/schemas/ContactPaymentAccountView" }, { "type": "null" } ], "description": "Payment-account destination details." }, "crypto": { "anyOf": [ { "$ref": "#/components/schemas/ContactCryptoView" }, { "type": "null" } ], "description": "On-chain destination details." }, "userId": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Userid", "description": "Account behind an existing HEVN contact." }, "user": { "anyOf": [ { "$ref": "#/components/schemas/ContactLinkedUserView" }, { "type": "null" } ], "description": "Profile of the linked HEVN account." } }, "type": "object", "required": [ "id", "name", "isExternal", "createdAt" ], "title": "ContactResponse" }, "ContactUpdateRequest": { "properties": { "name": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Name", "description": "Updated contact name." }, "icon": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Icon", "description": "Updated HTTPS image URL or emoji:// reference; null removes it." }, "address": { "anyOf": [ { "$ref": "#/components/schemas/UserAddress-Input" }, { "type": "null" } ], "description": "Updated postal address." }, "isExternal": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Isexternal", "description": "Whether the contact is outside the selected account." }, "holder": { "anyOf": [ { "$ref": "#/components/schemas/ContactHolderUpdate" }, { "type": "null" } ], "description": "Updated payment-account holder identity." }, "intermediaryBank": { "anyOf": [ { "$ref": "#/components/schemas/IntermediaryBank-Input" }, { "type": "null" } ], "description": "Updated intermediary institution; send null to remove it." }, "bankAddress": { "anyOf": [ { "$ref": "#/components/schemas/BankAddress-Input" }, { "type": "null" } ], "description": "Updated postal address of the destination institution, replacing the stored one in full." } }, "additionalProperties": false, "type": "object", "title": "ContactUpdateRequest" }, "CountryCode": { "type": "string", "enum": [ "AF", "AX", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BQ", "BA", "BW", "BV", "BR", "IO", "BN", "BG", "BF", "BI", "CV", "KH", "CM", "CA", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CG", "CD", "CK", "CR", "CI", "HR", "CU", "CW", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "SZ", "ET", "FK", "FO", "FJ", "FI", "FR", "GF", "PF", "TF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GP", "GU", "GT", "GG", "GN", "GW", "GY", "HT", "HM", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KP", "KR", "XK", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MQ", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NC", "NZ", "NI", "NE", "NG", "NU", "NF", "MK", "MP", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR", "QA", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "GS", "SS", "ES", "LK", "SD", "SR", "SJ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TL", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "UA", "AE", "GB", "US", "UM", "UY", "UZ", "VU", "VE", "VN", "VG", "VI", "WF", "EH", "YE", "ZM", "ZW" ], "title": "CountryCode", "description": "ISO 3166-1 alpha-2 country codes." }, "DebitView": { "properties": { "address": { "type": "string", "title": "Address", "description": "On-chain address receiving the funding debit." }, "amount": { "type": "string", "title": "Amount", "description": "Human-readable token amount debited.", "example": "500.00" }, "amountAtomic": { "type": "string", "title": "Amountatomic", "description": "Integer token amount in the asset's smallest unit." }, "token": { "type": "string", "title": "Token", "description": "Digital asset debited to fund the transfer." }, "chainId": { "type": "integer", "title": "Chainid", "description": "Numeric network identifier on which the debit executes." } }, "type": "object", "required": [ "address", "amount", "amountAtomic", "token", "chainId" ], "title": "DebitView" }, "DocumentContentRequest": { "properties": { "fields": { "additionalProperties": { "$ref": "#/components/schemas/JsonValue" }, "type": "object", "title": "Fields", "description": "Typed values extracted from or supplied for the document." } }, "additionalProperties": false, "type": "object", "required": [ "fields" ], "title": "DocumentContentRequest" }, "DocumentResponse": { "properties": { "id": { "type": "string", "pattern": "^(?:doc_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Id", "description": "Stable public identifier for this document.", "examples": [ "doc_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "slot": { "$ref": "#/components/schemas/DocumentType", "description": "Verification requirement this document satisfies." }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "description": "Human-readable document name." }, "fileName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Filename", "description": "Original file name including its extension." }, "createdAt": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Createdat", "description": "UTC timestamp when the document was created." } }, "type": "object", "required": [ "id", "slot" ], "title": "DocumentResponse" }, "DocumentType": { "type": "string", "enum": [ "certificate_of_incorporation", "certificate_of_registration", "formation_document", "articles_of_incorporation", "power_of_attorney", "corporate_structure", "org_structure_chart", "company_registry_extract", "corporate_registry_extract", "shareholder_registry", "cap_table", "director_structure", "proof_of_address", "utility_bill", "aml_policy", "annual_financial_statements", "articles_of_association", "audit_report", "independent_aml_audit_report", "identity_verification_attestation", "institutional_investor_documentation", "audited_financial_statement", "bank_reference_letter", "bank_verification_letter", "bank_statement", "banking_details", "birth_certificate", "business_license", "operating_license", "business_plan", "certificate_of_good_standing", "corporate_resolution", "proof_of_registered_address", "proof_of_operating_address", "crypto_statement", "credit_report", "criminal_record_check", "cv_resume", "driving_license", "education_certificate", "financial_projections", "investment_statement", "insurance_policy", "lease_agreement", "marriage_certificate", "national_id", "national_id_front", "national_id_back", "operating_agreement", "partnership_agreement", "professional_license", "regulatory_license", "reference_letter", "register_of_members", "residence_permit", "shareholding_structure", "shareholders_agreement", "social_security_document", "source_of_funds_declaration", "tax_identification_document", "ein_letter", "tax_certificate", "tax_compliance_form", "tax_returns", "payslip", "pitch_deck", "savings_statement", "trade_references", "vat_registration", "vendor_contracts", "visa", "wealth_statement", "contract", "invoice", "loan_agreement", "subscription_agreement", "safe_agreement", "convertible_note", "promissory_note", "marketing_material", "employment_contract", "authorization_to_act", "authority_to_bind", "ubo_declaration", "income_verification_letter", "source_of_funds", "flow_of_funds", "payroll_register", "investment_agreement", "source_of_wealth", "supporting_document", "memorandum", "passport_front", "passport_back", "id_card_front", "id_card_back", "drivers_license_front", "drivers_license_back", "residence_permit_front", "residence_permit_back", "other" ], "title": "DocumentType" }, "DocumentUploadRequest": { "properties": { "slot": { "$ref": "#/components/schemas/DocumentType", "description": "Verification requirement this file satisfies." }, "content": { "type": "string", "minLength": 1, "title": "Content", "description": "Base64-encoded document bytes." }, "fileName": { "anyOf": [ { "type": "string", "maxLength": 255, "minLength": 1 }, { "type": "null" } ], "title": "Filename", "description": "Original file name including its extension." }, "name": { "anyOf": [ { "type": "string", "maxLength": 255, "minLength": 1 }, { "type": "null" } ], "title": "Name", "description": "Human-readable document name." } }, "additionalProperties": false, "type": "object", "required": [ "slot", "content" ], "title": "DocumentUploadRequest" }, "EscrowAction": { "type": "string", "enum": [ "approve", "authorize", "charge", "capture", "reject", "void", "reclaim", "refund" ], "title": "EscrowAction" }, "EscrowActionRequest": { "properties": { "action": { "$ref": "#/components/schemas/EscrowVerb", "description": "Escrow state transition to prepare." }, "amount": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Amount", "description": "Token amount affected by this action, when required." }, "feeBps": { "type": "integer", "maximum": 10000.0, "minimum": 0.0, "title": "Feebps", "description": "Variable fee in basis points for charge or capture actions.", "default": 0 } }, "additionalProperties": false, "type": "object", "required": [ "action" ], "title": "EscrowActionRequest" }, "EscrowActionResultView": { "properties": { "deal": { "$ref": "#/components/schemas/EscrowView", "description": "Latest escrow state after processing the action." }, "action": { "$ref": "#/components/schemas/EscrowActionView", "description": "Prepared or submitted action." }, "events": { "items": { "$ref": "#/components/schemas/EscrowEventView" }, "type": "array", "title": "Events", "description": "Observed on-chain events for this action." }, "pollUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pollurl", "description": "Relative API URL to poll while processing continues." } }, "type": "object", "required": [ "deal", "action" ], "title": "EscrowActionResultView" }, "EscrowActionView": { "properties": { "action": { "$ref": "#/components/schemas/EscrowAction", "description": "Escrow action represented by this resource." }, "idempotencyKey": { "type": "string", "title": "Idempotencykey", "description": "Key that binds retries to the prepared action." }, "status": { "$ref": "#/components/schemas/PlatformEscrowActionStatus", "description": "Current public lifecycle status of the action." }, "amount": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Amount", "description": "Token amount affected by the action." }, "feeBps": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Feebps", "description": "Variable fee in basis points, when charged." }, "transactionHash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Transactionhash", "description": "On-chain transaction hash, when broadcast." }, "approval": { "anyOf": [ { "$ref": "#/components/schemas/EscrowApprovalView" }, { "type": "null" } ], "description": "Authorization to sign before execution." } }, "type": "object", "required": [ "action", "idempotencyKey", "status" ], "title": "EscrowActionView" }, "EscrowApprovalView": { "properties": { "id": { "type": "string", "format": "uuid", "title": "Id", "description": "Single-use approval identifier." }, "payload": { "type": "string", "title": "Payload", "description": "Base64 canonical authorization payload to sign with the developer key." }, "expiresAt": { "type": "string", "format": "date-time", "title": "Expiresat", "description": "UTC timestamp after which this approval is refused." } }, "type": "object", "required": [ "id", "payload", "expiresAt" ], "title": "EscrowApprovalView" }, "EscrowConfirmRequest": { "properties": { "signature": { "type": "string", "maxLength": 2048, "minLength": 1, "title": "Signature", "description": "Base64 DER ECDSA P-256/SHA-256 signature over the decoded approval payload." }, "publicKey": { "anyOf": [ { "type": "string", "maxLength": 512, "minLength": 1 }, { "type": "null" } ], "title": "Publickey", "description": "Registered P-256 public key; omit when the signature uniquely identifies the key." } }, "additionalProperties": false, "type": "object", "required": [ "signature" ], "title": "EscrowConfirmRequest" }, "EscrowCreateRequest": { "properties": { "senderClientId": { "type": "string", "pattern": "^(?:cl_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Senderclientid", "description": "Account funding the escrow.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "receiverClientId": { "type": "string", "pattern": "^(?:cl_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Receiverclientid", "description": "Account entitled to receive captured funds.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "token": { "type": "string", "maxLength": 16, "minLength": 1, "title": "Token", "description": "Digital asset held in escrow.", "examples": [ "USDC" ] }, "maxAmount": { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "title": "Maxamount", "description": "Maximum token amount that may be authorized.", "example": "500.00" }, "approveWithin": { "type": "string", "pattern": "^\\d{1,4}[smhd]$", "title": "Approvewithin", "description": "Time allowed for the sender to approve funding.", "default": "1h", "examples": [ "14d" ] }, "holdFor": { "type": "string", "pattern": "^\\d{1,4}[smhd]$", "title": "Holdfor", "description": "Time captured funds remain held after approval.", "default": "14d", "examples": [ "14d" ] }, "refundableFor": { "type": "string", "pattern": "^\\d{1,4}[smhd]$", "title": "Refundablefor", "description": "Time during which a refund remains available.", "default": "90d", "examples": [ "14d" ] }, "feeBps": { "type": "integer", "maximum": 10000.0, "minimum": 0.0, "title": "Feebps", "description": "Variable fee in basis points; 100 basis points equals 1 percent.", "default": 0 }, "reference": { "additionalProperties": true, "type": "object", "title": "Reference", "description": "Caller reference stored with the escrow." }, "description": { "anyOf": [ { "type": "string", "maxLength": 2000 }, { "type": "null" } ], "title": "Description", "description": "Off-chain escrow description." }, "completionConditions": { "anyOf": [ { "type": "string", "maxLength": 10000 }, { "type": "null" } ], "title": "Completionconditions", "description": "Off-chain conditions reviewed before capture." } }, "additionalProperties": false, "type": "object", "required": [ "senderClientId", "receiverClientId", "token", "maxAmount" ], "title": "EscrowCreateRequest" }, "EscrowEventView": { "properties": { "name": { "type": "string", "title": "Name", "description": "Public name of the observed escrow event." }, "transactionHash": { "type": "string", "title": "Transactionhash", "description": "On-chain transaction hash associated with this event." }, "blockNumber": { "type": "integer", "title": "Blocknumber", "description": "Blockchain block number in which this event was observed." }, "amount": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Amount", "description": "Token amount associated with the event." } }, "type": "object", "required": [ "name", "transactionHash", "blockNumber" ], "title": "EscrowEventView" }, "EscrowPartyView": { "properties": { "clientId": { "type": "string", "title": "Clientid", "description": "Account represented by this escrow party." } }, "type": "object", "required": [ "clientId" ], "title": "EscrowPartyView" }, "EscrowVerb": { "type": "string", "enum": [ "authorize", "charge", "capture", "void", "refund" ], "title": "EscrowVerb" }, "EscrowView": { "properties": { "id": { "type": "string", "title": "Id", "description": "Stable public identifier for this escrow." }, "status": { "$ref": "#/components/schemas/PlatformEscrowStatus", "description": "Current public lifecycle status of the escrow." }, "availableActions": { "items": { "$ref": "#/components/schemas/EscrowAction" }, "type": "array", "title": "Availableactions", "description": "Actions permitted by current state and deadlines." }, "sender": { "$ref": "#/components/schemas/EscrowPartyView", "description": "Account sending or authorizing escrow funds." }, "receiver": { "$ref": "#/components/schemas/EscrowPartyView", "description": "Account entitled to captured escrow funds." }, "onchainEscrowUrl": { "type": "string", "title": "Onchainescrowurl", "description": "Block explorer URL for the shared escrow contract." }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description", "description": "Off-chain escrow description." }, "completionConditions": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Completionconditions", "description": "Off-chain conditions reviewed before capture." }, "token": { "type": "string", "title": "Token", "description": "Digital asset held in escrow." }, "maxAmount": { "type": "string", "title": "Maxamount", "description": "Maximum token amount that may be authorized.", "example": "500.00" }, "authorizedAmount": { "type": "string", "title": "Authorizedamount", "description": "Token amount currently authorized for capture.", "example": "500.00" }, "capturableAmount": { "type": "string", "title": "Capturableamount", "description": "Token amount that may currently be captured.", "example": "500.00" }, "refundableAmount": { "type": "string", "title": "Refundableamount", "description": "Token amount that may currently be refunded.", "example": "500.00" }, "windows": { "$ref": "#/components/schemas/EscrowWindowsView", "description": "Approval, holding and refund deadlines." }, "action": { "anyOf": [ { "$ref": "#/components/schemas/EscrowActionView" }, { "type": "null" } ], "description": "Latest prepared or submitted escrow action." }, "consistent": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Consistent", "description": "Whether persisted state matches the latest chain state." }, "createdAt": { "type": "string", "format": "date-time", "title": "Createdat", "description": "UTC timestamp when the escrow was created." }, "updatedAt": { "type": "string", "format": "date-time", "title": "Updatedat", "description": "UTC timestamp when the escrow was last updated." } }, "type": "object", "required": [ "id", "status", "availableActions", "sender", "receiver", "onchainEscrowUrl", "token", "maxAmount", "authorizedAmount", "capturableAmount", "refundableAmount", "windows", "createdAt", "updatedAt" ], "title": "EscrowView" }, "EscrowWindowsView": { "properties": { "approveBy": { "type": "string", "format": "date-time", "title": "Approveby", "description": "UTC deadline for escrow approval." }, "holdUntil": { "type": "string", "format": "date-time", "title": "Holduntil", "description": "UTC timestamp until which captured funds remain held." }, "refundableUntil": { "type": "string", "format": "date-time", "title": "Refundableuntil", "description": "UTC deadline for a refund." } }, "type": "object", "required": [ "approveBy", "holdUntil", "refundableUntil" ], "title": "EscrowWindowsView" }, "ExportFormat": { "type": "string", "enum": [ "csv", "xlsx", "pdf" ], "title": "ExportFormat" }, "ExportKind": { "type": "string", "enum": [ "statement", "confirmation", "receipt" ], "title": "ExportKind" }, "FiatBusinessType": { "type": "string", "enum": [ "technology", "finance", "healthcare", "retail", "e_commerce", "manufacturing", "real_estate", "consulting", "hospitality", "education", "transportation", "entertainment", "agriculture", "construction", "professional_services", "crypto_web3", "other" ], "title": "FiatBusinessType", "description": "Business industry type." }, "FiatCryptoIndustrySubtype": { "type": "string", "enum": [ "protocol", "exchange", "investment", "lender", "market_maker", "saas", "miner" ], "title": "FiatCryptoIndustrySubtype" }, "FiatEntityType": { "type": "string", "enum": [ "llc", "corporation", "s_corporation", "c_corporation", "partnership", "limited_partnership", "sole_proprietorship", "nonprofit", "trust", "cooperative", "dao", "foundation", "other" ], "title": "FiatEntityType", "description": "Business entity type." }, "FiatIdentityDocumentType": { "type": "string", "enum": [ "passport", "id_card", "drivers_license", "driver_license", "residence_permit", "government_id", "state_or_provincial_id", "visa" ], "title": "FiatIdentityDocumentType", "description": "Identity document type." }, "FiatPaymentType": { "type": "string", "enum": [ "sepa", "swift", "ach", "uaefts", "fedwire", "rtp", "fednow", "pix", "spei", "pse", "breb", "transfers_3_0", "ukfps", "npp", "nip", "bdt_local", "bdt_ewallet", "bob_local", "brl_local", "cad_eft", "clp_local", "cny_alipay", "cny_wechatpay", "cop_local", "crc_local", "dkk_local", "dop_local", "dop_ewallet", "egp_local", "gtq_local", "gtq_ewallet", "hkd_fps", "hnl_local", "idr_local", "idr_ewallet", "ils_local", "inr_local", "inr_upi", "jmd_local", "jpy_local", "krw_local", "myr_local", "nok_local", "php_local", "php_ewallet", "pkr_raast", "pkr_ewallet", "pln_local", "sar_local", "sle_local", "thb_local", "try_fast", "tzs_local", "ugx_local", "vnd_local", "xof_local", "zmw_local" ], "title": "FiatPaymentType" }, "FiatPrimaryTargetMarket": { "type": "string", "enum": [ "retail", "commercial", "government", "other" ], "title": "FiatPrimaryTargetMarket", "description": "Primary customer market served by the business applicant." }, "FiatPurposeOfFunds": { "type": "string", "enum": [ "operations", "payroll", "vendor_payments", "investment", "treasury_management", "international_transfers", "other" ], "title": "FiatPurposeOfFunds", "description": "Purpose of funds." }, "FiatSourceOfFunds": { "type": "string", "enum": [ "business_revenue", "investment", "loan", "personal_savings", "third_party_funds", "grant", "other" ], "title": "FiatSourceOfFunds", "description": "Source of funds." }, "FiatTransactionCount": { "type": "string", "enum": [ "<10", "10-50", "50-200", "200-1,000", "1,000+" ], "title": "FiatTransactionCount", "description": "Expected monthly transaction-count range declared during KYB." }, "FiatVerifierRole": { "type": "string", "enum": [ "officer", "employer", "accountant", "agent" ], "title": "FiatVerifierRole", "description": "KYB verifier role." }, "HighRiskActivity": { "type": "string", "enum": [ "MONEY_SERVICES", "LENDING_BANKING", "OTC_FX_CRYPTO_BROKERAGE", "HOLD_CLIENT_FUNDS", "INVESTMENT_SERVICES", "SAFE_DEPOSIT_BOX", "PRECIOUS_METALS_STONES_JEWELRY", "NICOTINE_TOBACCO", "MARIJUANA", "PHARMACEUTICALS", "THIRD_PARTY_PAYMENT_PROCESSING", "ADULT_ENTERTAINMENT", "WEAPONS_FIREARMS_EXPLOSIVES", "GAMBLING" ], "title": "HighRiskActivity" }, "IntentView": { "properties": { "digest": { "type": "string", "title": "Digest", "description": "EIP-712 digest of the terms authorized by this approval." }, "settles": { "type": "string", "title": "Settles", "description": "How the backend settles once the intent is authorized." } }, "type": "object", "required": [ "digest", "settles" ], "title": "IntentView" }, "IntermediaryBank-Input": { "properties": { "bic": { "type": "string", "title": "Bic", "description": "BIC or SWIFT identifier of the intermediary institution." }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "description": "Name of the intermediary institution." }, "address": { "anyOf": [ { "$ref": "#/components/schemas/BankAddress-Input" }, { "type": "null" } ], "description": "Postal address of the intermediary institution." }, "accountNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Accountnumber", "description": "Account number used at the intermediary institution." } }, "type": "object", "required": [ "bic" ], "title": "IntermediaryBank" }, "IntermediaryBank-Output": { "properties": { "bic": { "type": "string", "title": "Bic", "description": "BIC or SWIFT identifier of the intermediary institution." }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "description": "Name of the intermediary institution." }, "address": { "anyOf": [ { "$ref": "#/components/schemas/BankAddress-Output" }, { "type": "null" } ], "description": "Postal address of the intermediary institution." }, "accountNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Accountnumber", "description": "Account number used at the intermediary institution." } }, "type": "object", "required": [ "bic", "name", "address", "accountNumber" ], "title": "IntermediaryBank" }, "JsonValue": {}, "KybApplicationStatus": { "type": "string", "enum": [ "pending", "approved", "rfi", "rejected", "superseded" ], "title": "KybApplicationStatus" }, "LedgerSyncView": { "properties": { "syncedAt": { "type": "string", "format": "date-time", "title": "Syncedat", "description": "When this refresh finished." }, "written": { "type": "integer", "title": "Written", "description": "Transactions the refresh created or updated in the client's ledger." } }, "type": "object", "required": [ "syncedAt", "written" ], "title": "LedgerSyncView" }, "Page_ClientResponse_": { "properties": { "items": { "items": { "$ref": "#/components/schemas/ClientResponse" }, "type": "array", "title": "Items", "description": "Resources in this page, in stable server-defined order." }, "nextCursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Nextcursor", "description": "Opaque cursor for the next page; absent when this is the final page." } }, "type": "object", "required": [ "items" ], "title": "Page[ClientResponse]" }, "Page_ContactResponse_": { "properties": { "items": { "items": { "$ref": "#/components/schemas/ContactResponse" }, "type": "array", "title": "Items", "description": "Resources in this page, in stable server-defined order." }, "nextCursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Nextcursor", "description": "Opaque cursor for the next page; absent when this is the final page." } }, "type": "object", "required": [ "items" ], "title": "Page[ContactResponse]" }, "Page_EscrowView_": { "properties": { "items": { "items": { "$ref": "#/components/schemas/EscrowView" }, "type": "array", "title": "Items", "description": "Resources in this page, in stable server-defined order." }, "nextCursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Nextcursor", "description": "Opaque cursor for the next page; absent when this is the final page." } }, "type": "object", "required": [ "items" ], "title": "Page[EscrowView]" }, "Page_TransactionView_": { "properties": { "items": { "items": { "$ref": "#/components/schemas/TransactionView" }, "type": "array", "title": "Items", "description": "Resources in this page, in stable server-defined order." }, "nextCursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Nextcursor", "description": "Opaque cursor for the next page; absent when this is the final page." } }, "type": "object", "required": [ "items" ], "title": "Page[TransactionView]" }, "PayinCreateRequest": { "properties": { "amount": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Amount", "description": "Exact amount funded in the source currency." }, "amountTo": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Amountto", "description": "Exact amount to settle to the account." }, "currency": { "type": "string", "title": "Currency", "description": "ISO 4217 fiat code or supported digital-asset symbol for amount." }, "rail": { "anyOf": [ { "$ref": "#/components/schemas/FiatPaymentType" }, { "type": "null" } ], "description": "Local payment method; provide exactly one of rail or originChainId." }, "originChainId": { "anyOf": [ { "$ref": "#/components/schemas/ChainCode" }, { "type": "null" } ], "description": "Network from which an on-chain incoming transfer is funded." }, "destinationAccount": { "$ref": "#/components/schemas/AccountKey", "description": "Account credited after settlement. Incoming transfers settle to a token account.", "default": "USDC" } }, "additionalProperties": false, "type": "object", "required": [ "currency" ], "title": "PayinCreateRequest" }, "PayinInstructionKind": { "type": "string", "enum": [ "bank_transfer", "qr_code", "hosted_page", "manual" ], "title": "PayinInstructionKind" }, "PayinInstructionsRequest": { "properties": { "payer": { "anyOf": [ { "$ref": "#/components/schemas/PlatformPayinPayerAccount" }, { "type": "null" } ], "description": "Originator information required by payment methods that validate the sending account." } }, "additionalProperties": false, "type": "object", "title": "PayinInstructionsRequest" }, "PayinInstructionsView": { "properties": { "payinId": { "type": "string", "pattern": "^(?:pi_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Payinid", "description": "Incoming-transfer identifier these instructions fund.", "examples": [ "pi_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "kind": { "anyOf": [ { "$ref": "#/components/schemas/PayinInstructionKind" }, { "type": "string", "const": "onchain" } ], "title": "Kind", "description": "Kind of funding instruction returned." }, "amount": { "type": "string", "title": "Amount", "description": "Exact amount to send.", "example": "500.00" }, "currency": { "type": "string", "title": "Currency", "description": "Currency or digital asset to send." }, "paymentReference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Paymentreference", "description": "Reference that must accompany the account transfer." }, "singleUse": { "type": "boolean", "title": "Singleuse", "description": "Whether these instructions may fund only this incoming transfer once." }, "expiresAt": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Expiresat", "description": "UTC timestamp after which these instructions expire." }, "requisites": { "anyOf": [ { "$ref": "#/components/schemas/RailRequisitesView" }, { "type": "null" } ], "description": "Receiving payment-account details." }, "qrPayload": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Qrpayload", "description": "Raw payload suitable for rendering as a payment QR code." }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url", "description": "Hosted URL where the incoming transfer can be funded." }, "address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address", "description": "On-chain destination address." }, "memo": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Memo", "description": "Memo or destination tag required by the on-chain transfer." }, "chainId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chainid", "description": "Network on which the destination address exists." } }, "type": "object", "required": [ "payinId", "kind", "amount", "currency", "singleUse" ], "title": "PayinInstructionsView" }, "PayinQuoteView": { "properties": { "amount": { "type": "string", "title": "Amount", "description": "Amount funded in the source currency.", "example": "500.00" }, "currency": { "type": "string", "title": "Currency", "description": "Source currency or digital asset." }, "settlementAmount": { "type": "string", "title": "Settlementamount", "description": "Amount delivered in the settlement asset.", "example": "500.00" }, "destinationAccount": { "anyOf": [ { "$ref": "#/components/schemas/AccountKey" }, { "type": "null" } ], "description": "Account credited by this incoming transfer." }, "feeAmount": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Feeamount", "description": "Fee charged in feeCurrency." }, "feeCurrency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feecurrency", "description": "Currency in which the fee is charged." }, "rate": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Rate", "description": "Conversion rate from source amount to settlement amount." } }, "type": "object", "required": [ "amount", "currency", "settlementAmount" ], "title": "PayinQuoteView" }, "PayinState": { "type": "string", "enum": [ "pending", "awaitingFunds", "processing", "inReview", "completed", "failed", "refunded", "canceled" ], "title": "PayinState" }, "PayinView": { "properties": { "id": { "type": "string", "pattern": "^(?:pi_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Id", "description": "Stable public identifier for this incoming transfer.", "examples": [ "pi_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "status": { "$ref": "#/components/schemas/PayinState", "description": "Current public lifecycle status of the incoming transfer." }, "rail": { "anyOf": [ { "$ref": "#/components/schemas/FiatPaymentType" }, { "type": "null" } ], "description": "Local payment method, when account-funded." }, "quote": { "$ref": "#/components/schemas/PayinQuoteView", "description": "Price, fee and conversion terms fixed for this incoming transfer." }, "paymentReference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Paymentreference", "description": "Reference that must accompany the account transfer." }, "originChainId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Originchainid", "description": "Network from which an on-chain transfer is funded." }, "destinationChainId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Destinationchainid", "description": "Network on which the transfer settles." }, "expiresAt": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Expiresat", "description": "UTC timestamp after which the quote is no longer valid." }, "createdAt": { "type": "string", "format": "date-time", "title": "Createdat", "description": "UTC timestamp when the incoming transfer was created." } }, "type": "object", "required": [ "id", "status", "quote", "createdAt" ], "title": "PayinView" }, "PayoutAttentionKind": { "type": "string", "enum": [ "rfi" ], "title": "PayoutAttentionKind" }, "PayoutAttentionView": { "properties": { "kind": { "$ref": "#/components/schemas/PayoutAttentionKind", "description": "Additional action required before processing can continue." }, "url": { "type": "string", "title": "Url", "description": "URL where the required action can be completed." } }, "type": "object", "required": [ "kind", "url" ], "title": "PayoutAttentionView" }, "PayoutContactView": { "properties": { "contactId": { "anyOf": [ { "type": "string", "pattern": "^(?:ct_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "ct_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Contactid", "description": "Saved contact associated with the transfer." }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "description": "Human-readable contact name." }, "address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address", "description": "On-chain destination address, when applicable." }, "chainId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Chainid", "description": "Network on which the contact receives funds." }, "token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Token", "description": "Digital asset the contact receives, when applicable." } }, "type": "object", "title": "PayoutContactView" }, "PayoutCreateRequest": { "properties": { "contactId": { "type": "string", "pattern": "^(?:ct_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Contactid", "description": "Saved contact to receive this transfer.", "examples": [ "ct_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "amount": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Amount", "description": "Exact amount to debit in the source currency." }, "amountTo": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Amountto", "description": "Exact amount the contact should receive." }, "publicKey": { "anyOf": [ { "type": "string", "maxLength": 512, "minLength": 1 }, { "type": "null" } ], "title": "Publickey", "description": "Base64 DER SubjectPublicKeyInfo for the registered P-256 developer key. Required unless the account holder signs their own transfers." }, "paymentReference": { "anyOf": [ { "type": "string", "maxLength": 140 }, { "type": "null" } ], "title": "Paymentreference", "description": "Reference or memo delivered with the transfer." }, "purpose": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Purpose", "description": "Business purpose or reason for the transfer." }, "documentIds": { "items": { "type": "string", "pattern": "^(?:doc_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "doc_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "type": "array", "maxItems": 10, "title": "Documentids", "description": "Supporting document identifiers returned by POST /dapi/v1/documents." }, "bankId": { "anyOf": [ { "type": "string", "pattern": "^(?:bnk_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "bnk_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Bankid", "description": "Optional receiving-account identifier used to select a specific funding route." }, "sourceAccount": { "$ref": "#/components/schemas/AccountKey", "description": "Account this payout is paid from. `USDC` and `EURC` debit the client's wallet; `FDIC_USD` spends the custodial USD balance and is authorized by an intent signature instead of a debit.", "default": "USDC" } }, "additionalProperties": false, "type": "object", "required": [ "contactId" ], "title": "PayoutCreateRequest" }, "PayoutFailureView": { "properties": { "code": { "type": "string", "title": "Code", "description": "Stable machine-readable code for the transfer failure." } }, "type": "object", "required": [ "code" ], "title": "PayoutFailureView" }, "PayoutKind": { "type": "string", "enum": [ "fiat", "onchain" ], "title": "PayoutKind" }, "PayoutPreviewRequest": { "properties": { "rail": { "type": "string", "maxLength": 64, "minLength": 1, "title": "Rail", "description": "Stable payment-method identifier to preview." }, "amount": { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "title": "Amount", "description": "Source amount to price.", "example": "500.00" } }, "additionalProperties": false, "type": "object", "required": [ "rail", "amount" ], "title": "PayoutPreviewRequest" }, "PayoutPreviewResponse": { "properties": { "toAmount": { "type": "string", "title": "Toamount", "description": "Estimated amount delivered in the destination currency.", "example": "500.00" }, "toCurrency": { "type": "string", "title": "Tocurrency", "description": "Currency delivered by the preview." }, "minAmount": { "type": "string", "title": "Minamount", "description": "Minimum supported source amount for this option.", "example": "500.00" }, "feeAmount": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Feeamount", "description": "Estimated variable fee." }, "fixedFee": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Fixedfee", "description": "Estimated fixed fee component." } }, "type": "object", "required": [ "toAmount", "toCurrency", "minAmount" ], "title": "PayoutPreviewResponse" }, "PayoutQuoteView": { "properties": { "fromAmount": { "type": "string", "title": "Fromamount", "description": "Amount debited in the source currency.", "example": "500.00" }, "fromCurrency": { "type": "string", "title": "Fromcurrency", "description": "Currency debited by the quote." }, "sourceAccount": { "anyOf": [ { "$ref": "#/components/schemas/AccountKey" }, { "type": "null" } ], "description": "Account the payout is paid from. `USDC`, `EURC` and `USDC_ARB` debit the client's wallet; `FDIC_USD` debits the custodial USD balance, whose quote is priced in `USD`." }, "toAmount": { "type": "string", "title": "Toamount", "description": "Amount delivered in the destination currency.", "example": "500.00" }, "toCurrency": { "type": "string", "title": "Tocurrency", "description": "Currency delivered by the quote." }, "rate": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Rate", "description": "Conversion rate from source to destination amount." }, "feeAmount": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Feeamount", "description": "Fee charged in feeCurrency." }, "feeCurrency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feecurrency", "description": "Currency in which the fee is charged." }, "expiresAt": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Expiresat", "description": "UTC timestamp after which the quote is no longer valid." }, "fromChainId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Fromchainid", "description": "Network from which the transfer is funded." }, "toChainId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tochainid", "description": "Network on which the contact receives the transfer." } }, "type": "object", "required": [ "fromAmount", "fromCurrency", "toAmount", "toCurrency" ], "title": "PayoutQuoteView" }, "PayoutReadResponse": { "properties": { "id": { "type": "string", "pattern": "^(?:po_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Id", "description": "Stable public identifier for this outgoing transfer.", "examples": [ "po_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "kind": { "$ref": "#/components/schemas/PayoutKind", "description": "Whether the contact is account-based or on-chain." }, "status": { "$ref": "#/components/schemas/PayoutStatus", "description": "Current public lifecycle status of the transfer." }, "quote": { "anyOf": [ { "$ref": "#/components/schemas/PayoutQuoteView" }, { "type": "null" } ], "description": "Price, fee and conversion terms fixed at creation." }, "transactionHash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Transactionhash", "description": "On-chain transaction hash, when broadcast." }, "transactionId": { "anyOf": [ { "type": "string", "pattern": "^(?:txn_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "txn_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Transactionid", "description": "Ledger transaction identifier, when created." }, "contact": { "anyOf": [ { "$ref": "#/components/schemas/PayoutContactView" }, { "type": "null" } ], "description": "Contact snapshot fixed at creation." }, "paymentReference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Paymentreference", "description": "Reference or memo delivered with the transfer." }, "createdAt": { "type": "string", "format": "date-time", "title": "Createdat", "description": "UTC timestamp when the transfer was created." }, "settledAt": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Settledat", "description": "UTC timestamp when settlement completed." }, "attention": { "anyOf": [ { "$ref": "#/components/schemas/PayoutAttentionView" }, { "type": "null" } ], "description": "Additional action required before processing." }, "failure": { "anyOf": [ { "$ref": "#/components/schemas/PayoutFailureView" }, { "type": "null" } ], "description": "Terminal or actionable failure details." } }, "type": "object", "required": [ "id", "kind", "status", "createdAt" ], "title": "PayoutReadResponse" }, "PayoutReceiptResponse": { "properties": { "id": { "type": "string", "title": "Id", "description": "Stable public identifier for this outgoing transfer." }, "kind": { "$ref": "#/components/schemas/PayoutKind", "description": "Whether the contact is account-based or on-chain." }, "status": { "$ref": "#/components/schemas/PayoutStatus", "description": "Current public lifecycle status of the transfer." }, "transactionHash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Transactionhash", "description": "On-chain transaction hash, when broadcast." }, "transactionId": { "anyOf": [ { "type": "string", "pattern": "^(?:txn_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "txn_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Transactionid", "description": "Ledger transaction identifier, when created." }, "pollUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pollurl", "description": "Relative API URL to poll while processing continues." }, "failure": { "anyOf": [ { "$ref": "#/components/schemas/PayoutFailureView" }, { "type": "null" } ], "description": "Terminal or actionable failure details." } }, "type": "object", "required": [ "id", "kind", "status" ], "title": "PayoutReceiptResponse" }, "PayoutResponse": { "properties": { "id": { "type": "string", "title": "Id", "description": "Stable public identifier for this outgoing transfer." }, "kind": { "$ref": "#/components/schemas/PayoutKind", "description": "Whether the contact is account-based or on-chain." }, "status": { "$ref": "#/components/schemas/PayoutStatus", "description": "Current public lifecycle status of the transfer." }, "idempotencyKey": { "type": "string", "title": "Idempotencykey", "description": "Caller-supplied key that makes an identical retry return this result." }, "quote": { "anyOf": [ { "$ref": "#/components/schemas/PayoutQuoteView" }, { "type": "null" } ], "description": "Price, fee and conversion terms fixed for this transfer." }, "authorization": { "$ref": "#/components/schemas/AuthorizationKind", "description": "Whether the approval authorizes a balance debit or a signature over the transfer's terms, or whether the account holder signs it themselves in the HEVN sign-in window.", "default": "debit" }, "approval": { "anyOf": [ { "$ref": "#/components/schemas/ApprovalView" }, { "type": "null" } ], "description": "Authorization to sign before execution." }, "debit": { "anyOf": [ { "$ref": "#/components/schemas/DebitView" }, { "type": "null" } ], "description": "Exact on-chain debit used to fund this transfer." }, "intent": { "anyOf": [ { "$ref": "#/components/schemas/IntentView" }, { "type": "null" } ], "description": "Terms authorized by the signature, when this transfer is not funded by a debit." }, "contact": { "anyOf": [ { "$ref": "#/components/schemas/PayoutContactView" }, { "type": "null" } ], "description": "Contact snapshot fixed at creation." } }, "type": "object", "required": [ "id", "kind", "status", "idempotencyKey" ], "title": "PayoutResponse" }, "PayoutStatus": { "type": "string", "enum": [ "awaitingSignature", "submitted", "settled", "failed", "refunded" ], "title": "PayoutStatus" }, "PlatformClientFailure": { "type": "string", "enum": [ "provisioning_failed", "request_rejected", "request_canceled" ], "title": "PlatformClientFailure" }, "PlatformClientStatus": { "type": "string", "enum": [ "provisioning", "ready", "failed" ], "title": "PlatformClientStatus" }, "PlatformEmailAccountInput": { "properties": { "accountType": { "type": "string", "const": "email", "title": "Accounttype", "description": "Selects an existing contact by email.", "default": "email" }, "email": { "type": "string", "title": "Email", "description": "Email used to resolve the existing contact account." } }, "additionalProperties": false, "type": "object", "required": [ "email" ], "title": "PlatformEmailAccountInput" }, "PlatformErrorBody": { "properties": { "code": { "$ref": "#/components/schemas/PlatformErrorCode", "description": "Stable machine-readable error code." }, "message": { "type": "string", "title": "Message", "description": "Human-readable explanation safe to show to an end user." }, "details": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Details", "description": "Structured context for this error, when available." } }, "type": "object", "required": [ "code", "message" ], "title": "PlatformErrorBody" }, "PlatformErrorCode": { "type": "string", "enum": [ "invalid_request", "validation_failed", "invalid_cursor", "invalid_id", "idempotency_key_invalid", "idempotency_key_reused", "unauthenticated", "token_expired", "forbidden", "not_found", "method_not_allowed", "conflict", "gone", "payload_too_large", "rate_limited", "provider_unavailable", "database_unavailable", "internal_error", "invalid_credentials", "request_expired", "challenge_not_found", "challenge_consumed", "challenge_expired", "signature_invalid", "key_not_registered", "signer_not_attached", "wallet_not_linked", "approval_consumed", "approval_expired", "approval_mismatch", "signing_policy_refused", "login_unavailable", "login_mode_unavailable", "developer_key_not_found", "developer_key_already_exists", "account_header_invalid", "account_scope_conflict", "account_not_found", "account_forbidden", "account_read_only", "account_not_controlled", "contact_not_found", "quote_not_submitted", "quote_not_fundable", "funding_mode_unsupported", "funding_token_unsupported", "insufficient_funds", "smart_wallet_not_deployed", "wallet_owner_unverified", "already_funded", "payment_slot_consumed", "funding_in_progress", "funding_attempt_expired", "contact_changed", "user_operation_rejected", "user_operation_unavailable", "transfer_policy_denied", "client_creation_not_enabled", "client_not_found", "link_code_invalid", "link_code_expired", "client_already_linked", "redirect_uri_not_allowed", "payout_not_awaiting_signature", "verification_not_applicable", "profile_locked", "contact_not_payable", "contact_chain_unsupported", "contact_token_unsupported", "contact_payment_details_invalid", "amount_below_minimum", "amount_above_maximum", "amount_precision_unsupported", "payout_not_found", "payout_not_fundable", "quote_expired", "bundler_rejected", "bundler_unavailable", "contact_details_invalid", "contact_in_use", "kyb_incomplete", "kyb_documents_processing", "kyb_roster_conflict", "kyb_subject_conflict", "document_not_found", "document_type_unsupported", "invalid_enum_value", "entity_not_found", "escrow_not_found", "escrow_action_not_found", "escrow_not_operated_by_you", "escrow_state_changed", "action_in_flight", "simulation_failed", "stale_nonce", "amount_out_of_range", "amount_not_allowed", "window_closed", "token_not_supported", "receiver_not_a_client", "rail_not_found", "rail_not_available", "payin_not_available", "payin_expired", "payin_not_found", "transaction_not_found", "account_unavailable", "account_not_supported", "swap_not_found", "swap_route_unavailable", "swap_not_confirmable", "intent_not_signable", "sandbox_amount_limit_exceeded", "sandbox_faucet_balance_too_high" ], "title": "PlatformErrorCode" }, "PlatformErrorResponse": { "properties": { "error": { "$ref": "#/components/schemas/PlatformErrorBody", "description": "Public error body." } }, "type": "object", "required": [ "error" ], "title": "PlatformErrorResponse" }, "PlatformEscrowActionStatus": { "type": "string", "enum": [ "awaitingSignature", "signing", "submitted", "confirmed", "reverted", "failed", "superseded", "dropped" ], "title": "PlatformEscrowActionStatus" }, "PlatformEscrowStatus": { "type": "string", "enum": [ "draft", "authorized", "charged", "partiallyCaptured", "captured", "voided", "reclaimed", "partiallyRefunded", "refunded" ], "title": "PlatformEscrowStatus" }, "PlatformKybAddress": { "properties": { "streetAddress": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Streetaddress", "description": "Street name and building number." }, "addressLine2": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Addressline2", "description": "Optional apartment, suite or unit." }, "city": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "City", "description": "City or locality." }, "state": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "State", "description": "State, province or administrative area." }, "zip": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Zip", "description": "Postal or ZIP code." }, "country": { "anyOf": [ { "$ref": "#/components/schemas/CountryCode" }, { "type": "null" } ], "description": "ISO 3166-1 alpha-2 country code." } }, "additionalProperties": false, "type": "object", "title": "PlatformKybAddress" }, "PlatformKybAddressView": { "properties": { "streetAddress": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Streetaddress", "description": "Street name and building number." }, "addressLine2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Addressline2", "description": "Optional apartment, suite or unit." }, "city": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "City", "description": "City or locality." }, "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "State", "description": "State, province or administrative area." }, "zip": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Zip", "description": "Postal or ZIP code." }, "country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Country", "description": "ISO 3166-1 alpha-2 country code." } }, "type": "object", "title": "PlatformKybAddressView" }, "PlatformKybApplicationResponse": { "properties": { "id": { "type": "string", "pattern": "^(?:kyb_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Id", "description": "Immutable verification application identifier.", "examples": [ "kyb_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "attemptNo": { "type": "integer", "title": "Attemptno", "description": "One-based submission attempt number for this account." }, "status": { "$ref": "#/components/schemas/PlatformKybStatus", "description": "Current public review status." }, "comment": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Comment", "description": "Review comment safe to show to the account holder." }, "submittedAt": { "type": "string", "format": "date-time", "title": "Submittedat", "description": "UTC timestamp when the immutable submission entered review." }, "decidedAt": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Decidedat", "description": "UTC timestamp of the latest review decision." } }, "type": "object", "required": [ "id", "attemptNo", "status", "submittedAt" ], "title": "PlatformKybApplicationResponse" }, "PlatformKybCompany": { "properties": { "legalName": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Legalname", "description": "Registered legal name of the business applicant." }, "tradeName": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Tradename", "description": "Trading name or DBA, when different from legalName." }, "country": { "anyOf": [ { "$ref": "#/components/schemas/CountryCode" }, { "type": "null" } ], "description": "ISO 3166-1 alpha-2 jurisdiction of incorporation." }, "registrationNumber": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Registrationnumber", "description": "Company registry number exactly as issued." }, "linkedinUrl": { "anyOf": [ { "type": "string", "maxLength": 2000, "minLength": 1 }, { "type": "null" } ], "title": "Linkedinurl", "description": "Public LinkedIn company URL used to corroborate business information." }, "taxId": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Taxid", "description": "Business tax identifier exactly as issued." }, "phone": { "anyOf": [ { "type": "string", "pattern": "^\\+[1-9]\\d{6,14}$" }, { "type": "null" } ], "title": "Phone", "description": "Business phone number in E.164 format." }, "email": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Email", "description": "Business contact email used for verification correspondence." }, "address": { "anyOf": [ { "$ref": "#/components/schemas/PlatformKybAddress" }, { "type": "null" } ], "description": "Registered business address." }, "entityType": { "anyOf": [ { "$ref": "#/components/schemas/FiatEntityType" }, { "type": "null" } ], "description": "Legal form of the business applicant." }, "entityTypeDescription": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Entitytypedescription", "description": "Free-text legal-form detail when entityType is other." }, "incorporationDate": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Incorporationdate", "description": "Date the business was legally registered." }, "industry": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Industry", "description": "Free-text description of the business industry." }, "websites": { "anyOf": [ { "items": { "type": "string", "maxLength": 200, "minLength": 1 }, "type": "array" }, { "type": "null" } ], "title": "Websites", "description": "Public business websites, primary site first." }, "operatingCountries": { "anyOf": [ { "items": { "$ref": "#/components/schemas/CountryCode" }, "type": "array" }, { "type": "null" } ], "title": "Operatingcountries", "description": "Countries where the business operates, as ISO 3166-1 alpha-2 codes." }, "expectedMonthlyVolumeUsd": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "example": "500.00", "ge": 0 }, { "type": "null" } ], "title": "Expectedmonthlyvolumeusd", "description": "Expected total monthly transaction volume in USD." }, "expectedCryptoMonthlyVolumeUsd": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "example": "500.00", "ge": 0 }, { "type": "null" } ], "title": "Expectedcryptomonthlyvolumeusd", "description": "Expected monthly digital-asset transaction volume in USD." }, "expectedMonthlyAchUsd": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "example": "500.00", "ge": 0 }, { "type": "null" } ], "title": "Expectedmonthlyachusd", "description": "Expected monthly ACH volume in USD." }, "expectedMonthlyWireUsd": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "example": "500.00", "ge": 0 }, { "type": "null" } ], "title": "Expectedmonthlywireusd", "description": "Expected monthly wire-transfer volume in USD." }, "cryptoIndustrySubtype": { "anyOf": [ { "$ref": "#/components/schemas/FiatCryptoIndustrySubtype" }, { "type": "null" } ], "description": "Digital-asset business subtype, when applicable." }, "hasIntermediateEntityOwnership": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Hasintermediateentityownership", "description": "Whether another legal entity exists between this applicant and an ultimate beneficial owner." }, "primaryTargetMarket": { "anyOf": [ { "$ref": "#/components/schemas/FiatPrimaryTargetMarket" }, { "type": "null" } ], "description": "Primary customer segment served by the business." }, "estimatedAnnualRevenue": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "example": "500.00", "ge": 0 }, { "type": "null" } ], "title": "Estimatedannualrevenue", "description": "Estimated annual business revenue in USD." }, "hasUsBank": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Hasusbank", "description": "Whether the business currently holds a payment account in the United States." }, "deniedUsBank": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Deniedusbank", "description": "Whether a US financial institution has previously declined or closed the business account." }, "hasPep": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Haspep", "description": "Whether the business, an owner or a controller is a politically exposed person." }, "bizAdverse": { "anyOf": [ { "items": { "type": "string", "maxLength": 4000, "minLength": 1 }, "type": "array" }, { "type": "null" } ], "title": "Bizadverse", "description": "Declared adverse information concerning the business." }, "ownersAdverse": { "anyOf": [ { "items": { "type": "string", "maxLength": 4000, "minLength": 1 }, "type": "array" }, { "type": "null" } ], "title": "Ownersadverse", "description": "Declared adverse information concerning owners or controllers." }, "publicListed": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Publiclisted", "description": "Whether the business is publicly listed." }, "txPerMonth": { "anyOf": [ { "$ref": "#/components/schemas/FiatTransactionCount" }, { "type": "null" } ], "description": "Expected number of transactions per month." }, "usesBlockchain": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Usesblockchain", "description": "Whether the business uses blockchain or digital assets in its operations." }, "revenueCovers": { "anyOf": [ { "$ref": "#/components/schemas/RevenueCoverage" }, { "type": "null" } ], "description": "How much of operating expenses current revenue covers." }, "institutionalInvestors": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Institutionalinvestors", "description": "Whether institutional investors fund or own the business." }, "isRegulated": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Isregulated", "description": "Whether the business is regulated or licensed." }, "regulatorCountry": { "anyOf": [ { "$ref": "#/components/schemas/CountryCode" }, { "type": "null" } ], "description": "ISO 3166-1 alpha-2 country of the authority that licenses the business. Required by some banking providers when is_regulated is true." }, "regulatoryLicenseType": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Regulatorylicensetype", "description": "Type of regulatory license the business holds, e.g. Electronic Money Institution. Required by some banking providers when is_regulated is true." }, "verifiesCustomerIdentity": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Verifiescustomeridentity", "description": "Whether the business verifies the identity of its own customers. Required by some banking providers when is_regulated is true." }, "hasTransactionMonitoring": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Hastransactionmonitoring", "description": "Whether the business monitors its customers' transactions. Required by some banking providers when is_regulated is true." }, "productsServices": { "anyOf": [ { "items": { "type": "string", "maxLength": 200, "minLength": 1 }, "type": "array" }, { "type": "null" } ], "title": "Productsservices", "description": "Products and services offered by the business." }, "businessDescription": { "anyOf": [ { "type": "string", "maxLength": 4000, "minLength": 1 }, { "type": "null" } ], "title": "Businessdescription", "description": "Plain-language description of what the business does." }, "businessType": { "anyOf": [ { "$ref": "#/components/schemas/FiatBusinessType" }, { "type": "null" } ], "description": "High-level business category." }, "businessIndustry": { "anyOf": [ { "type": "string", "pattern": "^\\d{6}$" }, { "type": "null" } ], "title": "Businessindustry", "description": "Six-digit NAICS-style industry code." }, "verifierRole": { "anyOf": [ { "$ref": "#/components/schemas/FiatVerifierRole" }, { "type": "null" } ], "description": "Role of the person providing the business verification information." }, "sourceOfFunds": { "anyOf": [ { "$ref": "#/components/schemas/FiatSourceOfFunds" }, { "type": "null" } ], "description": "Primary economic source of funds entering the account." }, "sourceOfFundsDetails": { "anyOf": [ { "type": "string", "maxLength": 4000, "minLength": 1 }, { "type": "null" } ], "title": "Sourceoffundsdetails", "description": "Additional explanation of the declared source of funds." }, "purposeOfFunds": { "anyOf": [ { "$ref": "#/components/schemas/FiatPurposeOfFunds" }, { "type": "null" } ], "description": "Primary intended use of funds in the account." }, "purposeOfFundsDetails": { "anyOf": [ { "type": "string", "maxLength": 4000, "minLength": 1 }, { "type": "null" } ], "title": "Purposeoffundsdetails", "description": "Additional explanation of the declared purpose of funds." }, "flowOfFunds": { "anyOf": [ { "type": "string", "maxLength": 4000, "minLength": 1 }, { "type": "null" } ], "title": "Flowoffunds", "description": "Expected origin, movement and destination of funds." }, "complianceScreening": { "anyOf": [ { "type": "string", "maxLength": 4000, "minLength": 1 }, { "type": "null" } ], "title": "Compliancescreening", "description": "How the business screens customers and transactions for compliance risk." }, "moneyServicesDescription": { "anyOf": [ { "type": "string", "maxLength": 4000, "minLength": 1 }, { "type": "null" } ], "title": "Moneyservicesdescription", "description": "Description of money-services activity, when applicable." }, "handlesCustomerFunds": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Handlescustomerfunds", "description": "Whether the business receives, holds or transfers funds for customers." }, "actingAsIntermediary": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Actingasintermediary", "description": "Whether the business acts between the payer and ultimate beneficiary." }, "sanctionedCountryOperations": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Sanctionedcountryoperations", "description": "Whether the business operates in or serves sanctioned jurisdictions." }, "highRiskActivities": { "anyOf": [ { "items": { "$ref": "#/components/schemas/HighRiskActivity" }, "type": "array" }, { "type": "null" } ], "title": "Highriskactivities", "description": "Declared higher-risk activities performed by the business." }, "depositMethods": { "anyOf": [ { "items": { "type": "string", "maxLength": 200, "minLength": 1 }, "type": "array" }, { "type": "null" } ], "title": "Depositmethods", "description": "Expected methods or regions used to fund the account." }, "contactInfo": { "anyOf": [ { "type": "string", "maxLength": 4000, "minLength": 1 }, { "type": "null" } ], "title": "Contactinfo", "description": "Additional business contact or operational information." }, "identityDocuments": { "anyOf": [ { "items": { "$ref": "#/components/schemas/PlatformKybIdentityDocument" }, "type": "array" }, { "type": "null" } ], "title": "Identitydocuments", "description": "Identification metadata issued to the business, when the jurisdiction provides it." } }, "additionalProperties": false, "type": "object", "title": "PlatformKybCompany" }, "PlatformKybCompanyView": { "properties": { "legalName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Legalname", "description": "Registered legal name of the business applicant." }, "tradeName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tradename", "description": "Trading name or DBA, when different from legalName." }, "country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Country", "description": "ISO 3166-1 alpha-2 jurisdiction of incorporation." }, "registrationNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Registrationnumber", "description": "Company registry number exactly as issued." }, "linkedinUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Linkedinurl", "description": "Public LinkedIn company URL." }, "taxId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Taxid", "description": "Business tax identifier exactly as issued." }, "phone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Phone", "description": "Business phone number in E.164 format." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email", "description": "Business contact email used for verification correspondence." }, "address": { "anyOf": [ { "$ref": "#/components/schemas/PlatformKybAddressView" }, { "type": "null" } ], "description": "Registered business address." }, "entityType": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Entitytype", "description": "Legal form of the business applicant." }, "entityTypeDescription": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Entitytypedescription", "description": "Legal-form detail when entityType is other." }, "incorporationDate": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Incorporationdate", "description": "Date the business was legally registered." }, "industry": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Industry", "description": "Free-text description of the business industry." }, "websites": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Websites", "description": "Public business websites, primary site first." }, "operatingCountries": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Operatingcountries", "description": "ISO country codes where the business operates." }, "expectedMonthlyVolumeUsd": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Expectedmonthlyvolumeusd", "description": "Expected total monthly transaction volume in USD." }, "expectedCryptoMonthlyVolumeUsd": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Expectedcryptomonthlyvolumeusd", "description": "Expected monthly digital-asset transaction volume in USD." }, "expectedMonthlyAchUsd": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Expectedmonthlyachusd", "description": "Expected monthly ACH volume in USD." }, "expectedMonthlyWireUsd": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Expectedmonthlywireusd", "description": "Expected monthly international-transfer volume in USD." }, "cryptoIndustrySubtype": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cryptoindustrysubtype", "description": "Digital-asset business subtype." }, "hasIntermediateEntityOwnership": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Hasintermediateentityownership", "description": "Whether another legal entity exists between the applicant and an ultimate owner." }, "primaryTargetMarket": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Primarytargetmarket", "description": "Primary customer segment served by the business." }, "estimatedAnnualRevenue": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Estimatedannualrevenue", "description": "Estimated annual revenue in USD." }, "hasUsBank": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Hasusbank", "description": "Whether the business holds a US payment account." }, "deniedUsBank": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Deniedusbank", "description": "Whether a US financial institution declined or closed the business account." }, "hasPep": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Haspep", "description": "Whether a politically exposed person is connected." }, "bizAdverse": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Bizadverse", "description": "Declared adverse information about the business." }, "ownersAdverse": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Ownersadverse", "description": "Declared adverse information about owners." }, "publicListed": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Publiclisted", "description": "Whether the business is publicly listed." }, "txPerMonth": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Txpermonth", "description": "Expected number of transactions per month." }, "usesBlockchain": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Usesblockchain", "description": "Whether digital assets are used in operations." }, "revenueCovers": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Revenuecovers", "description": "How much of operating expenses current revenue covers." }, "institutionalInvestors": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Institutionalinvestors", "description": "Whether institutional investors fund or own it." }, "isRegulated": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Isregulated", "description": "Whether the business is regulated or licensed." }, "regulatorCountry": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Regulatorcountry", "description": "ISO 3166-1 alpha-2 country of the authority that licenses the business." }, "regulatoryLicenseType": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Regulatorylicensetype", "description": "Type of regulatory license the business holds." }, "verifiesCustomerIdentity": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Verifiescustomeridentity", "description": "Whether the business verifies the identity of its own customers." }, "hasTransactionMonitoring": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Hastransactionmonitoring", "description": "Whether the business monitors its customers' transactions." }, "productsServices": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Productsservices", "description": "Products and services offered by the business." }, "businessDescription": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Businessdescription", "description": "Plain-language description of what the business does." }, "businessType": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Businesstype", "description": "High-level business activity category." }, "businessIndustry": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Businessindustry", "description": "Industry classification used for verification." }, "verifierRole": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Verifierrole", "description": "Role of the person providing verification information." }, "sourceOfFunds": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sourceoffunds", "description": "Primary economic source of incoming funds." }, "sourceOfFundsDetails": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sourceoffundsdetails", "description": "Additional source-of-funds explanation." }, "purposeOfFunds": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Purposeoffunds", "description": "Primary intended use of funds." }, "purposeOfFundsDetails": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Purposeoffundsdetails", "description": "Additional purpose-of-funds explanation." }, "flowOfFunds": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Flowoffunds", "description": "Expected origin, movement and destination of funds." }, "complianceScreening": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Compliancescreening", "description": "How customers and transactions are screened." }, "moneyServicesDescription": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Moneyservicesdescription", "description": "Description of money-services activity." }, "handlesCustomerFunds": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Handlescustomerfunds", "description": "Whether customer funds are handled." }, "actingAsIntermediary": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Actingasintermediary", "description": "Whether the business acts as a payment intermediary." }, "sanctionedCountryOperations": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Sanctionedcountryoperations", "description": "Whether the business operates in or serves sanctioned jurisdictions." }, "highRiskActivities": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Highriskactivities", "description": "Declared higher-risk business activities." }, "depositMethods": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Depositmethods", "description": "Expected methods or regions used to fund the account." }, "contactInfo": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Contactinfo", "description": "Additional business contact or operational information." }, "identityDocuments": { "items": { "$ref": "#/components/schemas/PlatformKybIdentityDocumentView" }, "type": "array", "title": "Identitydocuments", "description": "Structured identity-document metadata for the business." } }, "type": "object", "title": "PlatformKybCompanyView" }, "PlatformKybDocument": { "properties": { "slot": { "$ref": "#/components/schemas/DocumentType", "description": "Verification requirement this file satisfies." }, "uploadId": { "type": "string", "pattern": "^(?:doc_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Uploadid", "description": "Document id returned by POST /dapi/v1/documents.", "examples": [ "doc_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] } }, "additionalProperties": false, "type": "object", "required": [ "slot", "uploadId" ], "title": "PlatformKybDocument" }, "PlatformKybDocumentBody": { "properties": { "company": { "anyOf": [ { "$ref": "#/components/schemas/PlatformKybCompanyView" }, { "type": "null" } ], "description": "Business-applicant information." }, "people": { "items": { "$ref": "#/components/schemas/PlatformKybPersonView" }, "type": "array", "title": "People", "description": "Related individual applicants." }, "documents": { "items": { "$ref": "#/components/schemas/PlatformKybDocumentView" }, "type": "array", "title": "Documents", "description": "Business-level documents." } }, "type": "object", "title": "PlatformKybDocumentBody" }, "PlatformKybDocumentView": { "properties": { "slot": { "$ref": "#/components/schemas/DocumentType", "description": "Verification requirement this file satisfies." }, "uploadId": { "type": "string", "pattern": "^(?:doc_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Uploadid", "description": "Document identifier returned by POST /dapi/v1/documents.", "examples": [ "doc_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] } }, "type": "object", "required": [ "slot", "uploadId" ], "title": "PlatformKybDocumentView" }, "PlatformKybIdentityDocument": { "properties": { "type": { "anyOf": [ { "$ref": "#/components/schemas/FiatIdentityDocumentType" }, { "type": "null" } ], "description": "Identity document type. Upload the corresponding file separately and reference its uploadId." }, "issuingCountry": { "anyOf": [ { "$ref": "#/components/schemas/CountryCode" }, { "type": "null" } ], "description": "ISO 3166-1 alpha-2 country that issued the identity document." }, "number": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Number", "description": "Document number exactly as printed by the issuer." } }, "additionalProperties": false, "type": "object", "title": "PlatformKybIdentityDocument" }, "PlatformKybIdentityDocumentView": { "properties": { "type": { "anyOf": [ { "$ref": "#/components/schemas/FiatIdentityDocumentType" }, { "type": "null" } ], "description": "Identity document type." }, "issuingCountry": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Issuingcountry", "description": "ISO country code of the issuing authority." }, "number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Number", "description": "Document number exactly as printed by the issuer." } }, "type": "object", "title": "PlatformKybIdentityDocumentView" }, "PlatformKybPerson": { "properties": { "key": { "anyOf": [ { "type": "string", "pattern": "^[A-Za-z0-9._:\\-]{1,64}$" }, { "type": "null" } ], "title": "Key", "description": "Stable caller-chosen key used to address the same child applicant on later writes." }, "id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Id", "description": "Entity id returned by an earlier write; use either id or key." }, "firstName": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Firstname", "description": "Applicant's legal given name." }, "middleName": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Middlename", "description": "Applicant's legal middle name, if any." }, "lastName": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Lastname", "description": "Applicant's legal family name." }, "dateOfBirth": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Dateofbirth", "description": "Applicant's date of birth." }, "birthCountry": { "anyOf": [ { "$ref": "#/components/schemas/CountryCode" }, { "type": "null" } ], "description": "ISO 3166-1 alpha-2 country of birth." }, "nationalities": { "anyOf": [ { "items": { "$ref": "#/components/schemas/CountryCode" }, "type": "array" }, { "type": "null" } ], "title": "Nationalities", "description": "Applicant nationalities as ISO 3166-1 alpha-2 country codes." }, "title": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Title", "description": "Office held in the company, for example Director." }, "country": { "anyOf": [ { "$ref": "#/components/schemas/CountryCode" }, { "type": "null" } ], "description": "ISO 3166-1 alpha-2 country of residence." }, "linkedinUrl": { "anyOf": [ { "type": "string", "maxLength": 2000, "minLength": 1 }, { "type": "null" } ], "title": "Linkedinurl", "description": "Public LinkedIn profile URL used to corroborate applicant information." }, "email": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Email", "description": "Applicant email used for verification correspondence." }, "phone": { "anyOf": [ { "type": "string", "pattern": "^\\+[1-9]\\d{6,14}$" }, { "type": "null" } ], "title": "Phone", "description": "Applicant phone number in E.164 format." }, "address": { "anyOf": [ { "$ref": "#/components/schemas/PlatformKybAddress" }, { "type": "null" } ], "description": "Applicant residential address." }, "taxIdCountry": { "anyOf": [ { "$ref": "#/components/schemas/CountryCode" }, { "type": "null" } ], "description": "ISO 3166-1 alpha-2 tax-residence country; it is not inferred from nationality or address." }, "taxId": { "anyOf": [ { "type": "string", "maxLength": 200, "minLength": 1 }, { "type": "null" } ], "title": "Taxid", "description": "Personal tax identifier exactly as issued." }, "identityDocuments": { "anyOf": [ { "items": { "$ref": "#/components/schemas/PlatformKybIdentityDocument" }, "type": "array" }, { "type": "null" } ], "title": "Identitydocuments", "description": "Identity-document metadata. Files are attached through documents." }, "ownershipPercentage": { "anyOf": [ { "type": "number", "maximum": 100.0, "exclusiveMinimum": 0.0 }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" }, { "type": "null" } ], "title": "Ownershippercentage", "description": "Direct ownership percentage in the parent business." }, "hasControl": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Hascontrol", "description": "Whether this applicant exercises control." }, "isDirector": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Isdirector", "description": "Whether this applicant is a director." }, "isSigner": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Issigner", "description": "Whether this applicant is authorized to sign." }, "documents": { "anyOf": [ { "items": { "$ref": "#/components/schemas/PlatformKybDocument" }, "type": "array" }, { "type": "null" } ], "title": "Documents", "description": "Files attached to this child applicant, referenced by uploadId." } }, "additionalProperties": false, "type": "object", "title": "PlatformKybPerson" }, "PlatformKybPersonRef": { "properties": { "key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key", "description": "Caller-chosen stable key for this related applicant." }, "id": { "type": "string", "format": "uuid", "title": "Id", "description": "Entity identifier assigned to the related applicant." } }, "type": "object", "required": [ "id" ], "title": "PlatformKybPersonRef" }, "PlatformKybPersonView": { "properties": { "key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key", "description": "Caller-chosen stable key for this related applicant." }, "id": { "type": "string", "format": "uuid", "title": "Id", "description": "Entity identifier assigned to the related applicant." }, "firstName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Firstname", "description": "Applicant's legal given name." }, "middleName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Middlename", "description": "Applicant's legal middle name, if any." }, "lastName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Lastname", "description": "Applicant's legal family name." }, "dateOfBirth": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Dateofbirth", "description": "Applicant's date of birth." }, "birthCountry": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Birthcountry", "description": "ISO country code of birth." }, "nationalities": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Nationalities", "description": "Applicant nationalities as ISO country codes." }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title", "description": "Office held in the business." }, "country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Country", "description": "ISO country code of residence." }, "linkedinUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Linkedinurl", "description": "Public LinkedIn profile URL." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email", "description": "Applicant email used for verification correspondence." }, "phone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Phone", "description": "Applicant phone number in E.164 format." }, "address": { "anyOf": [ { "$ref": "#/components/schemas/PlatformKybAddressView" }, { "type": "null" } ], "description": "Applicant residential address." }, "taxIdCountry": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Taxidcountry", "description": "ISO country code of tax residence." }, "taxId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Taxid", "description": "Personal tax identifier exactly as issued." }, "identityDocuments": { "items": { "$ref": "#/components/schemas/PlatformKybIdentityDocumentView" }, "type": "array", "title": "Identitydocuments", "description": "Identity-document metadata for this applicant." }, "ownershipPercentage": { "anyOf": [ { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" }, { "type": "null" } ], "title": "Ownershippercentage", "description": "Direct ownership percentage." }, "hasControl": { "type": "boolean", "title": "Hascontrol", "description": "Whether this applicant exercises control.", "default": false }, "isDirector": { "type": "boolean", "title": "Isdirector", "description": "Whether this applicant is a director.", "default": false }, "isSigner": { "type": "boolean", "title": "Issigner", "description": "Whether this applicant is authorized to sign.", "default": false }, "documents": { "items": { "$ref": "#/components/schemas/PlatformKybDocumentView" }, "type": "array", "title": "Documents", "description": "Files attached to this related applicant." } }, "type": "object", "required": [ "id" ], "title": "PlatformKybPersonView" }, "PlatformKybResponse": { "properties": { "ready": { "type": "boolean", "title": "Ready", "description": "Whether all known requirements are satisfied and completion can be attempted." }, "missing": { "items": { "type": "string" }, "type": "array", "title": "Missing", "description": "Outstanding applicant fields or document slots." }, "status": { "$ref": "#/components/schemas/PlatformKybStatus", "description": "Current public review status.", "default": "notStarted" }, "application": { "anyOf": [ { "$ref": "#/components/schemas/PlatformKybApplicationResponse" }, { "type": "null" } ], "description": "Latest immutable submission under review." }, "document": { "$ref": "#/components/schemas/PlatformKybDocumentBody", "description": "Current editable verification document projected from the entity graph." } }, "type": "object", "required": [ "ready" ], "title": "PlatformKybResponse" }, "PlatformKybStatus": { "type": "string", "enum": [ "notStarted", "pending", "approved", "rfi", "rejected" ], "title": "PlatformKybStatus" }, "PlatformKybSubmitResponse": { "properties": { "applicationId": { "type": "string", "pattern": "^(?:kyb_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Applicationid", "description": "Immutable verification application identifier.", "examples": [ "kyb_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "status": { "$ref": "#/components/schemas/PlatformKybStatus", "description": "Current public review status." }, "attemptNo": { "type": "integer", "title": "Attemptno", "description": "One-based submission attempt number for this account." }, "pollUrl": { "type": "string", "title": "Pollurl", "description": "Relative API URL to poll for the latest review state." } }, "type": "object", "required": [ "applicationId", "status", "attemptNo", "pollUrl" ], "title": "PlatformKybSubmitResponse" }, "PlatformKybWriteRequest": { "properties": { "company": { "anyOf": [ { "$ref": "#/components/schemas/PlatformKybCompany" }, { "type": "null" } ], "description": "Business-applicant fields to merge into the editable verification submission." }, "people": { "anyOf": [ { "items": { "$ref": "#/components/schemas/PlatformKybPerson" }, "type": "array" }, { "type": "null" } ], "title": "People", "description": "Related individual applicants; omit to retain the current roster." }, "documents": { "anyOf": [ { "items": { "$ref": "#/components/schemas/PlatformKybDocument" }, "type": "array" }, { "type": "null" } ], "title": "Documents", "description": "Business-level documents previously uploaded through POST /dapi/v1/documents." } }, "additionalProperties": false, "type": "object", "title": "PlatformKybWriteRequest" }, "PlatformKybWriteResponse": { "properties": { "ready": { "type": "boolean", "title": "Ready", "description": "Whether all known requirements are satisfied and completion can be attempted." }, "missing": { "items": { "type": "string" }, "type": "array", "title": "Missing", "description": "Outstanding applicant fields or document slots." }, "people": { "items": { "$ref": "#/components/schemas/PlatformKybPersonRef" }, "type": "array", "title": "People", "description": "Stable references for related applicants." } }, "type": "object", "required": [ "ready" ], "title": "PlatformKybWriteResponse" }, "PlatformOnchainAccountInput": { "properties": { "accountType": { "type": "string", "const": "onchain", "title": "Accounttype", "description": "Selects the on-chain contact schema.", "default": "onchain" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email", "description": "Optional email associated with the destination wallet." }, "walletAddress": { "type": "string", "title": "Walletaddress", "description": "On-chain destination address." }, "chainId": { "$ref": "#/components/schemas/ChainCode", "description": "Blockchain network on which the destination exists." }, "currency": { "type": "string", "title": "Currency", "description": "Digital asset the contact accepts." } }, "additionalProperties": false, "type": "object", "required": [ "walletAddress", "chainId", "currency" ], "title": "PlatformOnchainAccountInput" }, "PlatformPayinPayerAccount": { "properties": { "method": { "$ref": "#/components/schemas/FiatPaymentType", "description": "Local payment method used by the originator." }, "requisites": { "$ref": "#/components/schemas/ContactPaymentAccount", "description": "Originator payment-account identity and account details." } }, "additionalProperties": false, "type": "object", "required": [ "method", "requisites" ], "title": "PlatformPayinPayerAccount" }, "ProofTokenRequest": { "properties": { "email": { "type": "string", "format": "email", "title": "Email", "description": "Email address of the account that owns the registered developer key." }, "publicKey": { "type": "string", "title": "Publickey", "description": "Base64 DER SubjectPublicKeyInfo for the registered P-256 developer key." }, "nonce": { "type": "integer", "title": "Nonce", "description": "Caller-generated single-use number included in the signed authentication proof." }, "requestExpiry": { "type": "integer", "title": "Requestexpiry", "description": "Unix time in milliseconds after which the signed request is refused." }, "signature": { "type": "string", "title": "Signature", "description": "Base64 DER ECDSA P-256/SHA-256 signature over the login proof message." } }, "additionalProperties": false, "type": "object", "required": [ "email", "publicKey", "nonce", "requestExpiry", "signature" ], "title": "ProofTokenRequest" }, "RailBlockerView": { "properties": { "code": { "type": "string", "title": "Code", "description": "Stable machine-readable code for this blocker." }, "field": { "type": "string", "title": "Field", "description": "Profile or verification field associated with this blocker." }, "message": { "type": "string", "title": "Message", "description": "Human-readable explanation safe to show to an end user." }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url", "description": "Page the client opens to clear this blocker, when there is one." } }, "type": "object", "required": [ "code", "field", "message" ], "title": "RailBlockerView" }, "RailListView": { "properties": { "rails": { "items": { "$ref": "#/components/schemas/RailView" }, "type": "array", "title": "Rails", "description": "Payment methods and virtual-account configurations available to the account." } }, "type": "object", "required": [ "rails" ], "title": "RailListView" }, "RailOpenRequest": { "properties": { "product": { "$ref": "#/components/schemas/RailProduct", "description": "Region product to request." } }, "additionalProperties": false, "type": "object", "required": [ "product" ], "title": "RailOpenRequest" }, "RailProduct": { "type": "string", "enum": [ "us", "swift", "eu", "uae", "uk", "br", "mx", "co", "ar", "au", "ng", "ca", "dk", "no", "pl", "tr", "il", "sa", "bo", "cl", "cr", "do", "gt", "hn", "jm", "eg", "sl", "tz", "ug", "waemu", "zm", "bd", "cn", "hk", "in", "id", "jp", "my", "pk", "ph", "kr", "th", "vn", "card" ], "title": "RailProduct" }, "RailRateView": { "properties": { "currency": { "type": "string", "title": "Currency", "description": "ISO 4217 fiat currency code for this conversion." }, "rate": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Rate", "description": "Conversion rate net of markup, when currently available." }, "fixedFee": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Fixedfee", "description": "Fixed fee component, when charged." }, "fixedFeeCurrency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Fixedfeecurrency", "description": "Currency in which the fixed fee is charged." } }, "type": "object", "required": [ "currency" ], "title": "RailRateView" }, "RailRequisitesView": { "properties": { "fields": { "$ref": "#/components/schemas/RequisiteFields-Output", "description": "Structured receiving details for this payment method." }, "holder": { "$ref": "#/components/schemas/RequisiteHolder-Output", "description": "Identity and address of the receiving account holder." }, "bankName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Bankname", "description": "Name of the receiving financial institution." }, "paymentReference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Paymentreference", "description": "Reference or memo that must accompany the account transfer." }, "state": { "$ref": "#/components/schemas/RequisiteState", "description": "Current usability state of the receiving details." } }, "type": "object", "required": [ "fields", "holder", "state" ], "title": "RailRequisitesView" }, "RailStatus": { "type": "string", "enum": [ "preparing", "active", "suspended", "closed" ], "title": "RailStatus" }, "RailView": { "properties": { "product": { "$ref": "#/components/schemas/RailProduct", "description": "Region product this receiving account serves." }, "rail": { "type": "string", "title": "Rail", "description": "Rail serving this product. Informational; address the account by product." }, "currency": { "type": "string", "title": "Currency", "description": "ISO 4217 fiat currency code received through this payment method." }, "railCurrency": { "$ref": "#/components/schemas/BankDepositCurrency", "description": "Asset credited after funds arrive through this rail." }, "method": { "$ref": "#/components/schemas/FiatPaymentType", "description": "Payment network or method represented by this rail." }, "opened": { "type": "boolean", "title": "Opened", "description": "Whether receiving details have been provisioned for this payment method." }, "status": { "anyOf": [ { "$ref": "#/components/schemas/RailStatus" }, { "type": "null" } ], "description": "Current virtual-account lifecycle status." }, "feeBps": { "type": "integer", "title": "Feebps", "description": "Variable fee in basis points; 100 basis points equals 1 percent." }, "supportedAccounts": { "items": { "$ref": "#/components/schemas/AccountKey" }, "type": "array", "title": "Supportedaccounts", "description": "Accounts this payment method can settle to." }, "destinationAccount": { "anyOf": [ { "$ref": "#/components/schemas/AccountKey" }, { "type": "null" } ], "description": "Account credited on settlement." }, "minimumDeposit": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Minimumdeposit", "description": "Minimum amount accepted through this method." }, "id": { "anyOf": [ { "type": "string", "pattern": "^(?:bnk_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "bnk_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Id", "description": "Opened virtual-account identifier." }, "requisites": { "anyOf": [ { "$ref": "#/components/schemas/RailRequisitesView" }, { "type": "null" } ], "description": "Receiving details, present after the virtual account becomes active." }, "blockers": { "items": { "$ref": "#/components/schemas/RailBlockerView" }, "type": "array", "title": "Blockers", "description": "What still stands between this request and active receiving details." } }, "type": "object", "required": [ "product", "rail", "currency", "railCurrency", "method", "opened", "feeBps", "supportedAccounts" ], "title": "RailView" }, "RateView": { "properties": { "fromCurrency": { "type": "string", "title": "Fromcurrency", "description": "Currency or token the rate converts from." }, "toCurrency": { "type": "string", "title": "Tocurrency", "description": "Currency or token the rate converts to." }, "rate": { "type": "string", "title": "Rate", "description": "How many units of toCurrency one unit of fromCurrency buys.", "example": "500.00" }, "indicative": { "type": "boolean", "title": "Indicative", "description": "Always true: this is a market reference rate. A payout or incoming transfer is priced by its own quote.", "default": true } }, "type": "object", "required": [ "fromCurrency", "toCurrency", "rate" ], "title": "RateView" }, "RefreshRequest": { "properties": { "userId": { "anyOf": [ { "type": "string", "pattern": "^(?:cl_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Userid", "description": "Account to act for; omit it to continue acting as the authenticated account." } }, "additionalProperties": false, "type": "object", "title": "RefreshRequest" }, "RequisiteAccountKind": { "type": "string", "enum": [ "checking", "savings", "deposit", "salary", "other" ], "title": "RequisiteAccountKind" }, "RequisiteFields-Input": { "properties": { "iban": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Iban", "description": "International account identifier without display separators." }, "bic": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Bic", "description": "BIC or SWIFT identifier of the destination institution." }, "accountNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Accountnumber", "description": "Domestic account number." }, "routingNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Routingnumber", "description": "Domestic routing or clearing number." }, "pixKey": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pixkey", "description": "Brazil PIX destination key." }, "pixKeyType": { "anyOf": [ { "$ref": "#/components/schemas/RequisitePixKeyType" }, { "type": "null" } ], "description": "Type of Brazil PIX key." }, "paymentKey": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Paymentkey", "description": "Local payment key required by the selected method." }, "financialInstitutionId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Financialinstitutionid", "description": "Institution identifier from the method directory." }, "branchNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Branchnumber", "description": "Destination institution branch identifier." }, "accountKind": { "anyOf": [ { "$ref": "#/components/schemas/RequisiteAccountKind" }, { "type": "null" } ], "description": "Checking, savings or equivalent classification." }, "phoneNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Phonenumber", "description": "Phone number required by the selected local method." } }, "type": "object", "title": "RequisiteFields" }, "RequisiteFields-Output": { "properties": { "iban": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Iban", "description": "International account identifier without display separators." }, "bic": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Bic", "description": "BIC or SWIFT identifier of the destination institution." }, "accountNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Accountnumber", "description": "Domestic account number." }, "routingNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Routingnumber", "description": "Domestic routing or clearing number." }, "pixKey": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pixkey", "description": "Brazil PIX destination key." }, "pixKeyType": { "anyOf": [ { "$ref": "#/components/schemas/RequisitePixKeyType" }, { "type": "null" } ], "description": "Type of Brazil PIX key." }, "paymentKey": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Paymentkey", "description": "Local payment key required by the selected method." }, "financialInstitutionId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Financialinstitutionid", "description": "Institution identifier from the method directory." }, "branchNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Branchnumber", "description": "Destination institution branch identifier." }, "accountKind": { "anyOf": [ { "$ref": "#/components/schemas/RequisiteAccountKind" }, { "type": "null" } ], "description": "Checking, savings or equivalent classification." }, "phoneNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Phonenumber", "description": "Phone number required by the selected local method." } }, "type": "object", "required": [ "iban", "bic", "accountNumber", "routingNumber", "pixKey", "pixKeyType", "paymentKey", "financialInstitutionId", "branchNumber", "accountKind", "phoneNumber" ], "title": "RequisiteFields" }, "RequisiteHolder-Input": { "properties": { "type": { "$ref": "#/components/schemas/RequisiteHolderType", "description": "Whether the account holder is an individual or a business." }, "firstName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Firstname", "description": "Legal given name of an individual holder." }, "lastName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Lastname", "description": "Legal family name of an individual holder." }, "businessName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Businessname", "description": "Registered legal name of a business holder." }, "address": { "anyOf": [ { "$ref": "#/components/schemas/UserAddress-Input" }, { "type": "null" } ], "description": "Postal address of the account holder." }, "idType": { "anyOf": [ { "$ref": "#/components/schemas/RequisiteIdType" }, { "type": "null" } ], "description": "Government identifier type for the holder." }, "idNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Idnumber", "description": "Government identifier number for the holder." }, "taxId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Taxid", "description": "Tax identifier of the holder." }, "nationality": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Nationality", "description": "ISO country code of the holder's nationality." } }, "type": "object", "required": [ "type" ], "title": "RequisiteHolder" }, "RequisiteHolder-Output": { "properties": { "type": { "$ref": "#/components/schemas/RequisiteHolderType", "description": "Whether the account holder is an individual or a business." }, "firstName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Firstname", "description": "Legal given name of an individual holder." }, "lastName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Lastname", "description": "Legal family name of an individual holder." }, "businessName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Businessname", "description": "Registered legal name of a business holder." }, "address": { "anyOf": [ { "$ref": "#/components/schemas/UserAddress-Output" }, { "type": "null" } ], "description": "Postal address of the account holder." }, "idType": { "anyOf": [ { "$ref": "#/components/schemas/RequisiteIdType" }, { "type": "null" } ], "description": "Government identifier type for the holder." }, "idNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Idnumber", "description": "Government identifier number for the holder." }, "taxId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Taxid", "description": "Tax identifier of the holder." }, "nationality": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Nationality", "description": "ISO country code of the holder's nationality." } }, "type": "object", "required": [ "type", "firstName", "lastName", "businessName", "address", "idType", "idNumber", "taxId", "nationality" ], "title": "RequisiteHolder" }, "RequisiteHolderType": { "type": "string", "enum": [ "individual", "business" ], "title": "RequisiteHolderType" }, "RequisiteIdType": { "type": "string", "enum": [ "passport", "national_id", "foreigner_id", "temporary_permit", "minor_id", "driving_license", "resident_card", "tax_id", "other" ], "title": "RequisiteIdType" }, "RequisitePixKeyType": { "type": "string", "enum": [ "phone", "email", "tax_id", "random" ], "title": "RequisitePixKeyType" }, "RequisiteState": { "type": "string", "enum": [ "active", "pending", "closed" ], "title": "RequisiteState" }, "RevenueCoverage": { "type": "string", "enum": [ "all_operating_expenses", "most", "some", "minimal" ], "title": "RevenueCoverage", "description": "Share of operating expenses covered by current business revenue." }, "SandboxCreditResponse": { "properties": { "depositId": { "type": "string", "title": "Depositid", "description": "Stable identifier for the emulated credit." }, "status": { "$ref": "#/components/schemas/PayoutStatus", "description": "Current public lifecycle status of the emulated credit." }, "token": { "$ref": "#/components/schemas/BalanceAccount", "description": "Digital asset credited after settlement." }, "amount": { "type": "string", "title": "Amount", "description": "Source amount supplied to the emulator.", "example": "500.00" }, "currency": { "type": "string", "title": "Currency", "description": "Source currency or digital asset." }, "idempotencyKey": { "type": "string", "title": "Idempotencykey", "description": "Caller-supplied key that binds retries to this credit." }, "payinId": { "anyOf": [ { "type": "string", "pattern": "^(?:pi_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "pi_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Payinid", "description": "Incoming-transfer identifier, when completing a pay-in." }, "transactionId": { "anyOf": [ { "type": "string", "pattern": "^(?:txn_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "txn_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Transactionid", "description": "Ledger transaction identifier, when created." }, "credited": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Credited", "description": "Amount delivered in the settlement asset." }, "fee": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Fee", "description": "Fee charged by the emulated route." }, "feeCurrency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feecurrency", "description": "Currency in which the fee is charged." }, "rate": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Rate", "description": "Conversion rate from source to settlement amount." }, "txHash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Txhash", "description": "On-chain transaction hash, when applicable." }, "pollUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pollurl", "description": "Relative API URL to poll while processing continues." } }, "type": "object", "required": [ "depositId", "status", "token", "amount", "currency", "idempotencyKey" ], "title": "SandboxCreditResponse" }, "SandboxDepositRequest": { "properties": { "amount": { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "title": "Amount", "description": "Test amount to credit.", "example": "500.00" }, "bankId": { "anyOf": [ { "type": "string", "pattern": "^(?:bnk_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "bnk_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Bankid", "description": "Virtual-account identifier for an emulated account transfer." }, "token": { "anyOf": [ { "$ref": "#/components/schemas/BalanceAccount" }, { "type": "null" } ], "description": "Digital asset for an emulated on-chain transfer, on Base." }, "remitter": { "anyOf": [ { "type": "string", "maxLength": 140 }, { "type": "null" } ], "title": "Remitter", "description": "Originator name reported with the credit." }, "paymentReference": { "anyOf": [ { "type": "string", "maxLength": 140 }, { "type": "null" } ], "title": "Paymentreference", "description": "Reference reported with the credit." } }, "additionalProperties": false, "type": "object", "required": [ "amount" ], "title": "SandboxDepositRequest" }, "SandboxKybStatusRequest": { "properties": { "status": { "$ref": "#/components/schemas/KybApplicationStatus", "description": "The reviewer's decision: `approved`, `rfi` or `rejected`." }, "comment": { "anyOf": [ { "type": "string", "maxLength": 2000, "minLength": 1 }, { "type": "null" } ], "title": "Comment", "description": "What the reviewer tells the client. Required for `rfi` and `rejected`." } }, "additionalProperties": false, "type": "object", "required": [ "status" ], "title": "SandboxKybStatusRequest" }, "SandboxPayinCompletionRequest": { "properties": { "remitter": { "anyOf": [ { "type": "string", "maxLength": 140 }, { "type": "null" } ], "title": "Remitter", "description": "Originator name reported with the credit." } }, "additionalProperties": false, "type": "object", "title": "SandboxPayinCompletionRequest" }, "SandboxPayoutResponse": { "properties": { "payoutId": { "type": "string", "pattern": "^(?:po_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Payoutid", "description": "Outgoing-transfer identifier updated by the emulator.", "examples": [ "po_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "status": { "$ref": "#/components/schemas/PayoutStatus", "description": "Current public lifecycle status of the outgoing transfer." }, "amount": { "type": "string", "title": "Amount", "description": "Transfer amount.", "example": "500.00" }, "currency": { "type": "string", "title": "Currency", "description": "Transfer currency or digital asset." }, "idempotencyKey": { "type": "string", "title": "Idempotencykey", "description": "Caller-supplied key that binds retries to this update." }, "transactionId": { "anyOf": [ { "type": "string", "pattern": "^(?:txn_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "txn_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Transactionid", "description": "Ledger transaction identifier, when created." }, "txHash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Txhash", "description": "Settlement transaction hash, when applicable." }, "refundTxHash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Refundtxhash", "description": "Refund transaction hash, when applicable." } }, "type": "object", "required": [ "payoutId", "status", "amount", "currency", "idempotencyKey" ], "title": "SandboxPayoutResponse" }, "SandboxPayoutStatusRequest": { "properties": { "status": { "$ref": "#/components/schemas/PayoutStatus", "description": "Next externally reportable lifecycle status for the emulated transfer." } }, "additionalProperties": false, "type": "object", "required": [ "status" ], "title": "SandboxPayoutStatusRequest" }, "SandboxTokenBalanceResponse": { "properties": { "token": { "$ref": "#/components/schemas/BalanceAccount", "description": "Supported sandbox digital asset." }, "tokenAddress": { "type": "string", "title": "Tokenaddress", "description": "Sandbox token contract address." }, "balance": { "type": "string", "title": "Balance", "description": "Amount available for emulated credits.", "example": "500.00" } }, "type": "object", "required": [ "token", "tokenAddress", "balance" ], "title": "SandboxTokenBalanceResponse" }, "SandboxTreasuryResponse": { "properties": { "chainId": { "type": "integer", "title": "Chainid", "description": "Numeric network identifier used by the sandbox treasury." }, "address": { "type": "string", "title": "Address", "description": "Sandbox treasury address." }, "gasBalance": { "type": "string", "title": "Gasbalance", "description": "Native-asset balance available for transaction fees.", "example": "500.00" }, "maxCredit": { "type": "string", "title": "Maxcredit", "description": "Maximum test amount allowed in one credit.", "example": "500.00" }, "balances": { "items": { "$ref": "#/components/schemas/SandboxTokenBalanceResponse" }, "type": "array", "title": "Balances", "description": "Settlement assets available to the emulator." } }, "type": "object", "required": [ "chainId", "address", "gasBalance", "maxCredit", "balances" ], "title": "SandboxTreasuryResponse" }, "SessionResponse": { "properties": { "accessToken": { "type": "string", "title": "Accesstoken", "description": "Short-lived bearer token used to authorize API requests." }, "expiresIn": { "type": "integer", "title": "Expiresin", "description": "Number of seconds until the access token expires." }, "userId": { "type": "string", "pattern": "^(?:cl_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Userid", "description": "Account selected for the issued session.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] } }, "type": "object", "required": [ "accessToken", "expiresIn", "userId" ], "title": "SessionResponse" }, "SwapCreateRequest": { "properties": { "sourceAccount": { "$ref": "#/components/schemas/AccountKey", "description": "Account the money leaves." }, "destinationAccount": { "$ref": "#/components/schemas/AccountKey", "description": "Account the money lands on." }, "amount": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Amount", "description": "Exact amount to debit from the source account." }, "amountTo": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Amountto", "description": "Exact amount the destination account should receive." }, "publicKey": { "type": "string", "maxLength": 512, "minLength": 1, "title": "Publickey", "description": "Base64 DER SubjectPublicKeyInfo for the registered P-256 developer key." } }, "additionalProperties": false, "type": "object", "required": [ "sourceAccount", "destinationAccount", "publicKey" ], "title": "SwapCreateRequest" }, "SwapFailureView": { "properties": { "code": { "type": "string", "title": "Code", "description": "Stable machine-readable code for the swap failure." } }, "type": "object", "required": [ "code" ], "title": "SwapFailureView" }, "SwapPreviewRequest": { "properties": { "sourceAccount": { "$ref": "#/components/schemas/AccountKey", "description": "Account the money leaves." }, "destinationAccount": { "$ref": "#/components/schemas/AccountKey", "description": "Account the money lands on." }, "amount": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Amount", "description": "Exact amount to debit from the source account." }, "amountTo": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$" } ], "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Amountto", "description": "Exact amount the destination account should receive." } }, "additionalProperties": false, "type": "object", "required": [ "sourceAccount", "destinationAccount" ], "title": "SwapPreviewRequest" }, "SwapPreviewResponse": { "properties": { "sourceAccount": { "$ref": "#/components/schemas/AccountKey", "description": "Account the money would leave." }, "destinationAccount": { "$ref": "#/components/schemas/AccountKey", "description": "Account the money would land on." }, "quote": { "$ref": "#/components/schemas/SwapQuoteView", "description": "Best price available for this move right now." } }, "type": "object", "required": [ "sourceAccount", "destinationAccount", "quote" ], "title": "SwapPreviewResponse" }, "SwapQuoteView": { "properties": { "fromAmount": { "type": "string", "title": "Fromamount", "description": "Amount debited from the source account.", "example": "500.00" }, "fromCurrency": { "type": "string", "title": "Fromcurrency", "description": "Currency or digital asset debited." }, "toAmount": { "type": "string", "title": "Toamount", "description": "Amount credited to the destination account.", "example": "500.00" }, "toCurrency": { "type": "string", "title": "Tocurrency", "description": "Currency or digital asset credited." }, "rate": { "type": "string", "title": "Rate", "description": "Conversion rate from the source amount to the destination amount.", "example": "500.00" }, "feeAmount": { "type": "string", "title": "Feeamount", "description": "Total fee charged in feeCurrency.", "example": "500.00" }, "feeCurrency": { "type": "string", "title": "Feecurrency", "description": "Currency in which the fee is charged." }, "minimumToAmount": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Minimumtoamount", "description": "Worst-case amount credited when the route carries slippage." }, "estimated": { "type": "boolean", "title": "Estimated", "description": "Whether the delivered amount is an estimate settled later, rather than a locked price.", "default": false }, "etaHours": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Etahours", "description": "Expected hours until the destination account is credited." }, "expiresAt": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Expiresat", "description": "UTC timestamp after which this price is no longer honored." } }, "type": "object", "required": [ "fromAmount", "fromCurrency", "toAmount", "toCurrency", "rate", "feeAmount", "feeCurrency" ], "title": "SwapQuoteView" }, "SwapReadResponse": { "properties": { "id": { "type": "string", "pattern": "^(?:swp_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Id", "description": "Stable public identifier for this swap.", "examples": [ "swp_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "status": { "$ref": "#/components/schemas/SwapState", "description": "Current public lifecycle status of the swap." }, "sourceAccount": { "anyOf": [ { "$ref": "#/components/schemas/AccountKey" }, { "type": "null" } ], "description": "Account the money leaves." }, "destinationAccount": { "anyOf": [ { "$ref": "#/components/schemas/AccountKey" }, { "type": "null" } ], "description": "Account the money lands on." }, "quote": { "anyOf": [ { "$ref": "#/components/schemas/SwapQuoteView" }, { "type": "null" } ], "description": "Terms fixed when the swap was created." }, "transactionHash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Transactionhash", "description": "On-chain transaction hash, when broadcast." }, "transactionId": { "anyOf": [ { "type": "string", "pattern": "^(?:txn_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "txn_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Transactionid", "description": "Ledger transaction identifier, when projected." }, "createdAt": { "type": "string", "format": "date-time", "title": "Createdat", "description": "UTC timestamp when the swap was created." }, "settledAt": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Settledat", "description": "UTC timestamp when settlement completed." }, "failure": { "anyOf": [ { "$ref": "#/components/schemas/SwapFailureView" }, { "type": "null" } ], "description": "Terminal or actionable failure details." } }, "type": "object", "required": [ "id", "status", "createdAt" ], "title": "SwapReadResponse" }, "SwapReceiptResponse": { "properties": { "id": { "type": "string", "pattern": "^(?:swp_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Id", "description": "Stable public identifier for this swap.", "examples": [ "swp_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "status": { "$ref": "#/components/schemas/SwapState", "description": "Current public lifecycle status of the swap." }, "transactionHash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Transactionhash", "description": "On-chain transaction hash, when broadcast." }, "pollUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pollurl", "description": "Relative API URL to poll while processing continues." }, "failure": { "anyOf": [ { "$ref": "#/components/schemas/SwapFailureView" }, { "type": "null" } ], "description": "Terminal or actionable failure details." } }, "type": "object", "required": [ "id", "status" ], "title": "SwapReceiptResponse" }, "SwapResponse": { "properties": { "id": { "type": "string", "pattern": "^(?:swp_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Id", "description": "Stable public identifier for this swap.", "examples": [ "swp_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, "status": { "$ref": "#/components/schemas/SwapState", "description": "Current public lifecycle status of the swap." }, "idempotencyKey": { "type": "string", "title": "Idempotencykey", "description": "Caller-supplied key that makes an identical retry return this result." }, "sourceAccount": { "$ref": "#/components/schemas/AccountKey", "description": "Account the money leaves." }, "destinationAccount": { "$ref": "#/components/schemas/AccountKey", "description": "Account the money lands on." }, "quote": { "$ref": "#/components/schemas/SwapQuoteView", "description": "Price, fee and conversion terms fixed for this swap." }, "authorization": { "$ref": "#/components/schemas/AuthorizationKind", "description": "Whether the approval authorizes a balance debit or a signature over the swap's terms." }, "approval": { "$ref": "#/components/schemas/ApprovalView", "description": "Authorization to sign with the developer key before settlement." }, "debit": { "anyOf": [ { "$ref": "#/components/schemas/DebitView" }, { "type": "null" } ], "description": "Exact on-chain debit used to fund this swap." }, "intent": { "anyOf": [ { "$ref": "#/components/schemas/IntentView" }, { "type": "null" } ], "description": "Terms authorized by the signature, when this swap is not funded by a debit." } }, "type": "object", "required": [ "id", "status", "idempotencyKey", "sourceAccount", "destinationAccount", "quote", "authorization", "approval" ], "title": "SwapResponse" }, "SwapState": { "type": "string", "enum": [ "awaitingSignature", "submitted", "settled", "failed" ], "title": "SwapState" }, "TokenResponse": { "properties": { "accessToken": { "type": "string", "title": "Accesstoken", "description": "Short-lived bearer token used to authorize API requests." }, "refreshToken": { "type": "string", "title": "Refreshtoken", "description": "Long-lived device-bound token used only at POST /dapi/v1/auth/refresh." }, "expiresIn": { "type": "integer", "title": "Expiresin", "description": "Number of seconds until the access token expires." }, "userId": { "type": "string", "pattern": "^(?:cl_)?[A-Za-z0-9._:\\-]{1,216}$", "title": "Userid", "description": "Account selected for the issued session.", "examples": [ "cl_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] } }, "type": "object", "required": [ "accessToken", "refreshToken", "expiresIn", "userId" ], "title": "TokenResponse" }, "TokenView": { "properties": { "symbol": { "type": "string", "title": "Symbol", "description": "Token symbol, as contacts and payouts name it." }, "decimals": { "type": "integer", "title": "Decimals", "description": "On-chain decimals of the token's smallest unit." }, "address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address", "description": "ERC-20 contract address; absent for a chain's gas coin." }, "native": { "type": "boolean", "title": "Native", "description": "Whether this is the chain's gas coin." }, "account": { "anyOf": [ { "$ref": "#/components/schemas/AccountKey" }, { "type": "null" } ], "description": "The account this token holds, when a client can hold a balance in it." } }, "type": "object", "required": [ "symbol", "decimals", "native" ], "title": "TokenView" }, "TransactionDetailView": { "properties": { "id": { "anyOf": [ { "type": "string", "pattern": "^(?:txn_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "txn_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Id", "description": "Stable public identifier for this transaction." }, "type": { "type": "string", "title": "Type", "description": "Public transaction type." }, "status": { "$ref": "#/components/schemas/TransactionStatus", "description": "Current transaction lifecycle status." }, "isIncome": { "type": "boolean", "title": "Isincome", "description": "Whether this transaction increases the selected account's balance." }, "from": { "anyOf": [ { "$ref": "#/components/schemas/TransactionSideView" }, { "type": "null" } ], "description": "Source side of the transaction." }, "to": { "anyOf": [ { "$ref": "#/components/schemas/TransactionSideView" }, { "type": "null" } ], "description": "Destination side of the transaction." }, "fee": { "anyOf": [ { "$ref": "#/components/schemas/TransactionSideView" }, { "type": "null" } ], "description": "Fee side of the transaction, when charged." }, "account": { "anyOf": [ { "$ref": "#/components/schemas/AccountKey" }, { "type": "null" } ], "description": "The client's account this transaction moved, e.g. `USDC_ARB` for USDC on Arbitrum." }, "counterparty": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Counterparty", "description": "Human-readable counterparty name." }, "paymentReference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Paymentreference", "description": "Reference or memo associated with the transfer." }, "remitter": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Remitter", "description": "Originator information reported by the payment network." }, "txHash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Txhash", "description": "On-chain transaction hash associated with this ledger entry." }, "tag": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tag", "description": "Public transaction classification tag." }, "hasAttachments": { "type": "boolean", "title": "Hasattachments", "description": "Whether supporting documents are attached.", "default": false }, "createdAt": { "type": "string", "format": "date-time", "title": "Createdat", "description": "UTC timestamp when the transaction was created." }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description", "description": "Human-readable description supplied for this transaction." }, "explorerUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Explorerurl", "description": "Public blockchain-explorer URL for the transaction." }, "traceNumber": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tracenumber", "description": "Account-transfer or payment-network trace identifier." }, "attachmentIds": { "items": { "type": "string" }, "type": "array", "title": "Attachmentids", "description": "Supporting document identifiers." } }, "type": "object", "required": [ "type", "status", "isIncome", "createdAt" ], "title": "TransactionDetailView" }, "TransactionSideView": { "properties": { "amount": { "type": "string", "title": "Amount", "description": "Amount on this side of the transaction.", "example": "500.00" }, "currency": { "type": "string", "title": "Currency", "description": "ISO 4217 fiat code or supported digital-asset symbol." }, "usdRate": { "anyOf": [ { "type": "string", "example": "500.00" }, { "type": "null" } ], "title": "Usdrate", "description": "Indicative conversion rate from this asset into USD." } }, "type": "object", "required": [ "amount", "currency" ], "title": "TransactionSideView" }, "TransactionStatus": { "type": "string", "enum": [ "pending", "rfi", "success", "failed", "refunded" ], "title": "TransactionStatus" }, "TransactionSummaryView": { "properties": { "inflowUsd": { "type": "string", "title": "Inflowusd", "description": "Settled incoming value converted to USD for the selected period.", "example": "500.00" }, "inflowCount": { "type": "integer", "title": "Inflowcount", "description": "Number of settled incoming transactions in the selected period." }, "outflowUsd": { "type": "string", "title": "Outflowusd", "description": "Settled outgoing value converted to USD for the selected period.", "example": "500.00" }, "outflowCount": { "type": "integer", "title": "Outflowcount", "description": "Number of settled outgoing transactions in the selected period." }, "pendingInflowUsd": { "type": "string", "title": "Pendinginflowusd", "description": "Pending incoming value converted to USD.", "example": "500.00" }, "pendingInflowCount": { "type": "integer", "title": "Pendinginflowcount", "description": "Number of pending incoming transactions." }, "pendingOutflowUsd": { "type": "string", "title": "Pendingoutflowusd", "description": "Pending outgoing value converted to USD.", "example": "500.00" }, "pendingOutflowCount": { "type": "integer", "title": "Pendingoutflowcount", "description": "Number of pending outgoing transactions." } }, "type": "object", "required": [ "inflowUsd", "inflowCount", "outflowUsd", "outflowCount", "pendingInflowUsd", "pendingInflowCount", "pendingOutflowUsd", "pendingOutflowCount" ], "title": "TransactionSummaryView" }, "TransactionView": { "properties": { "id": { "anyOf": [ { "type": "string", "pattern": "^(?:txn_)?[A-Za-z0-9._:\\-]{1,216}$", "examples": [ "txn_9f2c1ab84d7e4f1fa3c65b0e7d9a2c41" ] }, { "type": "null" } ], "title": "Id", "description": "Stable public identifier for this transaction." }, "type": { "type": "string", "title": "Type", "description": "Public transaction type." }, "status": { "$ref": "#/components/schemas/TransactionStatus", "description": "Current transaction lifecycle status." }, "isIncome": { "type": "boolean", "title": "Isincome", "description": "Whether this transaction increases the selected account's balance." }, "from": { "anyOf": [ { "$ref": "#/components/schemas/TransactionSideView" }, { "type": "null" } ], "description": "Source side of the transaction." }, "to": { "anyOf": [ { "$ref": "#/components/schemas/TransactionSideView" }, { "type": "null" } ], "description": "Destination side of the transaction." }, "fee": { "anyOf": [ { "$ref": "#/components/schemas/TransactionSideView" }, { "type": "null" } ], "description": "Fee side of the transaction, when charged." }, "account": { "anyOf": [ { "$ref": "#/components/schemas/AccountKey" }, { "type": "null" } ], "description": "The client's account this transaction moved, e.g. `USDC_ARB` for USDC on Arbitrum." }, "counterparty": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Counterparty", "description": "Human-readable counterparty name." }, "paymentReference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Paymentreference", "description": "Reference or memo associated with the transfer." }, "remitter": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Remitter", "description": "Originator information reported by the payment network." }, "txHash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Txhash", "description": "On-chain transaction hash associated with this ledger entry." }, "tag": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tag", "description": "Public transaction classification tag." }, "hasAttachments": { "type": "boolean", "title": "Hasattachments", "description": "Whether supporting documents are attached.", "default": false }, "createdAt": { "type": "string", "format": "date-time", "title": "Createdat", "description": "UTC timestamp when the transaction was created." } }, "type": "object", "required": [ "type", "status", "isIncome", "createdAt" ], "title": "TransactionView" }, "TransferPolicyResponse": { "properties": { "allowFiat": { "type": "boolean", "title": "Allowfiat", "description": "Allow account-initiated fiat payouts, subject to freeze and recovery controls." }, "allowCrypto": { "type": "boolean", "title": "Allowcrypto", "description": "Allow account-initiated on-chain transfers, including transfers to another platform account, subject to freeze and recovery controls." }, "allowThirdParty": { "type": "boolean", "title": "Allowthirdparty", "description": "Allow fiat or on-chain payouts to an external contact. Email and escrow payments within the same platform group use narrower controls." }, "allowEscrowThirdParty": { "type": "boolean", "title": "Allowescrowthirdparty", "description": "Allow escrow to another platform account. This control is independent from allowThirdParty; same-group escrow also requires allowPartnerGroupPayments." }, "allowSwap": { "type": "boolean", "title": "Allowswap", "description": "Allow balance swaps, subject to freeze and recovery controls." }, "allowPartnerGroupPayments": { "type": "boolean", "title": "Allowpartnergrouppayments", "description": "Allow email and escrow payments between accounts in the same platform group. Email payments also require allowCrypto; escrow also requires allowEscrowThirdParty." }, "dualApproval": { "type": "boolean", "title": "Dualapproval", "description": "Require a separately approved transfer request before payment co-signing." }, "isFrozen": { "type": "boolean", "title": "Isfrozen", "description": "Block every new money movement, overriding every allow flag." }, "recoveryModeActivated": { "type": "boolean", "title": "Recoverymodeactivated", "description": "Restrict money movement to first-party fiat payouts whose Contact belongs to this account and whose account-holder name matches the account name." } }, "type": "object", "required": [ "allowFiat", "allowCrypto", "allowThirdParty", "allowEscrowThirdParty", "allowSwap", "allowPartnerGroupPayments", "dualApproval", "isFrozen", "recoveryModeActivated" ], "title": "TransferPolicyResponse", "description": "Effective account-level money-movement controls.\n\n``isFrozen`` overrides every permission. When the account is not frozen,\n``recoveryModeActivated`` restricts it to first-party fiat withdrawals.\nThe remaining flags are then evaluated for the requested operation." }, "UserAddress-Input": { "properties": { "streetAddress": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Streetaddress", "description": "Street name and building number." }, "addressLine2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Addressline2", "description": "Optional apartment, suite or unit." }, "city": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "City", "description": "City or locality." }, "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "State", "description": "State, province or administrative area." }, "country": { "anyOf": [ { "$ref": "#/components/schemas/CountryCode" }, { "type": "null" } ], "description": "ISO 3166-1 alpha-2 country code." }, "zip": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Zip", "description": "Postal or ZIP code." } }, "type": "object", "title": "UserAddress", "description": "Provider-neutral postal address used across domain and API schemas." }, "UserAddress-Output": { "properties": { "streetAddress": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Streetaddress", "description": "Street name and building number." }, "addressLine2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Addressline2", "description": "Optional apartment, suite or unit." }, "city": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "City", "description": "City or locality." }, "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "State", "description": "State, province or administrative area." }, "country": { "anyOf": [ { "$ref": "#/components/schemas/CountryCode" }, { "type": "null" } ], "description": "ISO 3166-1 alpha-2 country code." }, "zip": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Zip", "description": "Postal or ZIP code." } }, "type": "object", "required": [ "streetAddress", "addressLine2", "city", "state", "country", "zip" ], "title": "UserAddress", "description": "Provider-neutral postal address used across domain and API schemas." } }, "securitySchemes": { "HTTPBearer": { "type": "http", "scheme": "bearer" } } }, "tags": [ { "name": "auth", "description": "Authenticate an integration and issue short-lived account sessions." }, { "name": "accounts", "description": "Create and manage business or individual customer accounts." }, { "name": "verification", "description": "Collect business-applicant and related-individual information, inspect requirements, and complete a verification submission for review." }, { "name": "documents", "description": "Upload verification and payment evidence for later reference by id." }, { "name": "virtual accounts", "description": "Discover payment methods and create persistent receiving account details." }, { "name": "transfers", "description": "Quote, create, authorize and track incoming or outgoing transfers." }, { "name": "contacts", "description": "Create saved contacts and inspect their available payment channels." }, { "name": "transactions", "description": "Read and export the account ledger." }, { "name": "escrow", "description": "Create, authorize and reconcile on-chain escrow agreements." }, { "name": "sandbox", "description": "Emulate funding and lifecycle events in the sandbox environment." } ] }