SubblySubbly
Log inGet started
  • Get started
  • Developer resources
Storefront API reference
Docs
Information
    Base URLAuthenticationPaginationErrors
Bootstrap
    Get shop info and settings
Product
    Get list of productsGet product by IDGet variant or pricing by IDGet plan by ID
Bundle
    Get list of bundlesGet bundle by IDQuote bundleGet list of bundle group itemsGet list of bundle itemsGet the list of bundle items associated with multiple bundles
Survey
    Get survey by ID
Cart
    Init cartGet cart by IDUpdate cart by IDGet cart gifting datesGet cart start datesGet shipping methodsGet local pickupsValidate the cartAttach the customer to the cart
Cart Item
    Add cart itemUpdate cart itemDelete cart item
Checkout
    Make purchase from the cart
Auth
    LoginOtp LoginOtp GenerateSocial LoginRegisteredRegister
Customer
    Get the current customerGet the current customer referral infoUpdate customer
Address
    Get list of addressStore addressUpdate addressDelete address
Pickup Info
    Get list of pickup infosStore pickup infoUpdate pickup infoDelete pickup info
Wallet
    Store payment methodGet list of payment methodsStore payment methodDelete payment methodSet default payment method
Subscription
    Get list of subscriptionsShow subscriptionUpdate subscriptionUpdate subscription survey preferences by Subscription IDUpdate subscription bundle data by Subscription IDCancel a subscriptionUndo cancellationUndo a scheduled cancellationRequest a cancellationWithdraw a cancellation requestSkip upcoming renewalsPause the subscriptionResume the subscriptionProlong an active skipReactivate the subscriptionUpdate shipping address and methodUpdate subscription payment methodGet shipping methodsGet local pickupsList upcoming billing datesList allowed skipping datesList allowed resume datesChange the plans of the subscription's itemsList the plans the subscription can move toCreate a subscription itemShow a subscription itemUpdate a subscription itemRemove a subscription itemUpdate a subscription item's preferencesUpdate a subscription item's bundleChange the plan of a subscription itemChange the variant of a one-time item
Order
    Get list of ordersGet order by ID
Invoice
    Get list of invoicesGet invoice by ID
Payment Intent
    Confirm payment intentGet payment intent by ID
Funnels
    Get the current pre purchase funnel step by IDRefresh the funnel progressAccept the pre purchase funnel stepReject the pre purchase funnel stepGet the current mid purchase funnel step by IDRefresh the funnel progressAccept the mid purchase funnel stepReject the mid purchase funnel step
Countries
    Get list of countries
Out Of Stock
    Subscribe to the out of stock
Cancellation
    Get shop cancellation reasons
Metafield
    Get shop's metafields
Product Collection
    Get list of product collectionsGet product collection by IDGet list of collection groups with items
Lead
    Store the shop lead

Funnels

Storefront Funnels API endpoints

Endpoints
  • GET/checkout/{cart_id}/pre_purchase/fetch
  • POST/checkout/{cart_id}/pre_purchase/refresh
  • POST/checkout/{cart_id}/pre_purchase/{step_id}/accept
  • POST/checkout/{cart_id}/pre_purchase/{step_id}/reject
  • GET/checkout/{cart_id}/mid_purchase/fetch
  • POST/checkout/{cart_id}/mid_purchase/refresh
  • POST/checkout/{cart_id}/mid_purchase/{step_id}/accept
  • POST/checkout/{cart_id}/mid_purchase/{step_id}/reject

Get the current pre purchase funnel step by ID

GET /checkout/{cart_id}/pre_purchase/fetch

Get the current pre purchase funnel step.

Path parameters

cart_idRequiredstring

Cart ID

ReturnsFunnelStep

Pre purchase current funnel step object response

Error responses

400object

The cart is not active (it is completed or expired) or belongs to another shop.

404object

No cart with this ID exists.

422object

The expand query parameter is not an array.

