Skip to main content
POST
Process Payment

Overview

Process a payment transaction using various payment methods including credit cards, bank transfers, cryptocurrency, or internal wallet transfers. This endpoint supports both one-time payments and authorizations. Powered by CoinFlow: This endpoint uses CoinFlow’s payment infrastructure for processing card, ACH, and crypto payments.

Authentication

Request Body

number
required
Transaction amount in the smallest currency unit (cents for fiat, wei/lamports for crypto)Examples:
  • USD: 10000 = $100.00
  • EUR: 5000 = €50.00
  • SOL: 1000000000 = 1 SOL
  • USDC: 1000000 = 1 USDC (6 decimals)
string
required
Three-letter currency code (ISO 4217) or crypto tickerSupported: USD, EUR, GBP, BTC, ETH, SOL, USDC, USDT
string
required
Payment method to useOptions:
  • card - Credit/debit card
  • ach - ACH bank transfer (US only)
  • wire - Wire transfer
  • wallet - Wallet-to-wallet transfer
  • crypto - Direct cryptocurrency payment
  • apple_pay - Apple Pay
  • google_pay - Google Pay
string
ID of a saved payment method (for card, ACH, bank transfers)Required for: card, ach, wallet methods when not using one-time tokens
string
Wallet ID to debit funds from (required for wallet-to-wallet transfers)
string
Wallet ID to credit funds to (required for wallet-to-wallet transfers)
string
Human-readable description of the transactionExample: "Order #12345 - Premium Subscription"
object
Custom key-value pairs to attach to the transactionExample:
string
Unique key to prevent duplicate transactions (recommended for all requests)Example: "payment-order_12345-2025-11-18"

Request Examples

Response

string
Unique transaction identifier
string
Transaction type: deposit, withdrawal, transfer_in, transfer_out, payment, refund, fee, adjustment
string
Current status: pending, processing, completed, failed, reversed, refunded, cancelled
number
Transaction amount in smallest currency unit
string
Currency code
number
Processing fee charged
number
Net amount after fees (amount - fee)
string
Wallet debited (if applicable)
string
Wallet credited (if applicable)
string
Payment method used
string
Transaction description
object
Custom metadata attached
string
ISO 8601 creation timestamp
string
ISO 8601 completion timestamp (null if not completed)

Response Examples

Code Examples

Payment Methods Comparison

Error Codes

Webhooks

Transaction events trigger webhooks:

Best Practices

1. Always Use Idempotency Keys

2. Handle Async Payments

Some methods (ACH, wire) are asynchronous:

3. Implement Retry Logic

Support

Questions? Contact us: