POST
/
api
/
v0
/
payment-intents
/
bank
Create a bank payment intent
curl --request POST \
  --url https://api.devdraft.ai/api/v0/payment-intents/bank \
  --header 'Content-Type: application/json' \
  --header 'idempotency-key: <idempotency-key>' \
  --header 'x-client-secret: <api-key>' \
  --data '{
  "sourcePaymentRail": "ach_push",
  "sourceCurrency": "usd",
  "destinationCurrency": "usdc",
  "destinationNetwork": "ethereum",
  "destinationAddress": "0x742d35Cc6634C0532925a3b8D4C9db96c4b4d8e1",
  "amount": "1000.00",
  "customer_first_name": "John",
  "customer_last_name": "Doe",
  "customer_email": "john.doe@example.com",
  "customer_address": "123 Main St, New York, NY 10001",
  "customer_country": "United States",
  "customer_countryISO": "US",
  "customer_province": "New York",
  "customer_provinceISO": "NY",
  "phoneNumber": "+1-555-123-4567",
  "wire_message": "Payment for invoice #12345",
  "sepa_reference": "REF-123456789",
  "ach_reference": "ACH123456"
}'
{
  "id": "txn_01HZXK8M9N2P3Q4R5S6T7U8V9X",
  "bridge_transfer_id": "transfer_def456ghi789",
  "state": "pending",
  "amount": "1000.00",
  "source": {
    "payment_rail": "ach_push",
    "currency": "usd"
  },
  "destination": {
    "payment_rail": "ethereum",
    "currency": "usdc",
    "to_address": "0x742d35Cc6634C0532925a3b8D4C9db96c4b4d8e1"
  },
  "customer": {
    "first_name": "John",
    "last_name": "Doe",
    "email": "john.doe@example.com",
    "address": "123 Main St, New York, NY 10001",
    "country": "United States",
    "phone_number": "+1-555-123-4567"
  },
  "references": {
    "ach_reference": "INV12345"
  },
  "created_at": "2023-07-01T12:00:00.000Z",
  "updated_at": "2023-07-01T12:00:00.000Z"
}

Authorizations

x-client-secret
string
header
required

Your secret API key. Keep this secure and never expose it in client-side code.

Headers

idempotency-key
string
required

Unique UUID v4 for idempotent requests. Prevents duplicate payments.

Body

application/json

Bank payment intent creation data

sourcePaymentRail
enum<string>
required

The banking payment method to use for the transfer. Determines processing time and fees. The blockchain network where the source currency resides. Determines gas fees and transaction speed.

Available options:
ethereum,
solana,
polygon,
avalanche_c_chain,
base,
arbitrum,
optimism,
stellar,
tron,
bridge_wallet,
wire,
ach,
ach_push,
ach_same_day,
sepa,
swift,
spei
Example:

"ach_push"

sourceCurrency
enum<string>
default:usd
required

The fiat currency to convert FROM. Must match the currency of the source payment rail.

Available options:
usd,
eur,
mxn
Example:

"usd"

destinationCurrency
enum<string>
required

The stablecoin currency to convert TO. The customer will receive this currency. The stablecoin currency to convert FROM. This is the currency the customer will pay with.

Available options:
usdc,
eurc
Example:

"usdc"

destinationNetwork
enum<string>
required

The blockchain network where the stablecoin will be delivered. Must support the destination currency. The blockchain network where the source currency resides. Determines gas fees and transaction speed.

Available options:
ethereum,
solana,
polygon,
avalanche_c_chain,
base,
arbitrum,
optimism,
stellar,
tron,
bridge_wallet,
wire,
ach,
ach_push,
ach_same_day,
sepa,
swift,
spei
Example:

"ethereum"

destinationAddress
string

Destination wallet address. Supports Ethereum (0x...) and Solana address formats.

Example:

"0x742d35Cc6634C0532925a3b8D4C9db96c4b4d8e1"

amount
string

Payment amount (optional for flexible amount)

Example:

"1000.00"

customer_first_name
string

Customer first name

Example:

"John"

customer_last_name
string

Customer last name

Example:

"Doe"

customer_email
string

Customer email address

Example:

"john.doe@example.com"

customer_address
string

Customer address

Example:

"123 Main St, New York, NY 10001"

customer_country
string

Customer country

Example:

"United States"

customer_countryISO
string

Customer country ISO code

Example:

"US"

customer_province
string

Customer province/state

Example:

"New York"

customer_provinceISO
string

Customer province/state ISO code

Example:

"NY"

phoneNumber
string

Customer phone number

Example:

"+1-555-123-4567"

wire_message
string

Wire transfer message (for WIRE transfers)

Maximum length: 256
Example:

"Payment for invoice #12345"

sepa_reference
string

SEPA reference (for SEPA transfers)

Required string length: 6 - 140
Example:

"REF-123456789"

ach_reference
string

ACH reference (for ACH transfers)

Maximum length: 10
Example:

"ACH123456"

Response

Bank payment intent created successfully

The response is of type any.