---
title: "Get a funding session"
method: GET
path: "/api/v2/wallet/fund/{session_id}"
tags: ["Wallet funding"]
---

# Get a funding session

`GET /api/v2/wallet/fund/{session_id}`

Poll a funding session until it is `completed` — the payment status is refreshed from the provider on every read.

## Path parameters

- `session_id` string, required

## Response `200`

The funding session.

- FundingSession
  - `object` 'funding_session'
  - `id` string
  - `user_id` string
  - `status` 'pending' | 'processing' | 'completed' | 'failed' | 'expired'
  - `amount_cents` integer
  - `currency` string
  - `payment_method` 'apple_pay' | 'google_pay'
  - `checkout_url` string — The payment link to show the user. hosted: an Agentcard-hosted page, present while the link can still be opened. embedded: the raw provider Apple Pay link, present ONLY on the create response; the poll endpoint never re-serves it, so load it in an in-app webview immediately, never relay it, and create a new session if it lapses.
  - `failure_reason` 'region_not_supported' | 'provider_error' | 'null', nullable
  - `completed_at` string, date-time, nullable
  - `created_at` string, date-time
  - `expires_at` string, date-time — On the create response: hosted links stay openable for 30 minutes; embedded links are single-use and expire about 5 minutes after creation (create a new session instead of retrying a lapsed link). On the poll endpoint, expires_at always reflects the session's 30-minute fundability window, not the embedded link's shorter life.
  - `link_type` 'hosted' | 'embedded' — Which kind of checkout_url this session carries. Returned only on the create response; the poll endpoint does not include it.
  - `fee_cents` integer, nullable — Provider fee included in amount_cents, in USD cents. Returned only on the create response of embedded sessions (the order is priced at create time); absent on hosted sessions and on the poll endpoint. Null on the web checkout style (the fee is inside the quoted total).
  - `checkout_style` 'web' — Embedded create responses only. How to render checkout_url: 'web' — an Agentcard-hosted checkout page. Load it in a WKWebView (iOS) or Android WebView; on iOS 16+ the Apple Pay button renders in-app. The page navigates to /fund/success on completion.

## Other responses

- `401` — `unauthorized` — the platform access token is missing or expired. Exchange your client credentials for a fresh one.
- `404` — `not_found` — no funding session with that id for your users.

---

[API](https://skmtc.dev/agentcard/apis/agentcard-api.md) · [All operations](https://skmtc.dev/agentcard/apis/agentcard-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/agentcard/agentcard-api/revisions/638d12c8303f/schema)
