# Get Session

Retrieve the full details of a checkout session, including merchant info and enabled payment methods.

```
GET /v1/checkout/session/:sessionId
```

**Required permission:** `checkout`

## Authentication

Requires an API key (public or secret). Origin/domain validation is enforced for public keys.

## Path parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `sessionId` | string | The checkout session ID |

## Example request

::: code-group

```bash [cURL]
curl https://api.zevpaycheckout.com/v1/checkout/session/ecc48011-e36e-4741-9b99-657f4a1ee86e \
  -H "x-api-key: pk_test_your_public_key"
```

```js [Node.js]
const response = await fetch(
  'https://api.zevpaycheckout.com/v1/checkout/session/ecc48011-e36e-4741-9b99-657f4a1ee86e',
  {
    headers: {
      'x-api-key': 'pk_test_your_public_key',
    },
  }
);

const { data } = await response.json();
console.log(data.status); // "active"
```

```python [Python]
import requests

response = requests.get(
    "https://api.zevpaycheckout.com/v1/checkout/session/ecc48011-e36e-4741-9b99-657f4a1ee86e",
    headers={"x-api-key": "pk_test_your_public_key"},
)

data = response.json()["data"]
print(data["merchant_name"])
```

:::

## Response

```json
{
  "success": true,
  "data": {
    "session_id": "ecc48011-e36e-4741-9b99-657f4a1ee86e",
    "amount": 500000,
    "currency": "NGN",
    "customer_email": "customer@example.com",
    "customer_name": null,
    "merchant_name": "Acme Store",
    "enabled_payment_methods": ["bank_transfer", "payid"],
    "callback_url": "https://merchant.com/payment/callback",
    "expires_at": "2026-03-07T19:37:00.000Z",
    "status": "active"
  }
}
```

| Field | Type | Description |
|-------|------|-------------|
| `session_id` | string | The checkout session ID |
| `amount` | integer | Amount in kobo |
| `currency` | string | Currency code (e.g., `"NGN"`) |
| `customer_email` | string | Customer's email address |
| `customer_name` | string \| null | Customer's name (if provided) |
| `merchant_name` | string \| null | Merchant's business name from checkout configuration |
| `enabled_payment_methods` | string[] | Available payment methods for this session |
| `callback_url` | string \| null | URL to redirect after payment (standard checkout) |
| `expires_at` | string | ISO 8601 timestamp when the session expires |
| `status` | string | Current session status: `active`, `completed`, `expired`, or `failed` |

## Behavior

- If the session is `active` but past its `expires_at` time, the status is automatically updated to `expired`
- This endpoint is used by the checkout UI to render session details

## Errors

| Status | Message | Cause |
|--------|---------|-------|
| `404` | Session not found. | Invalid session ID |
| `401` | Invalid API key | Key not found or inactive |

## Try it

<ApiPlayground
  method="GET"
  endpoint="/v1/checkout/session/:sessionId"
  :pathParams="[
    { name: 'sessionId', type: 'string', required: true, placeholder: 'ecc48011-e36e-4741-9b99-657f4a1ee86e' },
  ]"
/>