curl https://api.subbly.co/storefront/v1/checkout/{cart_id}/pre_purchase/fetch \ -H 'X-API-KEY: <api-key>'
Response
{ "step": { "id": 1, "initial": true, "addon": true, "addon_duration": 1, "type": "funnel_pre_purchase", "title": "title", "description": "description", "offer": { "amount_off": 1.5, "percent_off": 1.5, "skip_answered_survey": true, "type": "one_click", "products": [ { "id": 1, "bundle_id": 1, "bundle": {}, "bundle_ruleset_id": 1, "bundle_ruleset": {}, "slug": "yellow-t-shirt-with-pokemon-print", "type": "one_time", "name": "Yellow T-shirt with pokemon print", "description": "Yellow T-shirt with pokemon print", "delivery_info": "Free shipping on orders over $100", "collect_shipping_address": true, "gifting_enabled": true, "digital": false, "images": [ {} ], "metadata": [ {} ], "created_at": "2022-04-01T00:00:00.000000Z", "updated_at": "2022-04-01T00:00:00.000000Z", "gift_card": false, "gift_card_expiration": null, "variants": [ {} ], "options": [ {} ] } ] } } }

Refresh the funnel progress

POST /checkout/{cart_id}/pre_purchase/refresh

Refresh the funnel progress.

Path parameters

cart_idRequiredstring

Cart ID

ReturnsFunnelStep

Pre purchase initial funnel step object response

Error responses

400object

The cart has no funnel attached, is not active (it is completed or expired), or belongs to another shop.

404object

No cart with this ID exists.

422object

The expand query parameter is not an array.

curl -X POST https://api.subbly.co/storefront/v1/checkout/{cart_id}/pre_purchase/refresh \ -H 'X-API-KEY: <api-key>'
Response
{ "step": { "id": 1, "initial": true, "addon": true, "addon_duration": 1, "type": "funnel_pre_purchase", "title": "title", "description": "description", "offer": { "amount_off": 1.5, "percent_off": 1.5, "skip_answered_survey": true, "type": "one_click", "products": [ { "id": 1, "bundle_id": 1, "bundle": {}, "bundle_ruleset_id": 1, "bundle_ruleset": {}, "slug": "yellow-t-shirt-with-pokemon-print", "type": "one_time", "name": "Yellow T-shirt with pokemon print", "description": "Yellow T-shirt with pokemon print", "delivery_info": "Free shipping on orders over $100", "collect_shipping_address": true, "gifting_enabled": true, "digital": false, "images": [ {} ], "metadata": [ {} ], "created_at": "2022-04-01T00:00:00.000000Z", "updated_at": "2022-04-01T00:00:00.000000Z", "gift_card": false, "gift_card_expiration": null, "variants": [ {} ], "options": [ {} ] } ] } } }

Accept the pre purchase funnel step

POST /checkout/{cart_id}/pre_purchase/{step_id}/accept

Accept the pre purchase funnel step.

Path parameters

cart_idRequiredstring

Cart ID

step_idRequiredinteger

Step ID

Request body

Accept funnel step

offersRequiredobject[]

ReturnsCart

Pre purchase next funnel step object response

Error responses

400object

The request cannot proceed: the step is not a pre purchase offer step of the funnel attached to the cart, or the cart is not active (it is completed or expired) or belongs to another shop (bad_request); or an offered product, bundle item or survey answer is out of stock (out_of_stock).

404object

No cart or funnel step with this ID exists.

422object

A body field fails validation. offers is missing, not an array, or holds more than one offer for a single offer step. An offer is invalid, for example a one-time product sent with options or survey answers that do not fit the product survey ('The offers.0 is invalid.'). offers.*.product_id is not one of the step offer products in this shop ('The selected offers.0.product_id is invalid.'). offers.*.options.*.question_id or offers.*.options.*.answers is missing. expand is not an array.

