Virtual Accounts

Create Virtual Account

Creates a virtual account that automatically converts inbound USD deposits (ACH, wire, RTP) into stablecoins sent to the linked wallet. Fees on these automated payins depend on the deposit amount: deposits below $100.00 accrue the BlindPay fee to your billing cycle (charged at the end of the month via the payin's billing_fee_amount), while deposits of $100.00 or more are charged at the time of the transaction (deducted from the delivered amount via transaction_fee_amount). Every deposit is processed regardless of size and always delivers at least $0.01 on-chain; a partner fee (optional partner_fee_id) is collected only from what remains after that.

post/v1/instances/{instance_id}/customers/{customer_id}/virtual-accounts

Path parameters

instance_idstring required
Example:in_000000000000
customer_idstring required

Customer ID

Example:re_000000000000

Headers

Idempotency-Keystring

Optional key to safely retry this request without performing the action twice. Retrying with the same key and an identical body replays the original response; reusing a key with a different body returns an error. Keys are kept for 24 hours.

Example:a1b2c3d4-e5f6-7890-abcd-ef1234567890

Request body

banking_partner'jpmorgan' | 'citi' | 'hsbc' | 'cfsb' | 'portage' required
token'USDC' | 'USDT' | 'USDB' required
blockchain_wallet_idstring required
sole_proprietor_doc_type'master_service_agreement' | 'salary_slip' | 'bank_statement' nullable
sole_proprietor_doc_filestring uri nullable
partner_fee_idstring nullable

Example request

{
  "banking_partner": "jpmorgan",
  "token": "USDC",
  "sole_proprietor_doc_type": "master_service_agreement",
  "sole_proprietor_doc_file": "https://example.com/document.pdf",
  "partner_fee_id": "pf_000000000000"
}

Response

Create virtual account

idstring required
banking_partner'jpmorgan' | 'citi' | 'hsbc' | 'cfsb' | 'portage' nullable required
kyc_status'verifying' | 'approved' | 'rejected' | 'deprecated' | 'pending_review' | 'awaiting_contract' | 'compliance_request' | 'approved_rfi' nullable required
token'USDC' | 'USDT' | 'USDB' required
blockchain_wallet_idstring nullable
partner_fee_idstring nullable
customer_idstring nullable

Example response

{
  "id": "va_000000000000",
  "banking_partner": "jpmorgan",
  "kyc_status": "approved",
  "us": {
    "ach": {
      "routing_number": "123456789",
      "account_number": "123456789"
    },
    "wire": {
      "routing_number": "123456789",
      "account_number": "123456789"
    },
    "rtp": {
      "routing_number": "123456789",
      "account_number": "123456789"
    },
    "swift_bic_code": "TCCLGB3L",
    "swift_account_number": "GB50TCCL04140449730892",
    "account_type": "Business checking",
    "beneficiary": {
      "name": "Customer Name",
      "address_line_1": "8 The Green, #19364",
      "address_line_2": "Dover, DE 19901"
    },
    "receiving_bank": {
      "name": "JPMorgan Chase",
      "address_line_1": "270 Park Ave",
      "address_line_2": "New York, NY, 10017-2070"
    },
    "swift_receiving_bank": {
      "name": "JPMorgan Chase",
      "address_line_1": "270 Park Ave",
      "address_line_2": "New York, NY, 10017-2070"
    },
    "swift_intermediary_bank": {
      "name": "JP Morgan Chase NA",
      "swift_code_bic": "CHASUS33",
      "routing_number": "021000021",
      "address_line_1": "270 Park Ave",
      "address_line_2": "New York, NY, 10017-2070"
    }
  },
  "token": "USDC",
  "blockchain_wallet_id": "bw_000000000000",
  "blockchain_wallet": {
    "network": "polygon",
    "address": "0xDD6a3aD0949396e57C7738ba8FC1A46A5a1C372C"
  },
  "partner_fee_id": "pf_000000000000",
  "customer_id": "re_000000000000"
}

Changes

No recorded changes to this endpoint across all 5 revisions of this API.