This API endpoint fetches the public key associated with a tenant for payment processing. If the user is authenticated and the tenant has a configured Stripe public key, the endpoint will return the Stripe public key in a String format.
Public API Reference (2025-07-30)
The Zephr Public API provides common client-side actions tied to a session cookie. Unlike the Admin API, neither users nor other resources can be dereferenced; the only data that can be accessed is owned by the user who is currently signed-in. This design is used to protect other users from malicious attacks.
You can find the base URL for the Public API by navigating to your site domains. To do this, select Sites from the Delivery menu, select your site, and then click the Site Domains button. The base URL is the Live domain.
Zephr forms use the Public API by default, with relative URLs based on the base URL.
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/payment/stripe/publicKey
- https://demo-site/blaize/payment/stripe/publicKey
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/payment/stripe/publicKey \
-H 'cookie: blaize_session=57685913-7365-4dae-a425-1c2c2f72cc0' \
-b blaize_session=57685913-7365-4dae-a425-1c2c2f72cc0- keyFound
- keyNotFound
"pk_live_PFghBsstUo5FwUGcXBiNvIkY00X1YHtpnJ"
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/payment/stripe/setupIntentSecret
- https://demo-site/zephr/payment/stripe/setupIntentSecret
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/payment/stripe/setupIntentSecret \
-H 'cookie: `blaize_session=...` (string)' \
-b '`blaize_session=...` (string)'{ "clientSecret": "src_client_secret_QfsM25CJ2uCMon72MiOmUNTj" }
Request
If a payment requires confirmation (3dSecure etc), the payment is confirmed in the front end.
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/payment/stripe/subscription/confirmation
- https://demo-site/blaize/payment/stripe/subscription/confirmation
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/payment/stripe/subscription/confirmation \
-H 'Content-Type: application/json' \
-b blaize_session=YOUR_API_KEY_HERE \
-d '{
"subscriptionId": "sub_H8eIeMFwMawg6w"
}'{ "grant_id": "aa583cb8-51d1-4bd9-9ec7-3a43796ef8e5" }
Request
Updates the payment method in the subscription. Payment method id will be provided by stripe on updating card details in the front end.
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/payment/stripe/updateSubscription
- https://demo-site/zephr/payment/stripe/updateSubscription
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/payment/stripe/updateSubscription \
-H 'Content-Type: application/json' \
-b blaize_session=YOUR_API_KEY_HERE \
-d '{
"subscription_id": "sub_H8eIeMFwMawg6w",
"payment_method_id": "pm_2KrMmOCvDgIhZCB6u0Yn7COE"
}'- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/payment/stripe/buy
- https://demo-site/blaize/payment/stripe/buy
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/payment/stripe/buy \
-H 'Content-Type: application/json' \
-b blaize_session=YOUR_API_KEY_HERE \
-d '{
"product_id": "lifetime-membership",
"price_point_id": "gold-package",
"payment_method": "pm_123456789",
"payment_intent_id": "pi_1GYZYWLgUJT2XNPAYQMomeqf"
}'{ "grant_id": "aa583cb8-51d1-4bd9-9ec7-3a43796ef8e5", "client_secret": "src_client_secret_QfsM25CJ2uCMon72MiOmUNTj`", "payment_intent_id": "pi_1GYZYWLgUJT2XNPAYQMomeqf" }
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/payment/stripe/subscriptionChargedCallback
- https://demo-site/blaize/payment/stripe/subscriptionChargedCallback
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/payment/stripe/subscriptionChargedCallback \
-b blaize_session=YOUR_API_KEY_HERERequest
Generates a preview of the invoice that Stripe will create for the customer if their subscription is changed to a new plan. The invoice will be a prorated invoice for the price difference between current and new subscription plans for the remainder of the current billing period. The invoice will be billed immediately upon changing subscription. The invoice amount may be negative if the customer is changing to a lower-priced plan.
Note: This method does not modify the user's subscription.
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/payment/stripe/subscription/{subscriptionId}/change-previews
- https://demo-site/zephr/payment/stripe/subscription/{subscriptionId}/change-previews
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/payment/stripe/subscription/{subscriptionId}/change-previews' \
-H 'Content-Type: application/json' \
-b blaize_session=YOUR_API_KEY_HERE \
-d '{
"plan_id": "price_H8eIeMFwMawg6w"
}'Request
Generates a preview of the total price and tax amount that Stripe will charge the customer if they create a new subscription for the specified plan.
Note: This method does not create any entities in Stripe and does not result in any payments being made.
The Stripe promo code that will be attached to the subscription.
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/payment/stripe/create-subscription-previews
- https://demo-site/zephr/payment/stripe/create-subscription-previews
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/payment/stripe/create-subscription-previews \
-H 'Content-Type: application/json' \
-b blaize_session=YOUR_API_KEY_HERE \
-d '{
"product_id": "zephr-prod-1",
"plan_id": "price_H8eIeMFwMawg6w",
"promo_code": "discount15",
"billing_country": "US",
"billing_post_code": "90210"
}'OK
The total amount the user will be initially charged for the subscription in the relevant currency's lowest denomination (e.g. pence), i.e. for a monthly subscription, the first month's cost.
The total amount minus tax for the initial charge in the relevant currency's lowest denomination (e.g. pence).
The tax amount for the initial charge in the relevant currency's lowest denomination (e.g. pence).
Request
Checks a Stripe promo code for the logged in user. The promo code is checked for validity of the current user based on first time order restriction, specific customer restriction, max allowed redemptions and expiration. The payment form payment options are checked to match the minimum payment amount requirements of the promo code.
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/payment/stripe/promo-code
- https://demo-site/zephr/payment/stripe/promo-code
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/payment/stripe/promo-code?code=string&paymentForm=string' \
-b blaize_session=YOUR_API_KEY_HERE{ "code": "string", "discount": "string", "paymentOptions": [ { … } ] }
Request
Checks a Stripe promo code for the logged in user. The promo code is checked for validity of the current user based on first time order restriction, specific customer restriction, max allowed redemptions and expiration. The supplied payment payment options are checked to match the minimum payment amount requirements of the promo code.
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/payment/stripe/promo-code-check
- https://demo-site/zephr/payment/stripe/promo-code-check
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/payment/stripe/promo-code-check \
-H 'Content-Type: application/json' \
-b blaize_session=YOUR_API_KEY_HERE \
-d '{
"paymentOptions": {
"currency": "string",
"description": "string",
"label": "string",
"order": 0,
"price": 0,
"pricePointId": "string",
"productId": "string",
"recommended": true,
"slug": "string",
"subTenantId": "string",
"tenantId": "string",
"type": "PRICE_POINT"
},
"promoCode": "string"
}'{ "code": "string", "discount": "string", "paymentOptions": [ { … } ] }
Request
(Deprecated - use /zephr/subscribe) Uses the payment method info captured by the Stripe Elements UI to create a Stripe customer with a recurring payment. When Stripe responds successfully, the logged-in user will be temporarily granted all entitlements in the product's associated bundle.
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/payment/stripe/subscribe
- https://demo-site/blaize/payment/stripe/subscribe
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/payment/stripe/subscribe \
-H 'Content-Type: application/json' \
-b blaize_session=YOUR_API_KEY_HERE \
-d '{
"product_id": "premium-access-monthly-recurring",
"payment_method": "pm_123456789"
}'{ "grant_id": "string", "clientSecret": "string", "paymentIntentStatus": "string" }
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/payment/stripe/subscriptions
- https://demo-site/blaize/payment/stripe/subscriptions
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/payment/stripe/subscriptions \
-b blaize_session=YOUR_API_KEY_HERE[ { "billingFrequency": 0, "billingFrequencyUnit": "DAY", "blaizeProduct": { … }, "currencyCode": "string", "discountsApplied": true, "ended": "2019-08-24T14:15:22Z", "ends": "2019-08-24T14:15:22Z", "externalId": "string", "managedBy": "string", "multiphasePlan": true, "nextBillingTime": "2019-08-24T14:15:22Z", "paidThroughDate": "2019-08-24T14:15:22Z", "planId": "string", "planName": "string", "preDiscountPrice": 0, "state": "string", "taxRates": [ … ], "transactionRecords": [ … ] } ]
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/payment/stripe/subscriptions/{externalId}
- https://demo-site/blaize/payment/stripe/subscriptions/{externalId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
'https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/payment/stripe/subscriptions/{externalId}' \
-b blaize_session=YOUR_API_KEY_HERERequest
Generates a new preview of the price that Stripe will charge the customer if they create a new subscription for the specified plan. Note: This method does not create any entities in Stripe and does not result in any payments being made.
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/payment/stripe/subscriptions/{externalId}/change-previews
- https://demo-site/zephr/payment/stripe/subscriptions/{externalId}/change-previews
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/payment/stripe/subscriptions/{externalId}/change-previews' \
-H 'Content-Type: application/json' \
-b blaize_session=YOUR_API_KEY_HERE \
-d '{
"plan_id": "string"
}'{ "total": 5000, "sub_total": 4500 }