curl -X POST https://api.subbly.co/storefront/v1/checkout/{cart_id}/pre_purchase/{step_id}/accept \ -H 'X-API-KEY: <api-key>' \ -H 'Content-Type: application/json' \ -d '{ "offers": [ { "product_id": 1.5, "options": [ { "question_id": 1, "answers": [ { "id": 1, "content": "content", "quantity": 1 } ] } ] } ] }'
Response
{ "id": "d290f1ee-6c54-4b01-90e6-d701748f0851", "customer_id": 1, "customer": { "first_name": "John", "last_name": "Smith", "email": "test@test.com", "marketing_consent": false, "tos_consent": false, "active_subscriptions_count": 0, "external_id": "external_id", "created_at": "2026-01-15T10:30:00Z" }, "attached": true, "shop_id": 1, "coupon_code": "new-year-discount", "coupon": { "id": 1, "coupon_id": "discount-100", "name": "Discount for the New Year", "amount_off": 100, "percent_off": 20, "duration": "once", "duration_in_months": 2 }, "gift_card_code": "a290f1ee-6c54-4b01-90e6-d701748fc920", "gift_card": { "id": 1, "code": "d290f1ee-6c54-4b01-90e6-d701748f0851", "amount": 100, "balance": 20, "message": "It's a gift for you", "status": "redeemed" }, "referral_id": 1, "currency_code": "EUR", "base_currency_code": "USD", "shipping_method_id": 1, "onboarding_template_id": 1, "shipping_method": { "id": 1, "type": "shipping_option", "method": {} }, "shipping_carrier_id": 1, "shipping_carrier": { "id": 1, "name": "DHL", "service_codes": [ "STANDARD", "EXPRESS" ] }, "shipping_carrier_service": "STANDARD", "shipping_address_id": 1, "shipping_address": { "id": 3486, "first_name": "John", "last_name": "Smith", "country_id": 230, "region_id": 1231, "country": "United States", "region": "California", "phone": "+13232380656", "company_name": null, "address_one": "7609 Mckinley Ave", "address_two": null, "city": "Los Angeles", "zip": "90044" }, "billing_address_id": 1, "billing_address": { "id": 3486, "first_name": "John", "last_name": "Smith", "country_id": 230, "region_id": 1231, "country": "United States", "region": "California", "phone": "+13232380656", "company_name": null, "address_one": "7609 Mckinley Ave", "address_two": null, "city": "Los Angeles", "zip": "90044" }, "payment_method_id": 1, "payment_method": { "id": 567, "type": "card", "identifier": "4242", "card": { "last_four": "4242", "expiry_month": "2", "expiry_year": "2099", "type": "credit", "brand": "visa" }, "ideal": { "bank": "ING", "bic": "INGBNL2A", "email": "test@subbly.co", "name": "John Doe" }, "bancontact": { "email": "test@subbly.co", "name": "John Doe" }, "acss_debit": { "email": "test@subbly.co", "name": "John Doe", "bank_name": "Royal Bank of Canada", "transit_number": "12345", "institution_number": "123", "last_four": "6789" }, "us_bank_account": { "email": "test@subbly.co", "name": "John Doe", "bank_name": "US Bank", "last_four": "6789", "routing_number": "123456789", "account_type": "checking", "account_holder_type": "individual" }, "sepa_debit": { "email": "test@subbly.co", "name": "John Doe", "iban_last4": "6789", "bank_code": "123456", "country": "DE", "branch_code": "12345" }, "sofort": { "email": "test@subbly.co", "name": "John Doe", "country": "DE" }, "link": { "email": "test@subbly.co", "name": "John Doe" }, "cashapp": { "email": "test@subbly.co", "name": "John Doe", "buyer_id": "cashapp:123456789", "cash_tag": "$subbly" }, "created_at": "2022-04-01T00:00:00.000000Z", "updated_at": "2022-04-01T00:00:00.000000Z" }, "gift_info": { "starts_at": "2022-04-01", "number_of_orders": 1, "message": "Happy Birthday", "recipient_email": "recipient@example.com" }, "starts_at": "2022-04-01", "items": [ { "id": "f290f1ee-6c54-4b01-90e6-d701748f0589", "type": "one_time", "status": "active", "product": {}, "quantity": 2, "description": "Yellow T-shirt with pokemon print", "addon": false, "addon_duration": 0, "gift_card": { "customer_email": "customer_email", "customer_name": "customer_name", "message": "message" }, "bundle": { "preferences": [ {} ], "items": [ {} ] }, "metadata": [ {} ], "options": [ { "question_id": 1, "answers": [ "answers" ] } ], "amount_off": null, "percent_off": null, "created_at": "2022-04-01T00:00:00.000000Z", "updated_at": "2022-04-01T00:00:00.000000Z" } ], "summary_items": [ { "item_id": "f290f1ee-6c54-4b01-90e6-d701748f0589", "type": "one_time", "product_id": 8, "quantity": 2, "price": 799, "total": 1458, "net_total": 1298, "gross_total": 1458, "sub_total": 1458, "tax_amount": 160, "tax_rate": 0.01, "tax_inclusive": false, "discount": 300, "digital": false, "bundle": {}, "discounts": [ {} ], "charge_now": true, "subscription": {}, "created_at": "2022-04-01T00:00:00.000000Z", "updated_at": "2022-04-01T00:00:00.000000Z" } ], "total": 1458, "sub_total": 1558, "discount_total": 300, "tax_total": 16, "tax_rate": 0.1, "totals": { "now": { "sub_total": 4000, "discount_total": 0, "tax_total": 350, "tax_added": 350, "tax_included": 0, "customs_fee": 0, "gross_total": 4350, "net_total": 4000, "adjustment": 0, "amount_due": 4350 }, "future": {} }, "breakdown": { "products": {}, "setup_fee": {}, "surveys": {}, "shipping": {}, "discounts": [ {} ] }, "discounts": [ { "type": "coupon", "description": "Offer discount", "total": 3, "charge_now": true } ], "metadata": [ { "id": 1, "name": "Color", "slug": "color-red", "description": "description", "unit": "kg", "data_type": "single_line_string", "preset": true, "multiple": true, "variant": true, "save_behavior": "customer", "editable": true, "values": [ {} ] } ], "adjustment": 0, "customs_fee": 0, "future_customs_fee": 0, "balance_change": { "amount": 0, "currency_code": "USD" }, "status": "initialized", "created_at": "2022-04-01T00:00:00.000000Z", "updated_at": "2022-04-01T00:00:00.000000Z" }

