Juo Subscriptions — API Reference (internal)

Download OpenAPI specification:Download

Introduction

Welcome to the Customer API Reference. This API allows you to view and manage subscriptions on behalf of specific customer in your application. With it, you can let logged in customers to access detailed subscription information, and even perform operations such as creating, updating, and cancelling subscriptions. This guide will provide detailed instructions on how to use the various endpoints and data models, making it easier than ever to integrate your custom subscriber portal with the platform.

Authorization

This API works with two authorization modes:

  • Implicit — authorized with Shopify App Proxy
  • Explicit — authorized with Baerer token

To use the implicit authorization simply use the endpoint behind the Shopify App Proxy by replacing /customer prefix with /apps/juo/api. The request will be automatically authenticated with currently logged customer in the Shopify store.

The explicit authorization requires passing a short lived Bearer token in the request's Authorization header which can be obtained with "Verify" endpoint.

General

Verify

Verify

Authorizations:
(BearerAuthAppProxy)

Responses

Get customer info

Get customer info

Authorizations:
(BearerAuthAppProxy)

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string"
}

Build-a-box

Get build-a-box configuration

Get build-a-box configuration

Authorizations:
(BearerAuthAppProxy)
path Parameters
id
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "title": "string",
  • "parentProduct": "string",
  • "minProductsCount": 0,
  • "variants": [
    ],
  • "tiers": [
    ],
  • "freeVariants": [
    ]
}

Get available products

Get available products

Authorizations:
(BearerAuthAppProxy)
path Parameters
id
required
string non-empty
query Parameters
contractId
required
string non-empty
q
string non-empty

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Products

Get products by ids

Get products by ids

Authorizations:
(BearerAuthAppProxy)
query Parameters
ids
required
Array of strings[ items [ 1 .. 20 ] characters ]

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get product variants

Get product variants

Authorizations:
(BearerAuthAppProxy)
path Parameters
id
required
string non-empty
query Parameters
after
string
limit
integer [ 1 .. 50 ]
before
string
required
string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string or string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Payment methods

List available payment methods

List available payment methods

Authorizations:
(BearerAuthAppProxy)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update payment method

Update payment method

Authorizations:
(BearerAuthAppProxy)
path Parameters
methodId
required
string non-empty

Responses

Response samples

Content type
application/json
{ }

Activate payment method

Activate payment method

Authorizations:
(BearerAuthAppProxy)
path Parameters
methodId
required
string non-empty
Request Body schema: application/json
required
contractId
required
string

Responses

Request samples

Content type
application/json
{
  • "contractId": "string"
}

Response samples

Content type
application/json
{ }

Subscriptions

Verify

Verify

Authorizations:
(BearerAuthAppProxy)

Responses

List subscriptions

Authorizations:
(BearerAuthAppProxy)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get subscription

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty ^(?!gid://).+$

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "ref": "string",
  • "status": "ACTIVE",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "nextBillingDate": "2019-08-24T14:15:22Z",
  • "nextBillingAttempt": {
    },
  • "lastBillingAttempt": {
    },
  • "deliveryPolicy": {
    },
  • "billingPolicy": {
    },
  • "lineCount": 1,
  • "lines": [
    ],
  • "deliveryMethod": {
    },
  • "deliveryDiscountedPrice": "string",
  • "lastPaymentStatus": "FAILED",
  • "customerPaymentMethod": {
    },
  • "isEditable": true,
  • "requiredBillingCyclesLeft": 0,
  • "discounts": [
    ],
  • "hasCancellationDiscount": true,
  • "currentCycle": 0,
  • "remainingOrdersCount": 1,
  • "customAttributes": [
    ],
  • "deliveryPrice": {
    }
}

