Skip to main content
POST
Create a payment intent

Fee Config Breaking Change

The fee_config field is required for non-enterprise tier customers. Requests without it return a missing_fee_config error.

Migration

Add fee_config to your create_payment_intent request body:
fee_config
object
required
Fee configuration specifying who pays the transaction fee and in which currency.

How Fees Work

  1. You submit a payment intent with fee_config.
  2. The API builds the transaction and calculates the fee (compute, signatures, and ATA rent if needed).
  3. A repayment instruction is appended that transfers the fee from payer_address to the paymaster.
  4. The response includes a fee object with the exact amount charged.

Fee Payer Signing

The payer_address must sign the transaction. The API automatically adds it as a required signer.
  • SOL fees: The payer needs enough SOL to cover the fee.
  • USDC fees: The payer needs enough USDC in their associated token account.

Response

When fee_config is provided, the response includes a fee field:
fee
object
Breakdown of the transaction fee charged.

Errors

missing_fee_config — Request has no fee_config (required for non-enterprise tier).

Authorizations

Authorization
string
header
required

Your Grid API key from the Grid Dashboard

Path Parameters

address
string
required

Smart account address

Body

application/json
amount
string
required
destination
object
required
source
object
required
fee_config
null | object

Response

Payment intent created successfully

amount
string
required
created_at
string<date-time>
required
currency
string
required
destination
any
required
id
string
required
payment_rail
string
required
source
any
required
status
string
required
transaction_signers
string[]
required
valid_until
string<date-time>
required
fee
null | object
kms_payloads
object[]
source_deposit_instructions
any
threshold
integer<int32> | null
transaction
string | null