Reject the pre purchase funnel step

POST /checkout/{cart_id}/pre_purchase/{step_id}/reject

Reject the pre purchase funnel step.

Path parameters

cart_idRequiredstring

Cart ID

step_idRequiredinteger

Step ID

Returns

Pre purchase next funnel step object response

Error responses

400object

The request cannot proceed: the step is not a pre purchase offer step of the funnel attached to the cart, or the cart is not active (it is completed or expired) or belongs to another shop.

404object

No cart or funnel step with this ID exists.

curl -X POST https://api.subbly.co/storefront/v1/checkout/{cart_id}/pre_purchase/{step_id}/reject \ -H 'X-API-KEY: <api-key>'

Get the current mid purchase funnel step by ID

GET /checkout/{cart_id}/mid_purchase/fetch

Get the current mid purchase funnel step.

Path parameters

cart_idRequiredstring

Cart ID

ReturnsFunnelStep

Mid purchase current funnel step object response

Error responses

400object

The cart is not active (it is completed or expired) or belongs to another shop.

404object

No cart with this ID exists.

422object

The expand query parameter is not an array.

curl https://api.subbly.co/storefront/v1/checkout/{cart_id}/mid_purchase/fetch \ -H 'X-API-KEY: <api-key>'
Response
{ "step": { "id": 1, "initial": true, "addon": true, "addon_duration": 1, "type": "funnel_pre_purchase", "title": "title", "description": "description", "offer": { "amount_off": 1.5, "percent_off": 1.5, "skip_answered_survey": true, "type": "one_click", "products": [ { "id": 1, "bundle_id": 1, "bundle": {}, "bundle_ruleset_id": 1, "bundle_ruleset": {}, "slug": "yellow-t-shirt-with-pokemon-print", "type": "one_time", "name": "Yellow T-shirt with pokemon print", "description": "Yellow T-shirt with pokemon print", "delivery_info": "Free shipping on orders over $100", "collect_shipping_address": true, "gifting_enabled": true, "digital": false, "images": [ {} ], "metadata": [ {} ], "created_at": "2022-04-01T00:00:00.000000Z", "updated_at": "2022-04-01T00:00:00.000000Z", "gift_card": false, "gift_card_expiration": null, "variants": [ {} ], "options": [ {} ] } ] } } }

