Get past orders
Retrieves paginated list of past (processed) billing attempts for the whole shop, a subscription contract, or a customer. Includes successful orders, failed attempts, and skipped orders. Upcoming (QUEUED) orders are not included.
Filter Options:
- No filter: Get past orders across all subscription contracts of the shop (use this for bulk sync / data pipelines instead of calling once per contract)
- By contract ID: Get order history for specific subscription
- By customer ID: Get all orders across all customer subscriptions
- If both
contractIdandcustomerIdare passed,contractIdtakes precedence
Pagination:
- Query parameters:
page(zero-based, default 0),size(default 20, recommended max 250) - Results are sorted by attempt time (or billing date when not yet attempted), newest first
- Response headers:
X-Total-Count(total number of records) andLink(next/prev/first/last page URLs) - Keep requesting the next page until the response is an empty array or
pagereaches the last page
Example (all past orders of the shop):
GET /api/external/v2/subscription-billing-attempts/past-orders?page=0&size=250
Notes:
- New orders created while paging shift results between pages; de-duplicate on
id, or use the past orders report endpoint with a fixedtoDayfor a stable window - Line items (
variantList) are served from cached Shopify order data. For orders not yet cached the list may be empty on the first request and is populated on subsequent requests
Order Information:
- Billing attempt status (SUCCESS, FAILED, SKIPPED)
- Shopify order ID for successful attempts
- Billing date and processing date
- Order total and line items
- Error messages for failed attempts
Authentication: Requires valid X-API-Key header
curl --request GET \
--url https://subscription-admin.appstle.com/api/external/v2/subscription-billing-attempts/past-ordersimport requests
url = "https://subscription-admin.appstle.com/api/external/v2/subscription-billing-attempts/past-orders"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://subscription-admin.appstle.com/api/external/v2/subscription-billing-attempts/past-orders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://subscription-admin.appstle.com/api/external/v2/subscription-billing-attempts/past-orders';
const options = {method: 'GET'};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://subscription-admin.appstle.com/api/external/v2/subscription-billing-attempts/past-orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://subscription-admin.appstle.com/api/external/v2/subscription-billing-attempts/past-orders"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://subscription-admin.appstle.com/api/external/v2/subscription-billing-attempts/past-orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body[
{
"retryingNeeded": true,
"shop": "<string>",
"applyUsageCharge": true,
"attemptCount": 123,
"attemptTime": "2023-11-07T05:31:56Z",
"billingAttemptId": "<string>",
"billingAttemptResponseMessage": "<string>",
"billingDate": "2023-11-07T05:31:56Z",
"contractId": 123,
"graphOrderId": "<string>",
"id": 123,
"inventorySkippedAttemptCount": 123,
"inventorySkippedRetryingNeeded": true,
"lastShippingUpdatedAt": "2023-11-07T05:31:56Z",
"orderAmount": 123,
"orderAmountContractCurrency": 123,
"orderAmountShopCurrency": 123,
"orderAmountUSD": 123,
"orderAttributes": [
{
"key": "<string>",
"value": "<string>"
}
],
"orderCancelReason": "CUSTOMER",
"orderCancelledAt": "2023-11-07T05:31:56Z",
"orderClosed": true,
"orderClosedAt": "2023-11-07T05:31:56Z",
"orderConfirmed": true,
"orderDisplayFinancialStatus": "PENDING",
"orderDisplayFulfillmentStatus": "UNFULFILLED",
"orderId": 123,
"orderName": "<string>",
"orderNote": "<string>",
"orderProcessedAt": "2023-11-07T05:31:56Z",
"partialLinesSkipped": "INVENTORY_MANAGEMENT",
"progressAttemptCount": 123,
"recurringChargeId": 123,
"securityChallengeSentStatus": "SENT",
"status": "SUCCESS",
"transactionFailedEmailSentStatus": "SENT",
"transactionFailedSmsSentStatus": "SENT",
"transactionRate": 123,
"upcomingOrderEmailSentStatus": "SENT",
"upcomingOrderSmsSentStatus": "SENT",
"usageChargeStatus": "SUCCESS",
"variantList": [
{
"image": "<string>",
"productId": "<string>",
"productTitle": "<string>",
"quantity": 123,
"swapId": 123,
"title": "<string>",
"variantId": 123,
"variantTitle": "<string>"
}
]
}
][
{
"retryingNeeded": true,
"shop": "<string>",
"applyUsageCharge": true,
"attemptCount": 123,
"attemptTime": "2023-11-07T05:31:56Z",
"billingAttemptId": "<string>",
"billingAttemptResponseMessage": "<string>",
"billingDate": "2023-11-07T05:31:56Z",
"contractId": 123,
"graphOrderId": "<string>",
"id": 123,
"inventorySkippedAttemptCount": 123,
"inventorySkippedRetryingNeeded": true,
"lastShippingUpdatedAt": "2023-11-07T05:31:56Z",
"orderAmount": 123,
"orderAmountContractCurrency": 123,
"orderAmountShopCurrency": 123,
"orderAmountUSD": 123,
"orderAttributes": [
{
"key": "<string>",
"value": "<string>"
}
],
"orderCancelReason": "CUSTOMER",
"orderCancelledAt": "2023-11-07T05:31:56Z",
"orderClosed": true,
"orderClosedAt": "2023-11-07T05:31:56Z",
"orderConfirmed": true,
"orderDisplayFinancialStatus": "PENDING",
"orderDisplayFulfillmentStatus": "UNFULFILLED",
"orderId": 123,
"orderName": "<string>",
"orderNote": "<string>",
"orderProcessedAt": "2023-11-07T05:31:56Z",
"partialLinesSkipped": "INVENTORY_MANAGEMENT",
"progressAttemptCount": 123,
"recurringChargeId": 123,
"securityChallengeSentStatus": "SENT",
"status": "SUCCESS",
"transactionFailedEmailSentStatus": "SENT",
"transactionFailedSmsSentStatus": "SENT",
"transactionRate": 123,
"upcomingOrderEmailSentStatus": "SENT",
"upcomingOrderSmsSentStatus": "SENT",
"usageChargeStatus": "SUCCESS",
"variantList": [
{
"image": "<string>",
"productId": "<string>",
"productTitle": "<string>",
"quantity": 123,
"swapId": 123,
"title": "<string>",
"variantId": 123,
"variantTitle": "<string>"
}
]
}
][
{
"retryingNeeded": true,
"shop": "<string>",
"applyUsageCharge": true,
"attemptCount": 123,
"attemptTime": "2023-11-07T05:31:56Z",
"billingAttemptId": "<string>",
"billingAttemptResponseMessage": "<string>",
"billingDate": "2023-11-07T05:31:56Z",
"contractId": 123,
"graphOrderId": "<string>",
"id": 123,
"inventorySkippedAttemptCount": 123,
"inventorySkippedRetryingNeeded": true,
"lastShippingUpdatedAt": "2023-11-07T05:31:56Z",
"orderAmount": 123,
"orderAmountContractCurrency": 123,
"orderAmountShopCurrency": 123,
"orderAmountUSD": 123,
"orderAttributes": [
{
"key": "<string>",
"value": "<string>"
}
],
"orderCancelReason": "CUSTOMER",
"orderCancelledAt": "2023-11-07T05:31:56Z",
"orderClosed": true,
"orderClosedAt": "2023-11-07T05:31:56Z",
"orderConfirmed": true,
"orderDisplayFinancialStatus": "PENDING",
"orderDisplayFulfillmentStatus": "UNFULFILLED",
"orderId": 123,
"orderName": "<string>",
"orderNote": "<string>",
"orderProcessedAt": "2023-11-07T05:31:56Z",
"partialLinesSkipped": "INVENTORY_MANAGEMENT",
"progressAttemptCount": 123,
"recurringChargeId": 123,
"securityChallengeSentStatus": "SENT",
"status": "SUCCESS",
"transactionFailedEmailSentStatus": "SENT",
"transactionFailedSmsSentStatus": "SENT",
"transactionRate": 123,
"upcomingOrderEmailSentStatus": "SENT",
"upcomingOrderSmsSentStatus": "SENT",
"usageChargeStatus": "SUCCESS",
"variantList": [
{
"image": "<string>",
"productId": "<string>",
"productTitle": "<string>",
"quantity": 123,
"swapId": 123,
"title": "<string>",
"variantId": 123,
"variantTitle": "<string>"
}
]
}
][
{
"retryingNeeded": true,
"shop": "<string>",
"applyUsageCharge": true,
"attemptCount": 123,
"attemptTime": "2023-11-07T05:31:56Z",
"billingAttemptId": "<string>",
"billingAttemptResponseMessage": "<string>",
"billingDate": "2023-11-07T05:31:56Z",
"contractId": 123,
"graphOrderId": "<string>",
"id": 123,
"inventorySkippedAttemptCount": 123,
"inventorySkippedRetryingNeeded": true,
"lastShippingUpdatedAt": "2023-11-07T05:31:56Z",
"orderAmount": 123,
"orderAmountContractCurrency": 123,
"orderAmountShopCurrency": 123,
"orderAmountUSD": 123,
"orderAttributes": [
{
"key": "<string>",
"value": "<string>"
}
],
"orderCancelReason": "CUSTOMER",
"orderCancelledAt": "2023-11-07T05:31:56Z",
"orderClosed": true,
"orderClosedAt": "2023-11-07T05:31:56Z",
"orderConfirmed": true,
"orderDisplayFinancialStatus": "PENDING",
"orderDisplayFulfillmentStatus": "UNFULFILLED",
"orderId": 123,
"orderName": "<string>",
"orderNote": "<string>",
"orderProcessedAt": "2023-11-07T05:31:56Z",
"partialLinesSkipped": "INVENTORY_MANAGEMENT",
"progressAttemptCount": 123,
"recurringChargeId": 123,
"securityChallengeSentStatus": "SENT",
"status": "SUCCESS",
"transactionFailedEmailSentStatus": "SENT",
"transactionFailedSmsSentStatus": "SENT",
"transactionRate": 123,
"upcomingOrderEmailSentStatus": "SENT",
"upcomingOrderSmsSentStatus": "SENT",
"usageChargeStatus": "SUCCESS",
"variantList": [
{
"image": "<string>",
"productId": "<string>",
"productTitle": "<string>",
"quantity": 123,
"swapId": 123,
"title": "<string>",
"variantId": 123,
"variantTitle": "<string>"
}
]
}
]Headers
Query Parameters
API Key (Deprecated - Use Header X-API-Key instead)
Subscription contract ID. Omit (along with customerId) to get past orders of all contracts in the shop
Shopify customer ID. Omit (along with contractId) to get past orders of all contracts in the shop
Pagination parameters (page number and size)
Show child attributes
Show child attributes
Response
Successfully retrieved past orders
Show child attributes
Show child attributes
CUSTOMER, DECLINED, FRAUD, INVENTORY, STAFF, OTHER, $UNKNOWN PENDING, AUTHORIZED, PARTIALLY_PAID, PARTIALLY_REFUNDED, VOIDED, PAID, REFUNDED, EXPIRED, $UNKNOWN UNFULFILLED, PARTIALLY_FULFILLED, FULFILLED, RESTOCKED, PENDING_FULFILLMENT, OPEN, IN_PROGRESS, ON_HOLD, SCHEDULED, REQUEST_DECLINED, $UNKNOWN INVENTORY_MANAGEMENT, MANUAL, ORPHANED_FREE_PRODUCT SENT, UNSENT, FAILED, EMAIL_SETTINGS_DISABLED, CONTRACT_CANCELLED SUCCESS, FAILURE, REQUESTING, PROGRESS, QUEUED, SKIPPED, SOCIAL_CONNECTION_NULL, CONTRACT_CANCELLED, CONTRACT_ENDED, CONTRACT_PAUSED, AUTO_CHARGE_DISABLED, SHOPIFY_EXCEPTION, SKIPPED_DUNNING_MGMT, SKIPPED_INVENTORY_MGMT, IMMEDIATE_TRIGGERED, SECURITY_CHALLENGE, CONTRACT_PAUSED_MAX_CYCLES, REFUNDED, SKIPPED_DEMO_SHOP, SKIPPED_SHOP_INFO_NOT_FOUND, SKIPPED_BILLING_DATE_STALE, SKIPPED_DUNNING_NOT_CONFIGURED, PENDING_CONSOLIDATION SENT, UNSENT, FAILED, EMAIL_SETTINGS_DISABLED, CUSTOMER_PAYMENT_EMPTY, CONTRACT_CANCELLED SENT, UNSENT, FAILED, SMS_SETTINGS_DISABLED, CUSTOMER_PAYMENT_EMPTY, CONTRACT_CANCELLED, PHONE_NUMBER_EMPTY SENT, UNSENT, FAILED, EMAIL_SETTINGS_DISABLED, CUSTOMER_PAYMENT_EMPTY, CONTRACT_CANCELLED, STOP_FROM_CONTRACT, CONTRACT_PAUSED SENT, UNSENT, FAILED, SMS_SETTINGS_DISABLED, CUSTOMER_PAYMENT_EMPTY, CONTRACT_CANCELLED, STOP_FROM_CONTRACT, CONTRACT_PAUSED, PHONE_NUMBER_EMPTY SUCCESS, FAILED, TO_BE_TRIED Show child attributes
Show child attributes
curl --request GET \
--url https://subscription-admin.appstle.com/api/external/v2/subscription-billing-attempts/past-ordersimport requests
url = "https://subscription-admin.appstle.com/api/external/v2/subscription-billing-attempts/past-orders"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://subscription-admin.appstle.com/api/external/v2/subscription-billing-attempts/past-orders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://subscription-admin.appstle.com/api/external/v2/subscription-billing-attempts/past-orders';
const options = {method: 'GET'};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://subscription-admin.appstle.com/api/external/v2/subscription-billing-attempts/past-orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://subscription-admin.appstle.com/api/external/v2/subscription-billing-attempts/past-orders"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://subscription-admin.appstle.com/api/external/v2/subscription-billing-attempts/past-orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body[
{
"retryingNeeded": true,
"shop": "<string>",
"applyUsageCharge": true,
"attemptCount": 123,
"attemptTime": "2023-11-07T05:31:56Z",
"billingAttemptId": "<string>",
"billingAttemptResponseMessage": "<string>",
"billingDate": "2023-11-07T05:31:56Z",
"contractId": 123,
"graphOrderId": "<string>",
"id": 123,
"inventorySkippedAttemptCount": 123,
"inventorySkippedRetryingNeeded": true,
"lastShippingUpdatedAt": "2023-11-07T05:31:56Z",
"orderAmount": 123,
"orderAmountContractCurrency": 123,
"orderAmountShopCurrency": 123,
"orderAmountUSD": 123,
"orderAttributes": [
{
"key": "<string>",
"value": "<string>"
}
],
"orderCancelReason": "CUSTOMER",
"orderCancelledAt": "2023-11-07T05:31:56Z",
"orderClosed": true,
"orderClosedAt": "2023-11-07T05:31:56Z",
"orderConfirmed": true,
"orderDisplayFinancialStatus": "PENDING",
"orderDisplayFulfillmentStatus": "UNFULFILLED",
"orderId": 123,
"orderName": "<string>",
"orderNote": "<string>",
"orderProcessedAt": "2023-11-07T05:31:56Z",
"partialLinesSkipped": "INVENTORY_MANAGEMENT",
"progressAttemptCount": 123,
"recurringChargeId": 123,
"securityChallengeSentStatus": "SENT",
"status": "SUCCESS",
"transactionFailedEmailSentStatus": "SENT",
"transactionFailedSmsSentStatus": "SENT",
"transactionRate": 123,
"upcomingOrderEmailSentStatus": "SENT",
"upcomingOrderSmsSentStatus": "SENT",
"usageChargeStatus": "SUCCESS",
"variantList": [
{
"image": "<string>",
"productId": "<string>",
"productTitle": "<string>",
"quantity": 123,
"swapId": 123,
"title": "<string>",
"variantId": 123,
"variantTitle": "<string>"
}
]
}
][
{
"retryingNeeded": true,
"shop": "<string>",
"applyUsageCharge": true,
"attemptCount": 123,
"attemptTime": "2023-11-07T05:31:56Z",
"billingAttemptId": "<string>",
"billingAttemptResponseMessage": "<string>",
"billingDate": "2023-11-07T05:31:56Z",
"contractId": 123,
"graphOrderId": "<string>",
"id": 123,
"inventorySkippedAttemptCount": 123,
"inventorySkippedRetryingNeeded": true,
"lastShippingUpdatedAt": "2023-11-07T05:31:56Z",
"orderAmount": 123,
"orderAmountContractCurrency": 123,
"orderAmountShopCurrency": 123,
"orderAmountUSD": 123,
"orderAttributes": [
{
"key": "<string>",
"value": "<string>"
}
],
"orderCancelReason": "CUSTOMER",
"orderCancelledAt": "2023-11-07T05:31:56Z",
"orderClosed": true,
"orderClosedAt": "2023-11-07T05:31:56Z",
"orderConfirmed": true,
"orderDisplayFinancialStatus": "PENDING",
"orderDisplayFulfillmentStatus": "UNFULFILLED",
"orderId": 123,
"orderName": "<string>",
"orderNote": "<string>",
"orderProcessedAt": "2023-11-07T05:31:56Z",
"partialLinesSkipped": "INVENTORY_MANAGEMENT",
"progressAttemptCount": 123,
"recurringChargeId": 123,
"securityChallengeSentStatus": "SENT",
"status": "SUCCESS",
"transactionFailedEmailSentStatus": "SENT",
"transactionFailedSmsSentStatus": "SENT",
"transactionRate": 123,
"upcomingOrderEmailSentStatus": "SENT",
"upcomingOrderSmsSentStatus": "SENT",
"usageChargeStatus": "SUCCESS",
"variantList": [
{
"image": "<string>",
"productId": "<string>",
"productTitle": "<string>",
"quantity": 123,
"swapId": 123,
"title": "<string>",
"variantId": 123,
"variantTitle": "<string>"
}
]
}
][
{
"retryingNeeded": true,
"shop": "<string>",
"applyUsageCharge": true,
"attemptCount": 123,
"attemptTime": "2023-11-07T05:31:56Z",
"billingAttemptId": "<string>",
"billingAttemptResponseMessage": "<string>",
"billingDate": "2023-11-07T05:31:56Z",
"contractId": 123,
"graphOrderId": "<string>",
"id": 123,
"inventorySkippedAttemptCount": 123,
"inventorySkippedRetryingNeeded": true,
"lastShippingUpdatedAt": "2023-11-07T05:31:56Z",
"orderAmount": 123,
"orderAmountContractCurrency": 123,
"orderAmountShopCurrency": 123,
"orderAmountUSD": 123,
"orderAttributes": [
{
"key": "<string>",
"value": "<string>"
}
],
"orderCancelReason": "CUSTOMER",
"orderCancelledAt": "2023-11-07T05:31:56Z",
"orderClosed": true,
"orderClosedAt": "2023-11-07T05:31:56Z",
"orderConfirmed": true,
"orderDisplayFinancialStatus": "PENDING",
"orderDisplayFulfillmentStatus": "UNFULFILLED",
"orderId": 123,
"orderName": "<string>",
"orderNote": "<string>",
"orderProcessedAt": "2023-11-07T05:31:56Z",
"partialLinesSkipped": "INVENTORY_MANAGEMENT",
"progressAttemptCount": 123,
"recurringChargeId": 123,
"securityChallengeSentStatus": "SENT",
"status": "SUCCESS",
"transactionFailedEmailSentStatus": "SENT",
"transactionFailedSmsSentStatus": "SENT",
"transactionRate": 123,
"upcomingOrderEmailSentStatus": "SENT",
"upcomingOrderSmsSentStatus": "SENT",
"usageChargeStatus": "SUCCESS",
"variantList": [
{
"image": "<string>",
"productId": "<string>",
"productTitle": "<string>",
"quantity": 123,
"swapId": 123,
"title": "<string>",
"variantId": 123,
"variantTitle": "<string>"
}
]
}
][
{
"retryingNeeded": true,
"shop": "<string>",
"applyUsageCharge": true,
"attemptCount": 123,
"attemptTime": "2023-11-07T05:31:56Z",
"billingAttemptId": "<string>",
"billingAttemptResponseMessage": "<string>",
"billingDate": "2023-11-07T05:31:56Z",
"contractId": 123,
"graphOrderId": "<string>",
"id": 123,
"inventorySkippedAttemptCount": 123,
"inventorySkippedRetryingNeeded": true,
"lastShippingUpdatedAt": "2023-11-07T05:31:56Z",
"orderAmount": 123,
"orderAmountContractCurrency": 123,
"orderAmountShopCurrency": 123,
"orderAmountUSD": 123,
"orderAttributes": [
{
"key": "<string>",
"value": "<string>"
}
],
"orderCancelReason": "CUSTOMER",
"orderCancelledAt": "2023-11-07T05:31:56Z",
"orderClosed": true,
"orderClosedAt": "2023-11-07T05:31:56Z",
"orderConfirmed": true,
"orderDisplayFinancialStatus": "PENDING",
"orderDisplayFulfillmentStatus": "UNFULFILLED",
"orderId": 123,
"orderName": "<string>",
"orderNote": "<string>",
"orderProcessedAt": "2023-11-07T05:31:56Z",
"partialLinesSkipped": "INVENTORY_MANAGEMENT",
"progressAttemptCount": 123,
"recurringChargeId": 123,
"securityChallengeSentStatus": "SENT",
"status": "SUCCESS",
"transactionFailedEmailSentStatus": "SENT",
"transactionFailedSmsSentStatus": "SENT",
"transactionRate": 123,
"upcomingOrderEmailSentStatus": "SENT",
"upcomingOrderSmsSentStatus": "SENT",
"usageChargeStatus": "SUCCESS",
"variantList": [
{
"image": "<string>",
"productId": "<string>",
"productTitle": "<string>",
"quantity": 123,
"swapId": 123,
"title": "<string>",
"variantId": 123,
"variantTitle": "<string>"
}
]
}
]