Get subscription activity

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty ^(?!gid://).+$

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update shipping address

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty ^(?!gid://).+$
Request Body schema: application/json
required
firstName
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "firstName": "string"
}

Response samples

Content type
application/json
{ }

Cancel subscription

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty ^(?!gid://).+$
Request Body schema: application/json
cancellationReason
string non-empty

Responses

Request samples

Content type
application/json
{
  • "cancellationReason": "string"
}

Response samples

Content type
application/json
{ }

Pause subscription

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty ^(?!gid://).+$

Responses

Response samples

Content type
application/json
{ }

Resume subscription

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty ^(?!gid://).+$

Responses

Response samples

Content type
application/json
{ }

Skip subscription order

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty ^(?!gid://).+$

Responses

Response samples

Content type
application/json
{ }

Order now

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty ^(?!gid://).+$

Responses

Response samples

Content type
application/json
{ }

Retry subscription renewal

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty ^(?!gid://).+$

Responses

Response samples

Content type
application/json
{
  • "result": "success"
}

List available plans

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty ^(?!gid://).+$

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update plan

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty ^(?!gid://).+$
Request Body schema: application/json
Any of
plan
required
string non-empty
date
required
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "date": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{ }

List available shipping methods

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update shipping method

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty
Request Body schema: application/json
required
shippingMethodHandle
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "shippingMethodHandle": "string"
}

Response samples

Content type
application/json
{ }

Update box products

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty
Request Body schema: application/json
required
parentId
required
string non-empty
required
Array of objects
shippingMethodHandle
string non-empty

Responses

Request samples

Content type
application/json
{
  • "parentId": "string",
  • "items": [
    ],
  • "shippingMethodHandle": "string"
}

Response samples

Content type
application/json
{ }

Get last order

Get last order

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty ^(?!gid://).+$

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lineItems": [
    ]
}

Line items

Add line item

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty
Request Body schema: application/json
required
productVariantId
required
string non-empty
quantity
number >= 1
renewalLimit
number >= 1
shippingMethodHandle
string non-empty

Responses

Request samples

Content type
application/json
{
  • "productVariantId": "string",
  • "quantity": 1,
  • "renewalLimit": 1,
  • "shippingMethodHandle": "string"
}

Response samples

Content type
application/json
{ }

List available products

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty
lineId
required
string non-empty
query Parameters
q
string non-empty
string or string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update line item

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty
lineId
required
string non-empty
Request Body schema: application/json
Any of
productVariantId
required
string non-empty
quantity
required
integer >= 1
shippingMethodHandle
string non-empty

Responses

Request samples

Content type
application/json
{
  • "quantity": 1,
  • "shippingMethodHandle": "string"
}

Response samples

Content type
application/json
{ }

Delete line item

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty
lineId
required
string non-empty
Request Body schema: application/json
One of
null

Responses

Request samples

Content type
application/json
{
  • "shippingMethodHandle": "string"
}

Response samples

Content type
application/json
{ }

Discounts

Add cancellation discount

Add cancellation discount

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty ^(?!gid://).+$

Responses

Response samples

Content type
application/json
{ }

Apply discount

Apply discount

Authorizations:
(BearerAuthAppProxy)
path Parameters
contractId
required
string non-empty \d+
Request Body schema: application/json
required
code
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "code": "string"
}

Settings

Get settings

Get settings

Authorizations:
(BearerAuthAppProxy)
path Parameters
lang
required
string
Enum: "pl" "en" "de" "nl"

Responses

Response samples

Content type
application/json
{
  • "customerPortal": {
    },
  • "retention": {
    }
}

Introduction

Welcome to the Admin API Reference. This API allows you to view and manage all subscriptions in your application. With it, you can access detailed subscription information, and perform operations such as creating, updating, and cancelling subscriptions. This guide will provide detailed instructions on how to use the various endpoints and data models, making it easier than ever to integrate your custom workflows with the platform.

Authorization

The Admin API uses token based authentication, every request must include the token in the X-Juo-Access-Token header. The API tokens can be obtained in the Settings page.

General

Admin related end-points

/merchant/product-ids

Authorizations:
AccessToken

Responses

Response samples

Content type
application/json
[
  • "string"
]

/merchant/products/by-ids

Authorizations:
AccessToken
query Parameters
ids
required
Array of strings[ items non-empty ]

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/products

Authorizations:
AccessToken
query Parameters
title
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/memberships

Authorizations:
AccessToken

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "memberships": [
    ]
}

/merchant/memberships/enable

Authorizations:
AccessToken
Request Body schema: application/json
required
productId
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "productId": "string"
}

/merchant/tiered-discount/{id}

Authorizations:
AccessToken
path Parameters
id
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "title": "string",
  • "message": "string",
  • "status": "ACTIVE",
  • "variants": [
    ],
  • "type": "FIXED_AMOUNT",
  • "tiers": [
    ],
  • "combineLines": true,
  • "excludeSubscriptions": true,
  • "isDeleted": true,
  • "combinesWith": {
    }
}

/merchant/tiered-discount/{id}

Authorizations:
AccessToken
path Parameters
id
required
string non-empty
Request Body schema: application/json
title
string
message
string
status
string
Enum: "ACTIVE" "INACTIVE"
Array of objects
type
string
Enum: "FIXED_AMOUNT" "PERCENTAGE"
Array of objects
combineLines
boolean
excludeSubscriptions
boolean
object

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "message": "string",
  • "status": "ACTIVE",
  • "variants": [
    ],
  • "type": "FIXED_AMOUNT",
  • "tiers": [
    ],
  • "combineLines": true,
  • "excludeSubscriptions": true,
  • "combinesWith": {
    }
}

/merchant/tiered-discounts/{id}

Authorizations:
AccessToken
path Parameters
id
required
string non-empty

Responses

/merchant/tiered-discounts

Authorizations:
AccessToken
Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "discount": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string"
}

/merchant/tiered-discounts

Authorizations:
AccessToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/customers/{id}

Authorizations:
AccessToken
path Parameters
id
required
string non-empty
query Parameters
after
string
limit
integer [ 1 .. 50 ]
before
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "displayName": "string",
  • "email": "string"
}

/merchant/eligible-for-subscriptions

Authorizations:
AccessToken

Responses

Response samples

Content type
application/json
true

/merchant/info

Authorizations:
AccessToken

Responses

Response samples

Content type
application/json
{}

Activity log

/merchant/activity-log

Authorizations:
AccessToken
query Parameters
after
string
limit
integer [ 1 .. 50 ]
before
string
start
string <date>
end
string <date>
contractId
string non-empty

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Billing plans

/merchant/billing-plans/available

Authorizations:
AccessToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/billing-plans

Authorizations:
AccessToken
Request Body schema: application/json
required
required
string or string or string
redirectPath
required
string <uri-reference>

Responses

Request samples

Content type
application/json
{
  • "tier": "developer",
  • "redirectPath": "../dictionary"
}

Response samples

Content type
application/json
{
  • "confirmationUrl": null
}

Build-a-box

/merchant/boxes/{id}

Authorizations:
AccessToken
path Parameters
id
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "title": "string",
  • "message": "string",
  • "status": "ACTIVE",
  • "parentProduct": "string",
  • "minProductsCount": 0,
  • "minProductsCountForFreeProduct": 1,
  • "variants": [
    ],
  • "tiers": [
    ],
  • "freeVariants": [
    ],
  • "isDeleted": true,
  • "combinesWith": {
    }
}

/merchant/boxes/{id}

Authorizations:
AccessToken
path Parameters
id
required
string non-empty
Request Body schema: application/json
title
string
message
string
status
string
Enum: "ACTIVE" "INACTIVE"
parentProduct
string
minProductsCount
number
minProductsCountForFreeProduct
number >= 1
Array of objects
Array of objects
Array of objects
object

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "message": "string",
  • "status": "ACTIVE",
  • "parentProduct": "string",
  • "minProductsCount": 0,
  • "minProductsCountForFreeProduct": 1,
  • "variants": [
    ],
  • "tiers": [
    ],
  • "freeVariants": [
    ],
  • "combinesWith": {
    }
}

/merchant/boxes/{id}

Authorizations:
AccessToken
path Parameters
id
required
string non-empty

Responses

/merchant/boxes

Authorizations:
AccessToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/boxes

Authorizations:
AccessToken
Request Body schema: application/json
required
title
required
string
message
required
string
status
required
string
Enum: "ACTIVE" "INACTIVE"
parentProduct
required
string
minProductsCount
required
number
minProductsCountForFreeProduct
required
number >= 1
required
Array of objects
required
Array of objects
required
Array of objects
required
object

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "message": "string",
  • "status": "ACTIVE",
  • "parentProduct": "string",
  • "minProductsCount": 0,
  • "minProductsCountForFreeProduct": 1,
  • "variants": [
    ],
  • "tiers": [
    ],
  • "freeVariants": [
    ],
  • "combinesWith": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string"
}