Refresh the funnel progress

POST /checkout/{cart_id}/mid_purchase/refresh

Refresh the funnel progress.

Path parameters

cart_idRequiredstring

Cart ID

ReturnsFunnelStep

Mid purchase initial funnel step object response

Error responses

400object

The cart has no funnel attached, is not active (it is completed or expired), or belongs to another shop.

404object

No cart with this ID exists.

422object

The expand query parameter is not an array.

curl -X POST https://api.subbly.co/storefront/v1/checkout/{cart_id}/mid_purchase/refresh \ -H 'X-API-KEY: <api-key>'
Response
{ "step": { "id": 1, "initial": true, "addon": true, "addon_duration": 1, "type": "funnel_pre_purchase", "title": "title", "description": "description", "offer": { "amount_off": 1.5, "percent_off": 1.5, "skip_answered_survey": true, "type": "one_click", "products": [ { "id": 1, "bundle_id": 1, "bundle": {}, "bundle_ruleset_id": 1, "bundle_ruleset": {}, "slug": "yellow-t-shirt-with-pokemon-print", "type": "one_time", "name": "Yellow T-shirt with pokemon print", "description": "Yellow T-shirt with pokemon print", "delivery_info": "Free shipping on orders over $100", "collect_shipping_address": true, "gifting_enabled": true, "digital": false, "images": [ {} ], "metadata": [ {} ], "created_at": "2022-04-01T00:00:00.000000Z", "updated_at": "2022-04-01T00:00:00.000000Z", "gift_card": false, "gift_card_expiration": null, "variants": [ {} ], "options": [ {} ] } ] } } }

Accept the mid purchase funnel step

POST /checkout/{cart_id}/mid_purchase/{step_id}/accept

Accept the pre purchase funnel step.

Path parameters

cart_idRequiredstring

Cart ID

step_idRequiredinteger

Step ID

Request body

Accept funnel step

offersRequiredobject[]

ReturnsCart

Mid purchase next funnel step object response

Error responses

400object

The request cannot proceed: the step is not a mid purchase offer step of the funnel attached to the cart, or the cart is not active (it is completed or expired) or belongs to another shop (bad_request); or an offered product, bundle item or survey answer is out of stock (out_of_stock).

404object

No cart or funnel step with this ID exists.

422object

A body field fails validation. offers is missing, not an array, or holds more than one offer for a single offer step. An offer is invalid, for example a one-time product sent with options or survey answers that do not fit the product survey ('The offers.0 is invalid.'). offers.*.product_id is not one of the step offer products in this shop ('The selected offers.0.product_id is invalid.'). offers.*.options.*.question_id or offers.*.options.*.answers is missing. expand is not an array.

