Create top-up checkout
OpenAPI contract
- Method
- POST
- Path
/api/v1/billing/checkout/topup- Security
- jwtBearer (bearer)
- Response status
- 200 400 401 403 429 500
Request and response schemas
JSON
{
"requestBody": {
"application/json": {
"$ref": "#/components/schemas/TopupRequest"
}
},
"responses": {
"200": {
"description": "Checkout URL",
"content": {
"application/json": {}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"$ref": "#/components/schemas/RequestError"
}
}
},
"401": {
"description": "Authentication required or invalid",
"content": {
"application/json": {
"$ref": "#/components/schemas/SecurityError"
}
}
},
"403": {
"description": "Authenticated but not permitted",
"content": {
"application/json": {
"$ref": "#/components/schemas/SecurityError"
}
}
},
"429": {
"description": "Rate limit exceeded",
"content": {
"application/json": {
"$ref": "#/components/schemas/SecurityError"
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/json": {
"$ref": "#/components/schemas/ApiError"
}
}
}
}
}POST /api/v1/billing/checkout/topup is JWT-only. Send a supported nonblank sku; an optional Idempotency-Key is forwarded to Stripe. The response is only { "redirectUrl": "..." }, a hosted Checkout session URL. It does not itself credit NCU.
Availability: source/config-verified. A paid Stripe Checkout completion is verified and applied by the provider webhook, which is intentionally outside the public API Reference. No real payment was performed to verify this documentation.
http
POST /api/v1/billing/checkout/topup
Authorization: Bearer <access token>
Content-Type: application/json
Idempotency-Key: <unique key>
{"sku":"TEN_K"}