Gravv DOCS
Docs Agent Get Started
API Reference Create payment intent

Create payment intent

Creates a card payment intent and returns a payment link for the hosted checkout UI.

If you provide a card_token, the service automatically initiates a charge after creating the intent.

POST/v1/collections/cards/payment-intents

Headers

Required for POST requests. Reuse only for an identical retry.

Request Body

Possible values: internal_crypto_wallet, internal_account, external_crypto_wallet

Account ID or wallet ID, depending on destination_type

Required when destination_type is external_crypto_wallet

Required when destination_type is external_crypto_wallet

Possible values: polygon, stellar, ethereum, solana, avalanche

Possible values: external

Source identifier required by the provider

Possible values: card

To auto-charge a customer, use the token you got from the webhook response in your first call of this endpoint.

Request Examples

{
"customer_id": "f827e428-c497-4b21-8855-99d978909c28",
"client_customer_id": "merchant-user-123",
"amount": "3.50",
"currency": "USD",
"client_reference": "order-abc-123",
"destination": {
"destination_type": "internal_crypto_wallet",
"id": "b628ff35-429b-48f7-bcf0-6a49df106fc6"
},
"source": {
"source_type": "external",
"id": "src_80aebb6ea2594a74bc215a64",
"methods": [
  "card"
]
},
"metadata": {
"order_id": "ord_123"
}
}
{
"customer_id": "f827e428-c497-4b21-8855-99d978909c28",
"amount": "3.50",
"currency": "USD",
"destination": {
"destination_type": "internal_crypto_wallet",
"id": "b628ff35-429b-48f7-bcf0-6a49df106fc6"
},
"source": {
"source_type": "external",
"id": "src_80aebb6ea2594a74bc215a64",
"methods": [
  "card"
]
},
"card_token": "tokn_80aebb6ea2594a74bc215a64"
}

Responses

Status Description
200 Payment intent created
400 Bad request — invalid or missing parameters

200 response

One of the following variants:

AES-256-GCM key material for client-side card encryption

Signed JWT for hosted UI operations

Ready-to-use URL with an embedded session parameter for the hosted UI

Possible values: succeeded

{
"intent_id": "pi_429f578b-675a-4b68-abe3-856cd976257f",
"client_secret": "pis_a1b2c3d4...",
"client_reference": "order-abc-123",
"status": "created",
"amount": "100.50",
"currency": "USD",
"requires_action": false,
"payment_key": "eyJhbGciOiJIUzI1NiIs...",
"payment_link": "https://your-hosted-ui.com/pi_429f578b-...?session=eyJqd3Q...",
"metadata": {
"order_id": "ord_123"
},
"created_at": "2026-04-08T10:00:00Z",
"expires_at": "2026-04-09T10:00:00Z"
}
{
"intent_id": "pi_429f578b-675a-4b68-abe3-856cd976257f",
"client_secret": "pis_a1b2c3d4...",
"status": "succeeded",
"transaction_id": "txn_a1b2c3d4-...",
"amount": "100.50",
"currency": "USD",
"requires_action": false,
"created_at": "2026-04-08T10:00:00Z",
"expires_at": "2026-04-09T10:00:00Z"
}

400 response

Authorization

  • ApiKeyAuth
Was this page helpful?
Assistant
Responses are generated using AI and may contain mistakes.

Ask me anything about the documentation.

ESC