curl -X POST https://api.subbly.co/storefront/v1/checkout/{cart_id}/mid_purchase/{step_id}/accept \ -H 'X-API-KEY: <api-key>' \ -H 'Content-Type: application/json' \ -d '{ "offers": [ { "product_id": 1.5, "options": [ { "question_id": 1, "answers": [ { "id": 1, "content": "content", "quantity": 1 } ] } ] } ] }'
Response
{ "id": "d290f1ee-6c54-4b01-90e6-d701748f0851", "customer_id": 1, "customer": { "first_name": "John", "last_name": "Smith", "email": "test@test.com", "marketing_consent": false, "tos_consent": false, "active_subscriptions_count": 0, "external_id": "external_id", "created_at": "2026-01-15T10:30:00Z" }, "attached": true, "shop_id": 1, "coupon_code": "new-year-discount", "coupon": { "id": 1, "coupon_id": "discount-100", "name": "Discount for the New Year", "amount_off": 100, "percent_off": 20, "duration": "once", "duration_in_months": 2 }, "gift_card_code": "a290f1ee-6c54-4b01-90e6-d701748fc920", "gift_card": { "id": 1, "code": "d290f1ee-6c54-4b01-90e6-d701748f0851", "amount": 100, "balance": 20, "message": "It's a gift for you", "status": "redeemed" }, "referral_id": 1, "currency_code": "EUR", "base_currency_code": "USD", "shipping_method_id": 1, "onboarding_template_id": 1, "shipping_method": { "id": 1, "type": "shipping_option", "method": {} }, "shipping_carrier_id": 1, "shipping_carrier": { "id": 1, "name": "DHL", "service_codes": [ "STANDARD", "EXPRESS" ] }, "shipping_carrier_service": "STANDARD", "shipping_address_id": 1, "shipping_address": { "id": 3486, "first_name": "John", "last_name": "Smith", "country_id": 230, "region_id": 1231, "country": "United States", "region": "California", "phone": "+13232380656", "company_name": null, "address_one": "7609 Mckinley Ave", "address_two": null, "city": "Los Angeles", "zip": "90044" }, "billing_address_id": 1, "billing_address": { "id": 3486, "first_name": "John", "last_name": "Smith", "country_id": 230, "region_id": 1231, "country": "United States", "region": "California", "phone": "+13232380656", "company_name": null, "address_one": "7609 Mckinley Ave", "address_two": null, "city": "Los Angeles", "zip": "90044" }, "payment_method_id": 1, "payment_method": { "id": 567, "type": "card", "identifier": "4242", "card": { "last_four": "4242", "expiry_month": "2", "expiry_year": "2099", "type": "credit", "brand": "visa" }, "ideal": { "bank": "ING", "bic": "INGBNL2A", "email": "test@subbly.co", "name": "John Doe" }, "bancontact": { "email": "test@subbly.co", "name": "John Doe" }, "acss_debit": { "email": "test@subbly.co", "name": "John Doe", "bank_name": "Royal Bank of Canada", "transit_number": "12345", "institution_number": "123", "last_four": "6789" }, "us_bank_account": { "email": "test@subbly.co", "name": "John Doe", "bank_name": "US Bank", "last_four": "6789", "routing_number": "123456789", "account_type": "checking", "account_holder_type": "individual" }, "sepa_debit": { "email": "test@subbly.co", "name": "John Doe", "iban_last4": "6789", "bank_code": "123456", "country": "DE", "branch_code": "12345" }, "sofort": { "email": "test@subbly.co", "name": "John Doe", "country": "DE" }, "link": { "email": "test@subbly.co", "name": "John Doe" }, "cashapp": { "email": "test@subbly.co", "name": "John Doe", "buyer_id": "cashapp:123456789", "cash_tag": "$subbly" }, "created_at": "2022-04-01T00:00:00.000000Z", "updated_at": "2022-04-01T00:00:00.000000Z" }, "gift_info": { "starts_at": "2022-04-01", "number_of_orders": 1, "message": "Happy Birthday", "recipient_email": "recipient@example.com" }, "starts_at": "2022-04-01", "items": [ { "id": "f290f1ee-6c54-4b01-90e6-d701748f0589", "type": "one_time", "status": "active", "product": {}, "quantity": 2, "description": "Yellow T-shirt with pokemon print", "addon": false, "addon_duration": 0, "gift_card": { "customer_email": "customer_email", "customer_name": "customer_name", "message": "message" }, "bundle": { "preferences": [ {} ], "items": [ {} ] }, "metadata": [ {} ], "options": [ { "question_id": 1, "answers": [ "answers" ] } ], "amount_off": null, "percent_off": null, "created_at": "2022-04-01T00:00:00.000000Z", "updated_at": "2022-04-01T00:00:00.000000Z" } ], "summary_items": [ { "item_id": "f290f1ee-6c54-4b01-90e6-d701748f0589", "type": "one_time", "product_id": 8, "quantity": 2, "price": 799, "total": 1458, "net_total": 1298, "gross_total": 1458, "sub_total": 1458, "tax_amount": 160, "tax_rate": 0.01, "tax_inclusive": false, "discount": 300, "digital": false, "bundle": {}, "discounts": [ {} ], "charge_now": true, "subscription": {}, "created_at": "2022-04-01T00:00:00.000000Z", "updated_at": "2022-04-01T00:00:00.000000Z" } ], "total": 1458, "sub_total": 1558, "discount_total": 300, "tax_total": 16, "tax_rate": 0.1, "totals": { "now": { "sub_total": 4000, "discount_total": 0, "tax_total": 350, "tax_added": 350, "tax_included": 0, "customs_fee": 0, "gross_total": 4350, "net_total": 4000, "adjustment": 0, "amount_due": 4350 }, "future": {} }, "breakdown": { "products": {}, "setup_fee": {}, "surveys": {}, "shipping": {}, "discounts": [ {} ] }, "discounts": [ { "type": "coupon", "description": "Offer discount", "total": 3, "charge_now": true } ], "metadata": [ { "id": 1, "name": "Color", "slug": "color-red", "description": "description", "unit": "kg", "data_type": "single_line_string", "preset": true, "multiple": true, "variant": true, "save_behavior": "customer", "editable": true, "values": [ {} ] } ], "adjustment": 0, "customs_fee": 0, "future_customs_fee": 0, "balance_change": { "amount": 0, "currency_code": "USD" }, "status": "initialized", "created_at": "2022-04-01T00:00:00.000000Z", "updated_at": "2022-04-01T00:00:00.000000Z" }

