public
GET /v1/public/payment-config
The publishable key and enabled gateways, for a browser.
Authentication
This endpoint is public. It takes no credential and no organisation — it is what our own marketing site and AI answer engines read.
This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X GET https://api.zinndigital.com/v1/public/payment-configSigned in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console
Details
Unauthenticated: the guest checkout funnel has no principal, and everything here is public by construction — a Stripe **publishable** key is designed to be embedded in a page, and "which gateways are switched on" is visible at checkout anyway. This exists so the key is **rotatable from admin**. The dashboard used to read it from `VITE_STRIPE_PUBLISHABLE_KEY`, a build-time constant that was set in no build — so every deployed dashboard shipped an empty key and could only tell customers card payments were unavailable. A build-time value also could not be changed by editing a row, which is what the owner asked for.
Response
| Name | Type | Required | What it is |
|---|---|---|---|
providers | PaymentConfigProvider[] | Yes | — |
stripe_publishable_key | string | Yes | Empty when Stripe is not configured. Served here rather than baked into the SPA bundle so the merchant account can be rotated from admin (§2.35). |
card_capture_available | boolean | Yes | Whether the dashboard can show a card form. Computed here so "can this customer add a card?" has one answer rather than one per client. |
paypal_client_id | string | Yes | PayPal's client id, which goes in the JS SDK's script URL — the browser cannot render Buttons or hosted card fields without it. Public by construction (the catalogue marks it `s… |
paypal_available | boolean | Yes | Whether PayPal can actually be offered. Its own flag rather than something the SPA infers from `providers`: a PayPal row can be enabled with the client id blank, and a client re… |