Open the billing portal
Opens the Stripe billing portal for invoices and payment methods and returns the URL the customer opens.
The return URL must be on the Voidhash dashboard.
Guide: Plans and billing
AuthorizationBearer <token>
A project secret key: vh_sk_... for production, vh_sk_test_... for test. Keep it on your servers.
In: header
Path parameters
organizationId*string
The organization's id, org_....
Request body
application/json
TypeScript definitions
Use the request body type in TypeScript.
returnUrl*string
A dashboard URL the customer returns to.
Examples
curl -X POST "https://api.voidhash.com/api/v1/organizations/org_w5xk2e7q0lzv3n8b1c4d6f9g/billing/portal-sessions" \ -H "Authorization: Bearer vh_sk_..." \ -H "Content-Type: application/json" \ -d '{ "returnUrl": "https://voidhash.com/studio/acme/~/settings/billing" }'{ "url": "https://billing.stripe.com/p/session/live_a1B2c3D4e5F6g7H8"}{ "error": { "type": "invalid_request", "code": "invalid_redirect_url", "message": "Redirect URLs must be on the Voidhash dashboard.", "param": "returnUrl" }}{ "error": { "type": "unauthenticated", "code": "invalid_api_key", "message": "This secret key is not valid." }}{ "error": { "type": "permission_denied", "code": "permission_denied", "message": "Insufficient permissions." }}{ "error": { "type": "not_found", "code": "organization_not_found", "message": "There is no organization org_w5xk2e7q0lzv3n8b1c4d6f9g, or this credential cannot use it.", "param": "organizationId" }}{ "error": { "type": "conflict", "code": "no_billing_account", "message": "The organization has no Stripe billing account yet." }}{ "error": { "type": "internal", "code": "internal_error", "message": "Something went wrong on our side. Try again, and contact support with the Request-Id header if it keeps failing." }}{ "error": { "type": "unavailable", "code": "string", "message": "string", "param": "string" }}Response body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
Errors
| Status | type | code | When |
|---|---|---|---|
| 400 | invalid_request | invalid_redirect_url | For a return URL elsewhere. |
| 409 | conflict | no_billing_account | Before the organization has paid through Stripe. |
It can also fail with the errors every operation shares, such as unauthenticated; see Errors.
More in Billing
Something wrong or missing on this page? Tell us by email or on Discord.