Curated boxes

/merchant/curated-boxes

Authorizations:
AccessToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/curated-boxes

Authorizations:
AccessToken
Request Body schema: application/json
required
parentProductId
required
string^\d+$
required
object
required
null or object

Responses

Request samples

Content type
application/json
{
  • "parentProductId": "string",
  • "sellingPlan": {
    },
  • "prepaid": { }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

/merchant/curated-boxes/{id}

Authorizations:
AccessToken
path Parameters
id
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "parentProduct": "string",
  • "sellingPlan": {
    },
  • "prepaid": {
    },
  • "steps": [
    ]
}

/merchant/curated-boxes/{id}

Authorizations:
AccessToken
path Parameters
id
required
string <uuid> non-empty
Request Body schema: application/json
parentProductId
string^\d+$
object
null or object

Responses

Request samples

Content type
application/json
{
  • "parentProductId": "string",
  • "sellingPlan": {
    },
  • "prepaid": { }
}

/merchant/curated-boxes/{id}

Authorizations:
AccessToken
path Parameters
id
required
string non-empty

Responses

/merchant/curated-boxes/{id}/steps

Authorizations:
AccessToken
path Parameters
id
required
string <uuid> non-empty
Request Body schema: application/json
required
title
required
string non-empty
required
Array of objects
startDay
string <date>

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "variants": [
    ],
  • "startDay": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

/merchant/curated-boxes/{id}/steps/{stepId}

Authorizations:
AccessToken
path Parameters
id
required
string <uuid> non-empty
stepId
required
string <uuid> non-empty
Request Body schema: application/json
title
string non-empty
Array of objects

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "variants": [
    ]
}

Customers

/merchant/customers

Authorizations:
AccessToken
query Parameters
after
string
limit
integer [ 1 .. 50 ]
before
string
q
string non-empty
status
Array of strings non-empty
Items Enum: "ACTIVE" "CANCELLED" "EXPIRED" "FAILED" "NEVER_SUBSCRIBED" "PAUSED"
string or string
reverse
boolean

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/customers/export

Authorizations:
AccessToken

Responses

Response samples

Content type
application/json

/merchant/customers/export

Authorizations:
AccessToken
query Parameters
token
required
string

Responses

/merchant/customers/{id}/subscriptions

Authorizations:
AccessToken
path Parameters
id
required
string non-empty
query Parameters
after
string
limit
integer [ 1 .. 50 ]
before
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/customers/{id}/delegated-token

Authorizations:
AccessToken
path Parameters
id
required
string non-empty
Request Body schema: application/json
expiresIn
integer ( 0 .. 259200000 ]

Responses

Request samples

Content type
application/json
{
  • "expiresIn": 259200000
}

Response samples

Content type
application/json
{}

Analytics

/merchant/dashboard/subscriptions/retention/summary

Authorizations:
AccessToken
query Parameters
start
required
string <date>
end
required
string <date>
required
string or string

Responses

Response samples

Content type
application/json
null

/merchant/dashboard/subscriptions/retention

Authorizations:
AccessToken
query Parameters
start
required
string <date>
end
required
string <date>
required
string or string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/dashboard/subscriptions/retention/forecast

Authorizations:
AccessToken
query Parameters
start
required
string <date>
end
required
string <date>
required
string or string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/dashboard/subscriptions/active/summary

Authorizations:
AccessToken
query Parameters
start
required
string <date>
end
required
string <date>

Responses

Response samples

Content type
application/json
null

/merchant/dashboard/subscriptions/active/forecast/summary

Authorizations:
AccessToken
query Parameters
start
required
string <date>
end
required
string <date>

Responses

Response samples

Content type
application/json
null

/merchant/dashboard/subscriptions/by-status

Authorizations:
AccessToken
query Parameters
start
required
string <date>
end
required
string <date>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/dashboard/subscriptions/by-status/summary

Authorizations:
AccessToken
query Parameters
start
required
string <date>
end
required
string <date>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/dashboard/subscriptions/by-status/forecast

Authorizations:
AccessToken
query Parameters
start
required
string <date>
end
required
string <date>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/dashboard/revenue/summary

Authorizations:
AccessToken
query Parameters
start
required
string <date>
end
required
string <date>
type
required
string
Enum: "all" "purchases" "renewals"

Responses

Response samples

Content type
application/json
null

/merchant/dashboard/revenue

Authorizations:
AccessToken
query Parameters
start
required
string <date>
end
required
string <date>
type
required
string
Enum: "all" "purchases" "renewals"

Responses

Response samples

Content type
application/json
[ ]

/merchant/dashboard/revenue/forecast

Authorizations:
AccessToken
query Parameters
start
required
string <date>
end
required
string <date>
type
required
string
Enum: "all" "purchases" "renewals"

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/dashboard/revenue/forecast/summary

Authorizations:
AccessToken
query Parameters
start
required
string <date>
end
required
string <date>
type
required
string
Enum: "all" "purchases" "renewals"

Responses

Response samples

Content type
application/json
null

/merchant/dashboard/subscriptions/summary

Authorizations:
AccessToken
query Parameters
start
required
string <date>
end
required
string <date>

Responses

Response samples

Content type
application/json
{
  • "new": { },
  • "retained": { }
}

/merchant/dashboard/subscriptions/forecast/summary

Authorizations:
AccessToken
query Parameters
start
required
string <date>
end
required
string <date>

Responses

Response samples

Content type
application/json
{
  • "new": { },
  • "retained": { }
}

/merchant/dashboard/products/top

Authorizations:
AccessToken
query Parameters
limit
required
integer
Default: 6
page
required
integer
Default: 0

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/dashboard/subscriptions/aov/summary

Authorizations:
AccessToken

Responses

Response samples

Content type
application/json
null

/merchant/dashboard/subscriptions/average-duration/summary

Authorizations:
AccessToken

Responses

Response samples

Content type
application/json
null

Returns the aggregated value from the specified ti

Returns the aggregated value from the specified time range

Authorizations:
AccessToken
path Parameters
required
string or string or string or string
Request Body schema: application/json
required
start
required
string <date-time>
end
required
string <date-time>
required
string or string or string or string or string or string
object

Responses

Request samples

Content type
application/json
{
  • "start": "2019-08-24T14:15:22Z",
  • "end": "2019-08-24T14:15:22Z",
  • "aggregate": "min",
  • "dimensions": {
    }
}

Response samples

Content type
application/json
{
  • "start": "2019-08-24T14:15:22Z",
  • "end": "2019-08-24T14:15:22Z",
  • "value": 0
}

Returns the aggregated values from most of every t

Returns the aggregated values from most of every time window within the specified time range

Authorizations:
AccessToken
path Parameters
required
string or string or string or string
Request Body schema: application/json
required
start
required
string <date-time>
end
required
string <date-time>
required
string or string or string or string
required
string or string or string or string or string or string
object

Responses

Request samples

Content type
application/json
{
  • "start": "2019-08-24T14:15:22Z",
  • "end": "2019-08-24T14:15:22Z",
  • "window": "hour",
  • "aggregate": "min",
  • "dimensions": {
    }
}

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/dashboard/products

Authorizations:
AccessToken
query Parameters
after
string
limit
integer [ 1 .. 50 ]
before
string
required
string or string or string or string or string
Default: "active"
order
required
string
Default: "desc"
start
required
string <date-time>
end
required
string <date-time>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/dashboard/products/export

Authorizations:
AccessToken

Responses

Response samples

Content type
application/json

/merchant/dashboard/products/export

Authorizations:
AccessToken
query Parameters
token
required
string

Responses

/merchant/dashboard/build-a-box/products

Authorizations:
AccessToken
query Parameters
after
string
limit
integer [ 1 .. 50 ]
before
string
required
string or string or string or string
Default: "totalQuantity"
order
required
string
Default: "desc"
start
required
string <date-time>
end
required
string <date-time>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Dynamic boxes

/merchant/dynamic-boxes/{id}

Authorizations:
AccessToken
path Parameters
id
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "title": "string",
  • "status": "inactive",
  • "parentProduct": "string",
  • "steps": [
    ],
  • "isDeleted": true,
  • "repeatFrom": 0,
  • "useParentProductPrice": true,
  • "removeParentProductWhenFinished": true,
  • "fulfillParentProduct": true,
  • "hideProducts": true
}

/merchant/dynamic-boxes/{id}

Authorizations:
AccessToken
path Parameters
id
required
string non-empty
Request Body schema: application/json
title
string non-empty
status
string
Enum: "inactive" "active"
parentProduct
string non-empty
Array of objects
repeatFrom
integer >= 0
useParentProductPrice
boolean
removeParentProductWhenFinished
boolean
fulfillParentProduct
boolean
hideProducts
boolean

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "status": "inactive",
  • "parentProduct": "string",
  • "steps": [
    ],
  • "repeatFrom": 0,
  • "useParentProductPrice": true,
  • "removeParentProductWhenFinished": true,
  • "fulfillParentProduct": true,
  • "hideProducts": true
}

/merchant/dynamic-boxes/{id}

Authorizations:
AccessToken
path Parameters
id
required
string non-empty

Responses

/merchant/dynamic-boxes

Authorizations:
AccessToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/dynamic-boxes

Authorizations:
AccessToken
Request Body schema: application/json
required
title
required
string non-empty
status
required
string
Enum: "inactive" "active"
parentProduct
required
string non-empty
required
Array of objects
repeatFrom
required
integer >= 0
useParentProductPrice
required
boolean
removeParentProductWhenFinished
required
boolean
fulfillParentProduct
required
boolean
hideProducts
required
boolean

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "status": "inactive",
  • "parentProduct": "string",
  • "steps": [
    ],
  • "repeatFrom": 0,
  • "useParentProductPrice": true,
  • "removeParentProductWhenFinished": true,
  • "fulfillParentProduct": true,
  • "hideProducts": true
}

Response samples

Content type
application/json
{
  • "id": "string"
}

Export

/merchant/export/subscriptions

Authorizations:
AccessToken
query Parameters
after
string
limit
integer [ 1 .. 50 ]
before
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Products

/merchant/products/{id}

Authorizations:
AccessToken
path Parameters
id
required
string non-empty \d+

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "title": "string",
  • "featuredImage": {
    },
  • "hasOnlyDefaultVariant": true
}

/merchant/products/by-variant/{id}

Authorizations:
AccessToken
path Parameters
id
required
string non-empty \d+

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "title": "string",
  • "featuredImage": {
    },
  • "hasOnlyDefaultVariant": true
}

Subscription plans

/merchant/selling-plan-groups

Authorizations:
AccessToken
query Parameters
after
string
limit
integer [ 1 .. 50 ]
before
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/selling-plan-groups

Authorizations:
AccessToken
Request Body schema: application/json
required
name
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": 1
}

/merchant/selling-plan-groups/{id}

Authorizations:
AccessToken
path Parameters
id
required
number >= 1

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "string",
  • "merchantCode": "string",
  • "description": "string"
}

/merchant/selling-plan-groups/{id}

Authorizations:
AccessToken
path Parameters
id
required
number >= 1
Request Body schema: application/json
name
string non-empty
merchantCode
string non-empty
description
string or null non-empty

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "merchantCode": "string",
  • "description": "string"
}

/merchant/selling-plan-groups/{id}

Authorizations:
AccessToken
path Parameters
id
required
number >= 1

Responses

/merchant/selling-plan-groups/{id}/product-variants

Authorizations:
AccessToken
path Parameters
id
required
number >= 1

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/selling-plan-groups/{id}/product-variants

Authorizations:
AccessToken
path Parameters
id
required
number >= 1
Request Body schema: application/json
required
productVariantIds
required
Array of integers non-empty [ items >= 1 ]

Responses

Request samples

Content type
application/json
{
  • "productVariantIds": [
    ]
}

/merchant/selling-plan-groups/{id}/product-variants

Authorizations:
AccessToken
path Parameters
id
required
number >= 1
Request Body schema: application/json
required
productVariantIds
required
Array of integers non-empty [ items >= 1 ]

Responses

Request samples

Content type
application/json
{
  • "productVariantIds": [
    ]
}

/merchant/selling-plan-groups/{id}/rules