Reject the mid purchase funnel step

POST /checkout/{cart_id}/mid_purchase/{step_id}/reject

Reject the pre purchase funnel step.

Path parameters

cart_idRequiredstring

Cart ID

step_idRequiredinteger

Step ID

Returns

Mid purchase next funnel step object response

Error responses

400object

The request cannot proceed: the step is not a mid purchase offer step of the funnel attached to the cart, or the cart is not active (it is completed or expired) or belongs to another shop.

404object

No cart or funnel step with this ID exists.

curl -X POST https://api.subbly.co/storefront/v1/checkout/{cart_id}/mid_purchase/{step_id}/reject \ -H 'X-API-KEY: <api-key>'
stepobject | null
stepobject | null
product_idoptionalnumber
optionsoptionalobject[]

Applicable only for subscription product

idstring

Format: uuid.

customer_idinteger
customerCustomerData
attachedboolean
shop_idinteger
coupon_codestring | null
couponCoupon | null

Expandable link to the coupon

gift_card_codestring | null

Format: uuid.

gift_cardGiftCard | null

Expandable link to the gift card

referral_idinteger | null
currency_codestring
base_currency_codestring
shipping_method_idinteger
onboarding_template_idinteger | null
shipping_methodShippingMethod | null

Shipping method object

shipping_carrier_idinteger | null
shipping_carrierShippingCarrier | null

Expandable link to the shipping carrier. Only present for dynamic shipping methods.

shipping_carrier_servicestring | null
shipping_address_idinteger | null
shipping_addressAddress | PickupInfo | null

Shipping address or pickup point object

billing_address_idinteger
billing_addressAddress | null

Billing address object

payment_method_idinteger
payment_methodPaymentMethod | null

Expandable link to the payment method

gift_infoGiftData

Gift details. On GET /cart/{cart_id}, a starts_at that is no longer available is moved to the earliest available gifting date.

starts_atstring

