POST
/
accounts
/
{address}
/
payment-intent
Create payment intent
curl --request POST \
  --url https://grid.squads.xyz/api/grid/v1/accounts/{address}/payment-intent \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "amount": "1500000",
  "grid_user_id": "123e4567-e89b-12d3-a456-426614174003",
  "source": {
    "account": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
    "currency": "USDC"
  },
  "destination": {
    "address": "22222222222222222222222222222223",
    "currency": "USDC"
  }
}'
{
  "data": {
    "id": "<string>",
    "payment_rail": "ach",
    "amount": "<string>",
    "currency": "USD",
    "source_deposit_instructions": {},
    "source": {},
    "destination": {},
    "status": "pending",
    "created_at": "2023-11-07T05:31:56Z",
    "intent_payload": "<string>",
    "kms_payloads": [],
    "transaction_signers": [
      "11111111111111111111111111111112"
    ],
    "threshold": 123,
    "valid_until": "2023-11-07T05:31:56Z"
  },
  "metadata": {
    "request_id": "123e4567-e89b-12d3-a456-426614174000",
    "timestamp": "2023-07-15T14:30:00.000Z"
  }
}
Payment intents represent a desired payment operation that requires authorization. Grid’s intent-based architecture ensures security and control over all outgoing operations.

Payment Flow

Payment Types

Grid supports various types of payments:

Transfer Destinations

  • External Bank Accounts: Traditional fiat transfers via ACH, SEPA, Wire
  • Other Smart Accounts: Direct blockchain transfers
  • Blockchain Addresses: Direct Solana address transfers
  • New External Accounts: Create and transfer to new bank accounts

Payment Rails

  • ACH: US domestic transfers
  • SEPA: European transfers
  • Wire: International transfers
  • Solana: Direct blockchain transfers

Intent Components

Each payment intent includes:
  • Amount: Transfer amount in specified currency
  • Source: Origin account details
  • Destination: Target account or address
  • Currency: USD, EUR, GBP, USDC, SOL
  • Payment Rail: Transfer method
  • Webhook URL: Optional status notifications

Authorization Requirements

Payment intents require authorization based on your account’s policies. The required signatures depend on your account’s threshold and signer permissions.

Important Notes

  • Payment intents expire after a specified time period
  • Larger amounts may require additional verification
  • Cross-border transfers have different processing times
  • Webhook notifications provide real-time status updates

Authorizations

Authorization
string
header
required

API key authentication with Bearer token. Include the API key in the Authorization header as 'Bearer YOUR_API_KEY'

Path Parameters

address
string
required

Account address

Example:

"11111111111111111111111111111112"

Body

application/json

Response

200
application/json

Payment intent created successfully

The response is of type object.