Oferty i order bumpy
Endpointy „Oferty i order bumpy” Zanfia Workspace API — ze schematami i przykładami kodu.
Oferta to koszyk (checkout) produktu; jeden produkt może mieć ich kilka. Order bumpy to oferty dodatkowe pokazywane w koszyku. Kwoty podawane są w jednostkach mniejszych (1999 = 19,99). Wszystkie endpointy wymagają nagłówka Authorization: Bearer — zobacz Uwierzytelnianie.
Lista ofert
/checkoutsAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Query Parameters
Response Body
application/json
application/json
curl -X GET "https://example.com/checkouts"{ "count": 0, "checkouts": [ { "id": "string", "productId": "string", "name": "string", "slug": "string", "title": "string", "active": true, "archived": true, "isFree": true, "priceCount": 0, "createdAt": "string" } ]}{ "error": "string", "message": "string"}Utwórz ofertę
/checkoutsAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/checkouts" \ -H "Content-Type: application/json" \ -d '{ "productId": "string" }'{ "id": "string", "productId": "string", "name": "string", "slug": "string", "title": "string", "active": true, "archived": true, "isFree": true, "priceCount": 0, "createdAt": "string"}{ "error": "string", "message": "string"}Szczegóły oferty
/checkouts/{checkoutId}Authorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Offer (checkout) id
Query Parameters
full adds the whole editable settings surface to the response.
Value in
- "full"
Response Body
application/json
application/json
curl -X GET "https://example.com/checkouts/string"{ "checkoutImages": {}, "checkoutImagesMedia": {}, "checkoutMedia": {}, "checkoutMediaWidth": 0, "showTestimonials": true, "showPlanIncludes": true, "planIncludesLayout": {}, "afterPurchase": { "thankYou": { "type": "defaultPage", "redirectUrl": "string", "custom": { "eyebrow": "string", "headline": "string", "messageHtml": "string", "messageMarkdown": "string", "ctaLabel": "string", "ctaUrl": "string", "showOrderSummary": true, "nextOffer": { "kind": "checkout", "checkoutId": "string", "productId": "string", "headline": "string", "description": "string", "ctaLabel": "string" } } }, "emails": { "sendPurchaseConfirmationToBuyer": true, "sendPurchaseNotificationToOwner": true, "sendFailedPaymentEmailToBuyer": true, "sendFailedPaymentEmailToOwner": true }, "emailOverrides": { "property1": { "enabled": true, "subject": { "en": "string", "pl": "string" }, "headline": { "en": "string", "pl": "string" }, "layout": [ { "id": "string", "type": "text", "text": { "en": "string", "pl": "string" } } ], "body": { "en": "string", "pl": "string" }, "variants": { "property1": {}, "property2": {} }, "attachments": [ { "kind": "media", "mediaId": "string", "name": "string", "mimeType": "string", "size": 0, "storagePath": "string", "url": "string" } ] }, "property2": { "enabled": true, "subject": { "en": "string", "pl": "string" }, "headline": { "en": "string", "pl": "string" }, "layout": [ { "id": "string", "type": "text", "text": { "en": "string", "pl": "string" } } ], "body": { "en": "string", "pl": "string" }, "variants": { "property1": {}, "property2": {} }, "attachments": [ { "kind": "media", "mediaId": "string", "name": "string", "mimeType": "string", "size": 0, "storagePath": "string", "url": "string" } ] } } }, "deadline": { "type": "fixed_date", "endsAt": 0, "deadlineKey": "string", "expiryAction": "waitlist", "redirectUrl": "string", "fallbackCheckoutId": "string", "showCountdown": true, "bannerBgColor": "string", "bannerTextColor": "string", "bannerText": "string", "bannerStyle": "solid", "bannerHideText": true, "bannerSize": "small" }, "theme": { "sourcePresetId": "string", "overrides": { "selectedTheme": "auto", "themeColor": "tomato", "customColors": { "light": { "accent": "string", "gray": "string", "background": "string" }, "dark": { "accent": "string", "gray": "string", "background": "string" } }, "customCheckoutColors": { "light": { "checkoutLeftBackground": "string", "checkoutRightBackground": "string", "checkoutLeftTextColor": "string", "checkoutLeftPriceColor": "string", "accent": "string" }, "dark": { "checkoutLeftBackground": "string", "checkoutRightBackground": "string", "checkoutLeftTextColor": "string", "checkoutLeftPriceColor": "string", "accent": "string" } }, "radius": "none", "styleVariant": "solid" } }, "invoiceAsOption": true, "hideCountryField": true, "fixedCountry": "string", "showFixedCountry": true, "showPhoneField": {}, "showAdditionalInfo": {}, "collectFirstName": true, "collectLastName": true, "freeAccessPeriod": { "interval": "day", "interval_count": 0 }, "signupTagIds": {}, "allowPromotionCode": {}, "forceB2B": true, "promoteNetPrices": true, "promoteNetPriceRate": 0, "priceVariantsPlacement": {}, "stripeTaxBehavior": {}, "paymentMethodsDisplay": {}, "paymentsMethods": { "blik": false, "p24": false, "przelewy24": false, "applePay": false, "googlePay": false, "klarna": false, "card": false }, "showExpressCheckout": true, "allowUpgradeSubscriptionPlan": true, "allowDowngradeSubscriptionPlan": true, "enableClientToBuyMultipleTimes": true, "clientMultiplePurchaseLimit": 0, "multiplePurchaseType": { "type": "fixed", "value": 0 }, "termsUrl": "string", "privacyPolicyUrl": "string", "termsContent": "string", "privacyPolicyContent": "string", "claim": "string", "customInvoicesClient": { "accountUrl": "string", "accountName": "string", "client": "fakturownia", "id": "string" }, "disableInvoiceIssuing": true, "issueReceiptWhenInvoiceIsOptIn": true, "dontSendInvoiceToClient": true, "customInvoiceEmailSubject": "string", "customInvoiceEmailMessage": "string", "disableEmailNotificationAboutPurchase": true, "disableEmailNotificationAboutPurchaseToOwner": true, "disableEmailsAboutFailedPayment": true, "disableEmailNotificationAboutFailedPaymentClient": true, "disableEmailsAboutCancelSubscription": true, "disableEmailsAboutEndSubscription": true, "disableEmailNotificationsRemindersAboutEndingAccessToClient": true, "ownerEmailNotifications": { "property1": true, "property2": true }, "offerStack": { "items": [ { "id": "string", "title": "string", "description": "string", "value": 0 } ], "showValues": true, "showTotal": true }, "oto": { "enabled": true, "steps": [ { "otoOfferId": "string", "onAcceptStepIndex": 0, "onDeclineStepIndex": 0 } ] }, "facebookPixelId": "string", "googleAnalyticsId": "string", "googleAnalyticsGtmId": "string", "metaConversionIntegrationId": "string", "conversionTrackingIntegrationIds": {}, "conversionTrackingInheritDefaults": true, "id": "string", "productId": "string", "name": "string", "slug": "string", "title": "string", "active": true, "archived": true, "isFree": true, "priceCount": 0, "createdAt": "string", "description": "string", "language": "string", "successUrl": "string", "prices": [ { "id": "string", "productId": "string", "amountCents": 0, "currency": "string", "type": "one_time", "active": true, "status": "available", "gateways": [ "string" ], "label": "string", "hidden": true, "interval": "string", "intervalCount": 0, "trialPeriodDays": 0, "accessInterval": "string", "accessIntervalCount": 0, "accessUntil": "string", "installments": { "numberOfCycles": 0, "allowCancellation": true }, "saleStartsAt": "string", "saleStartDisplay": "hidden", "saleEndsAt": "string", "quantityLimit": 0, "compareAtAmountCents": 0, "customInvoiceName": "string", "planId": "string" } ], "orderBumps": [ { "orderBumpId": "string", "visibleForPriceIds": [ "string" ] } ]}{ "error": "string", "message": "string"}Aktualizuj ustawienia oferty
/checkouts/{checkoutId}Authorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Offer (checkout) id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Partial update of an offer — the full checkout-builder settings surface. Omitted fields are unchanged.
Derived from the internal editor DTO with the composition/lifecycle fields removed: active/archived (publish + delete routes), orderBumps (attach/detach routes), and the republishHiddenProducts activation control flag. oto (the checkout's one-time-offer chain attachment) IS included — offer ids for its steps[].otoOfferId come from the /oto-offers routes; the shared Joi validator enforces the chain shape.
description is a public alias for checkoutDescription (kept from the original 5-field surface); when both are present checkoutDescription wins.
Response Body
application/json
application/json
curl -X PATCH "https://example.com/checkouts/string" \ -H "Content-Type: application/json" \ -d '{}'{ "checkoutId": "string"}{ "error": "string", "message": "string"}Usuń ofertę
/checkouts/{checkoutId}Authorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Offer (checkout) id
Response Body
application/json
application/json
curl -X DELETE "https://example.com/checkouts/string"{ "checkoutId": "string", "deleted": true}{ "error": "string", "message": "string"}Aktywuj lub wstrzymaj ofertę
/checkouts/{checkoutId}/publishAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Offer (checkout) id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/checkouts/string/publish" \ -H "Content-Type: application/json" \ -d '{ "active": true }'{ "checkoutId": "string", "active": true}{ "error": "string", "message": "string"}Duplikuj ofertę
/checkouts/{checkoutId}/duplicateAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Offer (checkout) id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/checkouts/string/duplicate" \ -H "Content-Type: application/json" \ -d '{}'{ "id": "string", "productId": "string", "name": "string", "slug": "string", "title": "string", "active": true, "archived": true, "isFree": true, "priceCount": 0, "createdAt": "string"}{ "error": "string", "message": "string"}Ustaw jako domyślny checkout produktu
/checkouts/{checkoutId}/set-defaultAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Offer (checkout) id
Response Body
application/json
application/json
curl -X POST "https://example.com/checkouts/string/set-default"{ "checkoutId": "string", "productId": "string"}{ "error": "string", "message": "string"}Dodaj wariant ceny
/checkouts/{checkoutId}/pricesAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Offer (checkout) id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/checkouts/string/prices" \ -H "Content-Type: application/json" \ -d '{ "type": "one_time", "amountCents": 0, "currency": "string" }'{ "id": "string", "productId": "string", "amountCents": 0, "currency": "string", "type": "one_time", "active": true, "status": "available", "gateways": [ "string" ], "label": "string", "hidden": true, "interval": "string", "intervalCount": 0, "trialPeriodDays": 0, "accessInterval": "string", "accessIntervalCount": 0, "accessUntil": "string", "installments": { "numberOfCycles": 0, "allowCancellation": true }, "saleStartsAt": "string", "saleStartDisplay": "hidden", "saleEndsAt": "string", "quantityLimit": 0, "compareAtAmountCents": 0, "customInvoiceName": "string", "planId": "string"}{ "error": "string", "message": "string"}Zmień kolejność cen
/checkouts/{checkoutId}/prices/orderAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Offer (checkout) id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PUT "https://example.com/checkouts/string/prices/order" \ -H "Content-Type: application/json" \ -d '{ "priceIds": [ "string" ] }'{ "checkoutId": "string"}{ "error": "string", "message": "string"}Zmień cenę
/checkouts/{checkoutId}/prices/{priceId}Authorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Offer (checkout) id
Price id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Point mutation of an existing price. change-amount re-prices in place (fresh gateway price under the same id) keeping label/limits/promo/plan. edit-details changes label/description only; set-plan re-links the price to a product plan; edit applies the partial overrides in edit over the stored price (limits/promo/access/gateways/trial).
Response Body
application/json
application/json
curl -X PATCH "https://example.com/checkouts/string/prices/string" \ -H "Content-Type: application/json" \ -d '{ "operation": "activate" }'{ "checkoutId": "string", "priceId": "string"}{ "error": "string", "message": "string"}Archiwizuj lub usuń cenę
/checkouts/{checkoutId}/prices/{priceId}Authorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Offer (checkout) id
Price id
Query Parameters
"archive"Value in
- "archive"
- "remove"
Response Body
application/json
application/json
curl -X DELETE "https://example.com/checkouts/string/prices/string"{ "checkoutId": "string", "priceId": "string", "mode": "archive"}{ "error": "string", "message": "string"}Podgląd e-maila odzyskiwania koszyka
/checkouts/{checkoutId}/sessions/{sessionId}/recovery-email/previewAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Offer (checkout) id
Checkout session id
Response Body
application/json
application/json
curl -X POST "https://example.com/checkouts/string/sessions/string/recovery-email/preview"{ "status": "ok", "recipientEmail": "string", "customerName": "string", "productName": "string", "checkoutUrl": "string", "language": "pl"}{ "error": "string", "message": "string"}Wyślij e-mail odzyskiwania koszyka
/checkouts/{checkoutId}/sessions/{sessionId}/recovery-emailAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Offer (checkout) id
Checkout session id
Response Body
application/json
application/json
curl -X POST "https://example.com/checkouts/string/sessions/string/recovery-email"{ "status": "ok", "sentAtMs": 0, "sentCount": 0}{ "error": "string", "message": "string"}Dołącz order bump do oferty
/checkouts/{checkoutId}/order-bumpsAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Offer (checkout) id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/checkouts/string/order-bumps" \ -H "Content-Type: application/json" \ -d '{ "orderBumpId": "string" }'{ "checkoutId": "string", "orderBumpId": "string", "alreadyAttached": true}{ "error": "string", "message": "string"}Odłącz order bump od oferty
/checkouts/{checkoutId}/order-bumps/{orderBumpId}Authorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Offer (checkout) id
Order bump id
Response Body
application/json
application/json
curl -X DELETE "https://example.com/checkouts/string/order-bumps/string"{ "checkoutId": "string", "orderBumpId": "string"}{ "error": "string", "message": "string"}Lista order bumpów
/order-bumpsAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Response Body
application/json
application/json
curl -X GET "https://example.com/order-bumps"{ "count": 0, "orderBumps": [ { "id": "string", "name": "string", "description": "string", "ctaText": "string", "productId": "string", "productName": "string", "priceId": "string", "price": { "amountCents": 0, "currency": "string", "type": "one_time" }, "createdAt": "string" } ]}{ "error": "string", "message": "string"}Utwórz order bump
/order-bumpsAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/order-bumps" \ -H "Content-Type: application/json" \ -d '{ "productId": "string", "priceId": "string", "name": "string" }'{ "orderBumpId": "string"}{ "error": "string", "message": "string"}Aktualizuj order bump
/order-bumps/{orderBumpId}Authorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Order bump id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PATCH "https://example.com/order-bumps/string" \ -H "Content-Type: application/json" \ -d '{}'{ "orderBumpId": "string"}{ "error": "string", "message": "string"}Usuń order bump
/order-bumps/{orderBumpId}Authorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Order bump id
Response Body
application/json
application/json
curl -X DELETE "https://example.com/order-bumps/string"{ "orderBumpId": "string"}{ "error": "string", "message": "string"}Czy ten artykuł był pomocny?