Authorizations:
AccessToken
path Parameters
id
required
string^\d+$

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/selling-plan-groups/{id}/rules

Authorizations:
AccessToken
path Parameters
id
required
string^\d+$
Request Body schema: application/json
required
required
object or object or object or object or object or object or object or object or object
required
object or object or object or object or object

Responses

Request samples

Content type
application/json
{
  • "condition": {
    },
  • "action": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string"
}

/merchant/selling-plan-groups/{id}/rules/{ruleId}

Authorizations:
AccessToken
path Parameters
id
required
string^\d+$
ruleId
required
string
Request Body schema: application/json
object or object or object or object or object or object or object or object or object
object or object or object or object or object

Responses

Request samples

Content type
application/json
{
  • "condition": {
    },
  • "action": {
    }
}

/merchant/selling-plan-groups/{id}/rules/{ruleId}

Authorizations:
AccessToken
path Parameters
id
required
string^\d+$
ruleId
required
string non-empty

Responses

/merchant/selling-plan-groups/{id}/products

Authorizations:
AccessToken
path Parameters
id
required
number >= 1

Responses

Response samples

Content type
application/json
[
  • "string"
]

/merchant/selling-plan-groups/{id}/products

Authorizations:
AccessToken
path Parameters
id
required
number >= 1
Request Body schema: application/json
required
productIds
required
Array of integers non-empty [ items >= 1 ]

Responses

Request samples

Content type
application/json
{
  • "productIds": [
    ]
}

/merchant/selling-plan-groups/{id}/products

Authorizations:
AccessToken
path Parameters
id
required
number >= 1
Request Body schema: application/json
required
productIds
required
Array of integers non-empty [ items >= 1 ]

Responses

Request samples

Content type
application/json
{
  • "productIds": [
    ]
}

/merchant/selling-plan-groups/{id}/selling-plans

Authorizations:
AccessToken
path Parameters
id
required
number >= 1
query Parameters
after
string
limit
integer [ 1 .. 50 ]
before
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/selling-plan-groups/{id}/selling-plans

Authorizations:
AccessToken
path Parameters
id
required
number >= 1
Request Body schema: application/json
required
name
required
string non-empty
required
object
required
object
Array of objects or objects

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "billingPolicy": {
    },
  • "deliveryPolicy": {
    },
  • "pricingPolicies": [
    ]
}

/merchant/selling-plan-groups/{id}/selling-plans/{planId}

Authorizations:
AccessToken
path Parameters
id
required
number >= 1
planId
required
number >= 1
Request Body schema: application/json
required
name
required
string non-empty
required
object
required
object
Array of objects or objects

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "billingPolicy": {
    },
  • "deliveryPolicy": {
    },
  • "pricingPolicies": [
    ]
}

/merchant/selling-plan-groups/{id}/selling-plans/{planId}

Authorizations:
AccessToken
path Parameters
id
required
number >= 1
planId
required
number >= 1

Responses

Settings

/merchant/settings/{lang}

Authorizations:
AccessToken
path Parameters
lang
required
string
Enum: "pl" "en" "de" "nl"
Request Body schema: application/json
object
object
object
object
object
object
object
object
object
object

Responses

Request samples

Content type
application/json
{
  • "emailTemplates": {
    },
  • "smsTemplates": {
    },
  • "renewalConditions": {
    },
  • "customerPortal": {
    },
  • "retention": {
    },
  • "customer": {
    },
  • "order": {
    },
  • "subscription": {
    },
  • "integrations": {
    },
  • "subscriptionIntent": {
    }
}

/merchant/settings/{lang}

Authorizations:
AccessToken
path Parameters
lang
required
string
Enum: "pl" "en" "de" "nl"
Request Body schema: application/json
required
key
required
string
value
required
any

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "value": null
}

/merchant/settings/{lang}

Authorizations:
AccessToken
path Parameters
lang
required
string
Enum: "pl" "en" "de" "nl"
query Parameters
initial
boolean

Responses

Response samples

Content type
application/json
{
  • "emailTemplates": {
    },
  • "smsTemplates": {
    },
  • "renewalConditions": {
    },
  • "customerPortal": {
    },
  • "retention": {
    },
  • "customer": {
    },
  • "order": {
    },
  • "subscription": {
    },
  • "integrations": {
    },
  • "subscriptionIntent": {
    }
}

/merchant/settings/notifications/request-sms-notifications

Authorizations:
AccessToken

Responses

/merchant/settings/onboarding

Authorizations:
AccessToken
query Parameters
check
required
boolean

Responses

Response samples

Content type
application/json
{
  • "onboarding": {
    }
}

/merchant/settings/onboarding/finish

Authorizations:
AccessToken

Responses

Subscriptions

/merchant/subscriptions

Authorizations:
AccessToken
query Parameters
after
string
limit
integer [ 1 .. 50 ]
before
string
q
string non-empty
status
Array of strings non-empty
Items Enum: "ACTIVE" "CANCELLED" "EXPIRED" "FAILED" "PAUSED"
string or string or string or string or string
reverse
boolean

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/subscriptions/{contractId}

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "ref": "string",
  • "status": "ACTIVE",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "customer": { },
  • "nextBillingDate": "2019-08-24T14:15:22Z",
  • "nextFulfillment": "2019-08-24T14:15:22Z",
  • "nextBillingAttempt": {
    },
  • "lastBillingAttempt": {
    },
  • "deliveryPolicy": {
    },
  • "billingPolicy": {
    },
  • "lineCount": 1,
  • "lines": [
    ],
  • "deliveryMethod": {
    },
  • "deliveryPrice": {
    },
  • "deliveryDiscountedPrice": "string",
  • "lastPaymentStatus": "FAILED",
  • "customerPaymentMethod": {
    },
  • "isEditable": true,
  • "requiredBillingCyclesLeft": 0,
  • "discounts": [
    ],
  • "note": "string",
  • "hasCancellationDiscount": true,
  • "cancellationReason": "string",
  • "currentCycle": 0,
  • "remainingOrdersCount": 1,
  • "customAttributes": [
    ]
}

/merchant/subscriptions/{contractId}/activity

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/subscriptions/{contractId}/order-now

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty

/merchant/subscriptions/{contractId}/retry

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "result": "success"
}

/merchant/subscriptions/{contractId}/skip

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty

Responses

/merchant/subscriptions/{contractId}/resume

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty

Responses

/merchant/subscriptions/{contractId}/pause

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty

Responses

/merchant/subscriptions/{contractId}/shipping-address

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty
Request Body schema: application/json
required
firstName
required
string
lastName
required
string
address1
required
string
address2
string
zip
required
string
city
required
string
countryCode
required
string = 2 characters
province
string
phone
string

Responses

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "address1": "string",
  • "address2": "string",
  • "zip": "string",
  • "city": "string",
  • "countryCode": "st",
  • "province": "string",
  • "phone": "string"
}

/merchant/subscriptions/{contractId}/shipping-rate

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty
Request Body schema: application/json
required
deliveryPrice
required
string non-empty ^(?=.)\d*(\.\d+)?$

Responses

Request samples

Content type
application/json
{
  • "deliveryPrice": "string"
}

/merchant/subscriptions/{contractId}/cancel

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty
Request Body schema: application/json
sendEmail
boolean

Responses

Request samples

Content type
application/json
{
  • "sendEmail": true
}

/merchant/subscriptions/{contractId}/reactivate

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty

Responses

/merchant/subscriptions/{contractId}/available-shipping-methods

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/subscriptions/{contractId}/shipping-method

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty
Request Body schema: application/json
required
shippingMethodHandle
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "shippingMethodHandle": "string"
}

/merchant/subscriptions/{contractId}/lines

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty
Request Body schema: application/json
required
productVariantId
required
string non-empty
renewalLimit
number >= 1

Responses

Request samples

Content type
application/json
{
  • "productVariantId": "string",
  • "renewalLimit": 1
}

/merchant/subscriptions/{contractId}/lines/{lineId}

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty
lineId
required
string non-empty
Request Body schema: application/json
productVariantId
string non-empty
quantity
integer >= 1
Array of objects

Responses

Request samples

Content type
application/json
{
  • "productVariantId": "string",
  • "quantity": 1,
  • "customAttributes": [
    ]
}

/merchant/subscriptions/{contractId}/lines/{lineId}

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty
lineId
required
string non-empty

Responses

/merchant/subscriptions/{contractId}/plans

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/subscriptions/{contractId}/plan

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty
Request Body schema: application/json
string or object
date
string <date-time>
currentCycle
integer >= 0

Request samples

Content type
application/json
{
  • "plan": "string",
  • "date": "2019-08-24T14:15:22Z",
  • "currentCycle": 0
}

/merchant/subscriptions/{contractId}/note

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty
Request Body schema: application/json
required
note
required
null or string

Responses

Request samples

Content type
application/json
{
  • "note": null
}

/merchant/subscriptions/{contractId}/lines/{lineId}/available-products

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty
lineId
required
string non-empty
query Parameters
q
string non-empty
string or string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/merchant/subscriptions/export

Authorizations:
AccessToken

Responses

Response samples

Content type
application/json

/merchant/subscriptions/export

Authorizations:
AccessToken
query Parameters
token
required
string

Responses

/merchant/subscriptions/{contractId}/discounts

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty ^(?!gid://).+$
Request Body schema: application/json
required
lines
Array of strings non-empty [\d+]
usageLimit
integer >= 1
title
required
string non-empty
required
object or object

Responses

Request samples

Content type
application/json
{
  • "lines": [
    ],
  • "usageLimit": 1,
  • "title": "string",
  • "value": {
    }
}

/merchant/subscriptions/{contractId}/discounts/{discountId}

Authorizations:
AccessToken
path Parameters
contractId
required
string non-empty ^(?!gid://).+$
discountId
required
string non-empty

Responses

Variants

/merchant/variants/{id}

Authorizations:
AccessToken
path Parameters
id
required
string non-empty \d+

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "title": "string",
  • "sku": "string",
  • "image": {
    }
}

Memberships

/merchant/memberships

Authorizations:
AccessToken

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "memberships": [
    ]
}

/merchant/memberships/enable

Authorizations:
AccessToken
Request Body schema: application/json
required
productId
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "productId": "string"
}

General

Payment related end-points

Get renewal status

Get renewal status

path Parameters
renewalId
required
string non-empty ^(?!gid://).+$

Responses

Response samples

Content type
application/json
{
  • "paid": true,
  • "store": {
    },
  • "amount": "string",
  • "currencyCode": "AED",
  • "billingAttemptId": null,
  • "availablePaymentMethods": [
    ],
  • "lines": [
    ],
  • "deliveryPrice": "string"
}

Get billing attempt status

Get billing attempt status

path Parameters
billingAttemptId
required
string non-empty ^(?!gid://).+$

Responses

Response samples

Content type
application/json
{
  • "amount": null,
  • "currencyCode": { },
  • "payment": {
    }
}

Charge

Charge

path Parameters
renewalId
required
string non-empty ^(?!gid://).+$
Request Body schema: application/json
Any of
method
required
string
Value: "blik"
code
required
string = 6 characters

Responses

Request samples

Content type
application/json
{
  • "method": "blik",
  • "alias": "string"
}

Response samples

Content type
application/json
{
  • "billingAttemptId": "string"
}

Get checkout status

Get checkout status

path Parameters
token
required
string non-empty

Responses

Charge

Charge

path Parameters
token
required
string non-empty
Request Body schema: application/json
required
method
required
string
Value: "blik"
code
required
string = 6 characters

Responses

Request samples

Content type
application/json
{
  • "method": "blik",
  • "code": "string"
}

Renewals

Get renewal status

Get renewal status

path Parameters
renewalId
required
string non-empty ^(?!gid://).+$

Responses

Response samples

Content type
application/json
{
  • "paid": true,
  • "store": {
    },
  • "amount": "string",
  • "currencyCode": "AED",
  • "billingAttemptId": null,
  • "availablePaymentMethods": [
    ],
  • "lines": [
    ],
  • "deliveryPrice": "string"
}

Charge

Charge

path Parameters
renewalId
required
string non-empty ^(?!gid://).+$
Request Body schema: application/json
Any of
method
required
string
Value: "blik"
code
required
string = 6 characters

Responses

Request samples

Content type
application/json
{
  • "method": "blik",
  • "alias": "string"
}

Response samples

Content type
application/json
{
  • "billingAttemptId": "string"
}

Billing attempts

Get billing attempt status

Get billing attempt status

path Parameters
billingAttemptId
required
string non-empty ^(?!gid://).+$

Responses

Response samples

Content type
application/json
{
  • "amount": null,
  • "currencyCode": { },
  • "payment": {
    }
}

Checkout

Get checkout status

Get checkout status

path Parameters
token
required
string non-empty

Responses

Charge

Charge

path Parameters
token
required
string non-empty
Request Body schema: application/json
required
method
required
string
Value: "blik"
code
required
string = 6 characters

Responses

Request samples

Content type
application/json
{
  • "method": "blik",
  • "code": "string"
}

Subscriptions

Subscription created Webhook

Request Body schema: application/json
id
required
string non-empty ^(?!gid://).+$
ref
required
string non-empty
status
required
string
Enum: "ACTIVE" "CANCELLED" "EXPIRED" "FAILED" "PAUSED"
createdAt
required
string <date-time>
updatedAt
required
string <date-time>
required
null or object
nextBillingDate
string <date-time>
nextFulfillment
string <date-time>
object
object
required
object
required
object
lineCount
required
integer >= 1
required
Array of objects
object
required
object
deliveryDiscountedPrice
string
lastPaymentStatus
string
Enum: "FAILED" "SUCCEEDED"
object
isEditable
required
boolean
requiredBillingCyclesLeft
integer >= 0
Array of objects
note
string
hasCancellationDiscount
boolean
cancellationReason
string non-empty
currentCycle
required
integer >= 0
remainingOrdersCount
integer >= 1
Array of objects

Request samples

Content type
application/json
{
  • "id": "string",
  • "ref": "string",
  • "status": "ACTIVE",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "customer": { },
  • "nextBillingDate": "2019-08-24T14:15:22Z",
  • "nextFulfillment": "2019-08-24T14:15:22Z",
  • "nextBillingAttempt": {
    },
  • "lastBillingAttempt": {
    },
  • "deliveryPolicy": {
    },
  • "billingPolicy": {
    },
  • "lineCount": 1,
  • "lines": [
    ],
  • "deliveryMethod": {
    },
  • "deliveryPrice": {
    },
  • "deliveryDiscountedPrice": "string",
  • "lastPaymentStatus": "FAILED",
  • "customerPaymentMethod": {
    },
  • "isEditable": true,
  • "requiredBillingCyclesLeft": 0,
  • "discounts": [
    ],
  • "note": "string",
  • "hasCancellationDiscount": true,
  • "cancellationReason": "string",
  • "currentCycle": 0,
  • "remainingOrdersCount": 1,
  • "customAttributes": [
    ]
}

Subscription updated Webhook

Request Body schema: application/json
id
required
string non-empty ^(?!gid://).+$
ref
required
string non-empty
status
required
string
Enum: "ACTIVE" "CANCELLED" "EXPIRED" "FAILED" "PAUSED"
createdAt
required
string <date-time>
updatedAt
required
string <date-time>
required
null or object
nextBillingDate
string <date-time>
nextFulfillment
string <date-time>
object
object
required
object
required
object
lineCount
required
integer >= 1
required
Array of objects
object
required
object
deliveryDiscountedPrice
string
lastPaymentStatus
string
Enum: "FAILED" "SUCCEEDED"
object
isEditable
required
boolean
requiredBillingCyclesLeft
integer >= 0
Array of objects
note
string
hasCancellationDiscount
boolean
cancellationReason
string non-empty
currentCycle
required
integer >= 0
remainingOrdersCount
integer >= 1
Array of objects

Request samples

Content type
application/json
{
  • "id": "string",
  • "ref": "string",
  • "status": "ACTIVE",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "customer": { },
  • "nextBillingDate": "2019-08-24T14:15:22Z",
  • "nextFulfillment": "2019-08-24T14:15:22Z",
  • "nextBillingAttempt": {
    },
  • "lastBillingAttempt": {
    },
  • "deliveryPolicy": {
    },
  • "billingPolicy": {
    },
  • "lineCount": 1,
  • "lines": [
    ],
  • "deliveryMethod": {
    },
  • "deliveryPrice": {
    },
  • "deliveryDiscountedPrice": "string",
  • "lastPaymentStatus": "FAILED",
  • "customerPaymentMethod": {
    },
  • "isEditable": true,
  • "requiredBillingCyclesLeft": 0,
  • "discounts": [
    ],
  • "note": "string",
  • "hasCancellationDiscount": true,
  • "cancellationReason": "string",
  • "currentCycle": 0,
  • "remainingOrdersCount": 1,
  • "customAttributes": [
    ]
}

Subscription updated Webhook

Request Body schema: application/json
id
required
string non-empty ^(?!gid://).+$
ref
required
string non-empty
status
required
string
Enum: "ACTIVE" "CANCELLED" "EXPIRED" "FAILED" "PAUSED"
createdAt
required
string <date-time>
updatedAt
required
string <date-time>
required
null or object
nextBillingDate
string <date-time>
nextFulfillment
string <date-time>
object
object
required
object
required
object
lineCount
required
integer >= 1
required
Array of objects
object
required
object
deliveryDiscountedPrice
string
lastPaymentStatus
string
Enum: "FAILED" "SUCCEEDED"
object
isEditable
required
boolean
requiredBillingCyclesLeft
integer >= 0
Array of objects
note
string
hasCancellationDiscount
boolean
cancellationReason
string non-empty
currentCycle
required
integer >= 0
remainingOrdersCount
integer >= 1
Array of objects

Request samples

Content type
application/json
{
  • "id": "string",
  • "ref": "string",
  • "status": "ACTIVE",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "customer": { },
  • "nextBillingDate": "2019-08-24T14:15:22Z",
  • "nextFulfillment": "2019-08-24T14:15:22Z",
  • "nextBillingAttempt": {
    },
  • "lastBillingAttempt": {
    },
  • "deliveryPolicy": {
    },
  • "billingPolicy": {
    },
  • "lineCount": 1,
  • "lines": [
    ],
  • "deliveryMethod": {
    },
  • "deliveryPrice": {
    },
  • "deliveryDiscountedPrice": "string",
  • "lastPaymentStatus": "FAILED",
  • "customerPaymentMethod": {
    },
  • "isEditable": true,
  • "requiredBillingCyclesLeft": 0,
  • "discounts": [
    ],
  • "note": "string",
  • "hasCancellationDiscount": true,
  • "cancellationReason": "string",
  • "currentCycle": 0,
  • "remainingOrdersCount": 1,
  • "customAttributes": [
    ]
}

Subscription cancelled Webhook

Request Body schema: application/json
id
required
string non-empty ^(?!gid://).+$
ref
required
string non-empty
status
required
string
Enum: "ACTIVE" "CANCELLED" "EXPIRED" "FAILED" "PAUSED"
createdAt
required
string <date-time>
updatedAt
required
string <date-time>
required
null or object
nextBillingDate
string <date-time>
nextFulfillment
string <date-time>
object
object
required
object
required
object
lineCount
required
integer >= 1
required
Array of objects
object
required
object
deliveryDiscountedPrice
string
lastPaymentStatus
string
Enum: "FAILED" "SUCCEEDED"
object
isEditable
required
boolean
requiredBillingCyclesLeft
integer >= 0
Array of objects
note
string
hasCancellationDiscount
boolean
cancellationReason
string non-empty
currentCycle
required
integer >= 0
remainingOrdersCount
integer >= 1
Array of objects

Request samples

Content type
application/json
{
  • "id": "string",
  • "ref": "string",
  • "status": "ACTIVE",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "customer": { },
  • "nextBillingDate": "2019-08-24T14:15:22Z",
  • "nextFulfillment": "2019-08-24T14:15:22Z",
  • "nextBillingAttempt": {
    },
  • "lastBillingAttempt": {
    },
  • "deliveryPolicy": {
    },
  • "billingPolicy": {
    },
  • "lineCount": 1,
  • "lines": [
    ],
  • "deliveryMethod": {
    },
  • "deliveryPrice": {
    },
  • "deliveryDiscountedPrice": "string",
  • "lastPaymentStatus": "FAILED",
  • "customerPaymentMethod": {
    },
  • "isEditable": true,
  • "requiredBillingCyclesLeft": 0,
  • "discounts": [
    ],
  • "note": "string",
  • "hasCancellationDiscount": true,
  • "cancellationReason": "string",
  • "currentCycle": 0,
  • "remainingOrdersCount": 1,
  • "customAttributes": [
    ]
}

Memberships

Membership started Webhook

Request Body schema: application/json
id
required
string non-empty ^(?!gid://).+$
status
required
string
Enum: "ACTIVE" "INACTIVE" "EXPIRED"
required
object
expiresAt
string <date-time>
required
object

Request samples

Content type
application/json
{
  • "id": "string",
  • "status": "ACTIVE",
  • "customer": {
    },
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "subscription": {
    }
}

Membership renewed Webhook

Request Body schema: application/json
id
required
string non-empty ^(?!gid://).+$
status
required
string
Enum: "ACTIVE" "INACTIVE" "EXPIRED"
required
object
expiresAt
string <date-time>
required
object

Request samples

Content type
application/json
{
  • "id": "string",
  • "status": "ACTIVE",
  • "customer": {
    },
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "subscription": {
    }
}

Membership expired Webhook

Request Body schema: application/json
id
required
string non-empty ^(?!gid://).+$
status
required
string
Enum: "ACTIVE" "INACTIVE" "EXPIRED"
required
object
expiresAt
string <date-time>
required
object

Request samples

Content type
application/json
{
  • "id": "string",
  • "status": "ACTIVE",
  • "customer": {
    },
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "subscription": {
    }
}

UI Components

Work in Progress

There are numerous UI Components that help with creating a custom subscriber portal. These UI Components reduce the pain of building a complex portal from scratch. They provide the necessary I/O logic and offer a high level of flexibility, making it possible to build any subscriber experience without the need to reinvent the wheel.

Components:

  • <Subscription> High-level component that includes all subscription details and available actions. Use this if you don’t want to customize the look and behavior of the subscription pane.
  • <SubscriptionContext> Sets a subscription context, use this if you want to customize the subscription pane and want to use components that require a subscription context.
  • <SubscriptionLines> Requires a subscription context. Displays a list of all subscription lines with available actions per subscription line.
  • <SubscriptionAction> Requires a subscription context. This component triggers a specified action upon interaction with slotted content.

Basic example:

<!-- Just place the component in HTML to show subscription details -->
<Subscription id="1001">

Advanced example:

<SubscriptionContext id="1001">
  <div class="subscription">
    <SubscriptionLines />
    <SubscriptionAction action="add-product">
      <button>+ Add product</button>
    </SubscriptionAction>

    <aside class="subscription__actions">
      <SubscriptionAction action="cancel">
        <button>Cancel</button>
      </SubscriptionAction>
      <SubscriptionAction action="pause">
        <button>Pause</button>
      </SubscriptionAction>
    </aside>
  </div>
</SubscriptionContext>

2021-01

Recharge (2021-01) compatible end-points

/recharge/2021-01/addresses

Authorizations:
AccessToken
query Parameters
page
integer >= 1
Default: 1
limit
integer [ 1 .. 250 ]
Default: 50

Responses

Response samples

Content type
application/json
{
  • "addresses": [
    ]
}

/recharge/2021-01/customers

Authorizations:
AccessToken
query Parameters
page
integer >= 1
Default: 1
limit
integer [ 1 .. 250 ]
Default: 50

Responses

Response samples

Content type
application/json
{
  • "customers": [
    ]
}

/recharge/2021-01/discounts

Authorizations:
AccessToken
query Parameters
page
integer >= 1
Default: 1
limit
integer [ 1 .. 250 ]
Default: 50

Responses

Response samples

Content type
application/json
{
  • "discounts": [
    ]
}

/recharge/2021-01/orders

Authorizations:
AccessToken
query Parameters
page
integer >= 1
Default: 1
limit
integer [ 1 .. 250 ]
Default: 50

Responses

Response samples

Content type
application/json
{
  • "orders": [
    ]
}

/recharge/2021-01/subscriptions

Authorizations:
AccessToken
query Parameters
page
integer >= 1
Default: 1
limit
integer [ 1 .. 250 ]
Default: 50

Responses

Response samples

Content type
application/json
{
  • "subscriptions": [
    ]
}