1. Accounts
Artha All Module Api's
  • Introduction
  • Authentication
  • KYC/KYB Requirements
  • API Setup Guide
  • Products
    • List Products
      GET
    • Get Product
      GET
    • Get Customer Product Status
      GET
  • Customers
    • Create Customer
      POST
    • List Customers
      GET
    • Get Customer
      GET
    • Submit Applicant (KYC/KYB)
      POST
    • Create Onboarding Session
      POST
  • Wallets
    • Beneficiary
      • Create Crypto Beneficiary
      • Update Crypto Beneficiary
      • List Crypto Withdraw Beneficiaries
    • Create Wallet
      POST
    • Get Wallet Address
      GET
    • Get Customer Balances
      GET
    • List Wallets
      GET
    • List Withdrawals
      GET
    • List Withdrawal Networks
      GET
    • Preview Withdrawal Summary
      POST
    • Create Crypto Withdrawal
      POST
  • Cards
    • Issuance
      • Issue Card
      • List Cards
      • List Customer Cards
      • Get Card Details
      • Get Sensitive Card Details
    • Funding
      • Top Up Card
      • Get Card Balance
      • Get Top-Up Status
      • List Top-Up History
    • Operations
      • Resend Activation Code
      • Activate Card
      • Set Card PIN
      • Change Card PIN
      • Update Card Limits
      • Freeze Card
      • Unfreeze Card
      • Replace Card
      • Cancel Card
      • Get Card Limits
      • Show Card PIN Details
      • Get PIN View Iframe URL
      • Get PIN Change Iframe URL
      • Get PIN Set Iframe URL
      • Get Card View Iframe URL
      • Show Card PIN
  • Payees
    • Create a payee for a customer.
    • List a customer's payees.
    • Update a payee.
    • Retrieve a payee by id.
    • Look up an existing payee.
    • List the currencies a payee can be created in.
    • List the accepted payment purpose codes for a payee.
    • List the countries a payee can be created in.
    • List currency/country pairings for payees.
    • List the accepted beneficiary relationship codes.
  • Payments
    • Onboarding
      • List the customer's payout-currency configuration sections.
      • Enable a payout-currency section for the customer.
      • Get the customer's terms-of-service acceptance status.
      • Enable or disable a payout-currency section.
    • Quote
      • List the currencies a beneficiary can be paid in under a product.
      • List the payout rails available for a product and beneficiary.
      • Create an FX quote giving the rate and fee for a cross-currency payout.
    • Order
      • Submit a payout order to send money to a beneficiary.
      • Retrieve the on-chain address to fund an order.
      • Retrieve the status and settlement detail of a payout order.
    • Lookups
      • List the accepted payment purpose codes for a payout.
      • List the accepted source-of-funds codes for a payout.
      • List the document types accepted on a payout order.
  • Banks
    • Accounts
      • Create Bank Account
        POST
      • Get Account Details
        GET
      • Get Account Issuance Status
        GET
    • Withdraw
      • Create Withdrawal Quote
      • List Withdrawal Purposes
      • Get Payment Schemes
      • Execute Withdrawal
  • Exchange
    • Quote
      • Get Exchange Rate
      • Create Price Quote
    • Order
      • Place Exchange Order
  • Transactions
    • List Transactions
    • Get Transaction Details
  • Utilities
    • List Currencies
    • List Countries
    • Get Fee Schedule
    • List Product Occupations
    • List Product Industry Codes
    • Upload File
  • Webhook's
    • Wallets Webhooks
    • Banks Webhooks
    • Payments Webhooks
    • Exchange Webhooks
    • Card Webhooks
  1. Accounts

Create Bank Account

POST
/api/v1/accountissuance/accounts
Creates a new bank account for an existing customer against a specific product.
Prerequisites
The customer must already exist and have an approved KYC status.
The product.id must reference a product enabled for your platform (contact support to enable products).
If the account should sweep to a crypto settlement address, supply the optional crypto block.
⚠️ Important
Account creation is asynchronous. A 200 response means the request was accepted — the account starts in pending and is provisioned in the background.
Poll GET /api/v1/accountissuance/{accountId}/status until the status becomes active before attempting withdrawals.
Creating a second account for the same customer + product pair returns 409 CONFLICT.
Status values
StatusMeaning
pendingBeing provisioned at the partner bank
approvedLive and usable
rejectedFailed compliance / bank checks
Related endpoints: GET /api/v1/accountissuance/account/{accountId} · GET /api/v1/accountissuance/{accountId}/status

⚠️ Required Fields
FieldTypeDescriptionConstraints
customerobjectWrapper for the customer reference-
customer.idstring (uuid)ID of the KYC-approved customer the account belongs toRequired
productobjectWrapper for the product reference-
product.idstring (uuid)ID of the account product to issue (defines currency, scheme, bank partner)Required
Optional Fields
FieldTypeDescriptionConstraints
cryptoobjectCrypto settlement details — include only for crypto-linked accountsNullable
crypto.assetstringCrypto asset ticker (e.g. USDC, USDT)Max: 50 · Nullable
crypto.networkstringBlockchain network (e.g. ethereum, tron, polygon)Max: 50 · Nullable
crypto.addressstringOn-chain settlement addressMax: 256 · Nullable
📤 Response Fields
FieldTypeNullableDescription
data.idstring (uuid)NoThe new account's ID — store this; you need it for status polling and withdrawals
data.customerIdstring (uuid)NoCustomer the account belongs to
data.productIdstring (uuid)NoProduct the account was issued against
data.statusstringNopending | active | rejected
data.currencystringNoISO-4217 currency of the account (from the product)
data.ibanstringYesIBAN — populated once the account is active
data.accountNumberstringYesLocal account number — populated once active
data.cryptoobjectYesEcho of the crypto block, if supplied
data.createdAtstring (date-time)NoUTC creation timestamp

Request

Header Params

Body Params application/json-patch+jsonRequired

Examples

Responses

🟢200
application/json
Account issuance request accepted. The account is provisioned asynchronously — poll the status endpoint.
Bodyapplication/json

🟠401
🟠404
🟠409
🟠422
Request Request Example
Shell
JavaScript
Java
Swift
curl --location '/api/v1/accountissuance/accounts' \
--header 'X-API-Key: ak_live_8f3a9b2c1d4e5f6a7b8c' \
--header 'X-Signature: q2h8Zx0kPz5mVw7Yb3Nc1Rt6Ue9Ia4Od2Sf8Gk0Jl4=' \
--header 'X-Timestamp: 1754812800' \
--header 'X-Nonce: f47ac10b-58cc-4372-a567-0e02b2c3d479' \
--header 'X-Body-Hash: n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg=' \
--header 'Content-Type: application/json-patch+json' \
--data '{
  "customer": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  },
  "product": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  },
  "crypto": {
    "asset": "string",
    "network": "string",
    "address": "string"
  }
}'
Response Response Example
200 - Success
{
    "data": {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "customerId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "productId": "1b671a64-40d5-491e-99b0-da01ff1f3341",
        "status": "pending",
        "currency": "EUR",
        "iban": null,
        "accountNumber": null,
        "crypto": {
            "asset": "USDC",
            "network": "ethereum",
            "address": "0x8ba1f109551bD432803012645Ac136ddd64DBA72"
        },
        "createdAt": "2026-08-10T09:15:00Z"
    }
}
Modified at 2026-09-23 05:44:13
Previous
List the document types accepted on a payout order.
Next
Get Account Details
Built with