Subscription start date (Y-m-d); the customer-selected start, or the earliest available start date when none was chosen. On GET /cart/{cart_id}, a selected start that is no longer available is cleared, so the earliest available start date is returned.

Format: date.

itemsCartItem[]
summary_itemsSummaryCartItem[]
totalinteger

Total after discounts, with tax. Tax is added on top when prices are tax-exclusive and is already part of the price when prices are tax-inclusive.

sub_totalinteger

Sum of item prices multiplied by quantity, before discounts. It does not include tax when prices are tax-exclusive and includes tax when prices are tax-inclusive.

discount_totalinteger
tax_totalinteger
tax_ratenumber
totalsCartTotals

Cart totals split by charge phase: now is charged at checkout, future is charged with the next billing cycle.

breakdownCartBreakdown

Cart amounts split by item group. The groups products, setup_fee, surveys and shipping partition the cart items, so their totals add up to the cart total.

discountsCartDiscount[]
metadataEntityMetadata[]
adjustmentnumber
customs_feeinteger

Customs fee for the first shipment. Only applicable for dynamic shipping.

Defaults to 0.

future_customs_feeinteger

Customs fee for recurring shipments. Only applicable for dynamic shipping.

Defaults to 0.

balance_changeBalanceChange
statusstring

Possible values: initialized, expired, completed.

created_atstring

Format: date-time.

updated_atstring

Format: date-time.

stepobject | null
stepobject | null
product_idoptionalnumber
optionsoptionalobject[]

Applicable only for subscription product

idstring

Format: uuid.

customer_idinteger
customerCustomerData
attachedboolean
shop_idinteger
coupon_codestring | null
couponCoupon | null

Expandable link to the coupon

gift_card_codestring | null

Format: uuid.

gift_cardGiftCard | null

Expandable link to the gift card

referral_idinteger | null
currency_codestring
base_currency_codestring
shipping_method_idinteger
onboarding_template_idinteger | null
shipping_methodShippingMethod | null

Shipping method object

shipping_carrier_idinteger | null
shipping_carrierShippingCarrier | null

Expandable link to the shipping carrier. Only present for dynamic shipping methods.

shipping_carrier_servicestring | null
shipping_address_idinteger | null
shipping_addressAddress | PickupInfo | null

Shipping address or pickup point object

billing_address_idinteger
billing_addressAddress | null

Billing address object

payment_method_idinteger
payment_methodPaymentMethod | null

Expandable link to the payment method

gift_infoGiftData

Gift details. On GET /cart/{cart_id}, a starts_at that is no longer available is moved to the earliest available gifting date.

starts_atstring

Subscription start date (Y-m-d); the customer-selected start, or the earliest available start date when none was chosen. On GET /cart/{cart_id}, a selected start that is no longer available is cleared, so the earliest available start date is returned.

Format: date.

itemsCartItem[]
summary_itemsSummaryCartItem[]
totalinteger

Total after discounts, with tax. Tax is added on top when prices are tax-exclusive and is already part of the price when prices are tax-inclusive.

sub_totalinteger

Sum of item prices multiplied by quantity, before discounts. It does not include tax when prices are tax-exclusive and includes tax when prices are tax-inclusive.

discount_totalinteger
tax_totalinteger
tax_ratenumber
totalsCartTotals

Cart totals split by charge phase: now is charged at checkout, future is charged with the next billing cycle.

breakdownCartBreakdown

Cart amounts split by item group. The groups products, setup_fee, surveys and shipping partition the cart items, so their totals add up to the cart total.

discountsCartDiscount[]
metadataEntityMetadata[]
adjustmentnumber
customs_feeinteger

Customs fee for the first shipment. Only applicable for dynamic shipping.

Defaults to 0.

future_customs_feeinteger

Customs fee for recurring shipments. Only applicable for dynamic shipping.

Defaults to 0.

balance_changeBalanceChange
statusstring

Possible values: initialized, expired, completed.

created_atstring

Format: date-time.

updated_atstring

Format: date-time.