---
title: "Fund a prepaid credit balance over x402"
method: GET
path: "/api/v1/storefront/credits/topup"
tags: ["Credits"]
---

# Fund a prepaid credit balance over x402

`GET /api/v1/storefront/credits/topup`

## Request

- Base URL: `https://propraven.com`
- URL: `https://propraven.com/api/v1/storefront/credits/topup`
- Auth: HTTP bearer

Pay `amount` USDC once via x402 to fund a prepaid credit balance; receive a credit token (pzc_...) to spend on any paid endpoint via the X-CREDIT-TOKEN header — the recurring/volume rail, no account, no CDP/Stripe. GET with no payment returns a 402 for `amount`; present an existing X-CREDIT-TOKEN to top it up in place. Idempotent on the settlement tx.

## Query parameters

- `amount` integer, required

## Headers

- `X-CREDIT-TOKEN` string
- `X-PAYMENT` string

## Response `200`

Balance funded; a new mint returns the raw credit token once.

- object

## Other responses

- `400`: Invalid amount.
- `401`: Missing, malformed or invalid credential.
- `402`: Payment required — accepts[0].maxAmountRequired carries the amount in USDC atomic units.
- `405`: The endpoint exists but does not support this method. `Allow` lists the methods it does.
- `500`: Unexpected server error. The body never carries database or driver text.

---

[API](https://skmtc.dev/propraven/apis/propraven-api.md) · [All operations](https://skmtc.dev/propraven/apis/propraven-api/llms.txt) · [OpenAPI document](https://skmtc.dev/propraven/apis/propraven-api/revisions/37f8158c4eda?raw)
