POST
/
api
/
platform
/
accounts
/
add-account
Create Bank
curl --request POST \
  --url https://api.sandbox.paywint.com/api/platform/accounts/add-account \
  --header 'Content-Type: application/json' \
  --header 'X-Platform-ID: <x-platform-id>' \
  --header 'X-Signature: <x-signature>' \
  --data '{
  "user_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "account_holder_name": "John D. Doe",
  "bank_name": "Bank of America",
  "nick_name": "Business Wallet Account",
  "account_number": "1234567890",
  "routing_number": "021000021",
  "bank_address": "123 Bank Street",
  "city": "New York",
  "state": "NY",
  "zip": "10001",
  "country": "US",
  "account_type": "CHECKING",
  "is_default": true
}'
{
  "success": true,
  "message": "Operation completed.",
  "data": {
    "id": "5bf6f0d6-0677-4607-9541-68ef7faecbdb",
    "bank_nick_name": "Personal Checking",
    "account_number": "6789",
    "account_balance": 1000,
    "routing_number": "011000015",
    "account_type": "CHECKING",
    "bank_name": "First National Bank",
    "account_holder_name": "John Doe",
    "verification_status": "not_applied",
    "verification_type": "MD",
    "is_verified": false,
    "is_default": true,
    "created_at": "2025-06-16T12:03:48.726826Z"
  },
  "queryGeneratedTime": 1718006400
}

Headers

X-Platform-ID
string<uuid>
required

Unique platform identifier (UUID). You receive this during onboarding. Must be sent with every API request.

X-Signature
string
required

HMAC-SHA256 request signature for authentication. Use your platform secret key to compute it as: METHOD + PATH + QUERY + BODY_HASH.

Body

application/json
user_id
string<uuid>
required

UUID of the user to whom this bank account belongs

Example:

"3fa85f64-5717-4562-b3fc-2c963f66afa6"

account_holder_name
string
required

Name of the account holder (optional, will use user name if not provided)

Maximum length: 100
Example:

"John D. Doe"

bank_name
string
required

Full name of the bank

Maximum length: 100
Example:

"Bank of America"

nick_name
string
required

Optional nickname to identify the account (e.g., 'Personal Checking')

Maximum length: 100
Example:

"Business Wallet Account"

account_number
string
required

Bank account number

Maximum length: 20
Example:

"1234567890"

routing_number
string
required

Bank routing number for ACH transactions

Maximum length: 9
Example:

"021000021"

bank_address
string
required

Street address of the bank

Maximum length: 300
Example:

"123 Bank Street"

city
string
required

City of the bank

Maximum length: 50
Example:

"New York"

state
string
required

State of the bank

Maximum length: 50
Example:

"NY"

zip
string
required

Postal code of the bank

Maximum length: 10
Example:

"10001"

country
string
required

Country of the bank

Maximum length: 50
Example:

"US"

account_type
enum<string>
required

Type of the bank account (e.g., CHECKING, SAVINGS, BUSINESS)

Available options:
PERSONAL_SAVINGS,
BUSINESS_SAVINGS,
BUSINESS_CHECKING,
PERSONAL_CHECKING,
PAYWINT_SAVINGS
is_default
boolean
default:true

Set this account as user's default

Example:

true

Response

Successful Response

success
boolean
default:true

Indicates whether the request was processed successfully.

Example:

true

message
string
default:Success

A short, human-readable message describing the result of the request.

Example:

"Operation completed."

data
object | null

The main response payload, if applicable

queryGeneratedTime
number | null
default:1756883312.350897

The Unix timestamp (in seconds) indicating when the response was generated.

Example:

1718006400