public

GET /v1/public/payment-config

The publishable key and enabled gateways, for a browser.

All public endpoints

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-config

Signed 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

NameTypeRequiredWhat it is
providersPaymentConfigProvider[]Yes
stripe_publishable_keystringYesEmpty 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_availablebooleanYesWhether 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_idstringYesPayPal'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_availablebooleanYesWhether 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…