Skip to main content
Find and manage subscription contracts that were created through Appfox.

Contract identifiers

The API base URL is https://subscriptions-app-new.getappfox.com. The contractId parameter can be either:
  • The numeric Shopify contract ID (e.g., 123456789)
  • The full Shopify GID (e.g., gid://shopify/SubscriptionContract/123456789)
Official routes live under /api/v1/subscription-contracts. Do not use /api/external/contracts.

Search contracts

All filters are optional and combine with each other. For example, find a customer’s active contracts:
Response (200 OK)
Email filter is an exact match. Search results come from Appfox’s shop-scoped contract mirror. Get-by-id reads live Shopify data.

Get a contract

This endpoint returns the current status, customer, billing policy, delivery price, and product lines directly from Shopify. It also returns the scheduled Appfox resume time when the contract is paused.

Manage a contract

Pause a subscription

Pause a subscription for up to 60 days. The resumeAt field is required and must be a future ISO-8601 timestamp. The contract auto-resumes at that time via the billing cron.
Validation:
  • resumeAt is required on pause
  • resumeAt must be a future timestamp
  • Maximum pause duration is 60 days from the request time

Resume a subscription

Resume a paused subscription immediately.

Cancel a subscription

Permanently cancel a subscription. This action cannot be undone. Merchant and API cancels are not blocked by the plan-level minimum cycles setting. That setting only blocks customer-portal cancels.

POS

Shopify POS cannot enroll a customer into a selling plan at the register. Use this API from your own backend so a custom POS extension can look up the customer, pause, resume, or cancel. New memberships still start on the storefront or in Shopify admin.

Error responses

All errors use the following structure:

Status codes and error codes

Example error responses

Contract not found:
Invalid pause duration:
Shopify rejected the action: