Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Our admin endpoints.
This set of benefit endpoints should only be used by merchant that have Tiers disabled. Benefit access for merchants that have enabled Tiers can be found in the Tiers tab in this API reference.
Get and create credit requests.
Member accessing and altering endpoints.
curl -X GET "https://public.inveterateapi.com/v2.0/merchant"
-H "X-Inveterate-Api-Key: {api_key}"Get your merchant data. Serves as a good health check for our services and your API key/access.
These endpoints only work for merchants with tiers enabled. Access benefits via this set of endpoints.
Get, create, update and delete webhook subscriptions. Use these to build third-party integrations.
Our storefront-authenticated endpoints.
Once the webhook subscription is in place, you can have it choose to act on or disregard each of the types of events.
Get credits for a specific member.
Create a credit redemption request for a member.
Member get. Includes more member actions in sub-directories.
Create a cancellation request for a member.
This set of benefit endpoints should only be used by merchant that have Tiers disabled. Benefit access for merchants that have enabled Tiers can be found in the Tiers tab in this API reference.
These endpoints only work for merchants with tiers enabled. Access benefits via this set of endpoints.
{
"payload": {
"createdAt": "2025-05-30T10:17:56.959Z",
"tierId": "3a636361",
"merchantId": "inveterate",
"detail": {
"entryType": "SUBSCRIPTION_PURCHASE",
"tierName": "PAID"
},
"updatedAt": "2025-05-30T10:17:56.959Z",
"customerId": "7733540520067"
},
"metadata": {
"id": "f40a52b943e043a761df4f9e21364ccd",
"retryCount": 0,
"shopDomain": "inveterate.myshopify.com",
"topic": "customer.joined.paid_tier",
"version": "2025-06",
"triggerredAt": "2025-05-30T10:17:58.166Z"
}
}{
"payload": {
"createdAt": "2025-05-30T11:23:12.195Z",
"tierId": "0d0c6284",
"merchantId": "inveterate",
"detail": {
"entryType": "FREE_SIGNUP",
"previousTierName": "PreviousTier",
"previousTierId": "6a538edc",
"tierName": "FREE"
},
"updatedAt": "2025-05-30T11:23:12.195Z",
"customerId": "7733576892547"
},
"metadata": {
"id": "a15fb599199de3eb84f4df329d9b1389",
"retryCount": 0,
"shopDomain": "inveterate.myshopify.com",
"topic": "customer.joined.free_tier",
"version": "2025-06",
"triggerredAt": "2025-05-30T11:23:12.888Z"
}
}{
"payload": {
"createdAt": "2025-05-30T13:51:00.551Z",
"tierId": "c669d6e7",
"merchantId": "inveterate",
"detail": {
"entryType": "SUBSCRIPTION_PURCHASE",
"tierName": "TrialTier"
},
"updatedAt": "2025-05-30T13:51:00.551Z",
"freeTrialStart": "2025-05-30T13:50:47.177Z",
"freeTrialEnd": "2025-06-04T13:50:47.175Z",
"customerId": "8921477710119"
},
"metadata": {
"id": "2297571615b78a717726569a0bfed6fa",
"retryCount": 0,
"shopDomain": "inveterate.myshopify.com",
"topic": "customer.joined.free_trial",
"version": "2025-06",
"triggerredAt": "2025-05-30T13:51:01.817Z"
}
}{
"payload": {
"createdAt": "2025-05-30T11:25:14.459Z",
"tierId": "d689602f",
"merchantId": "inveterate",
"detail": {
"entryType": "ONE_TIME_PURCHASE",
"tierName": "LIFETIME"
},
"updatedAt": "2025-05-30T11:25:14.459Z",
"customerId": "7733592490115"
},
"metadata": {
"id": "14d8ed9e66fa8eceb6a989cbaa9c8df5",
"retryCount": 0,
"shopDomain": "inveterate.myshopify.com",
"topic": "customer.joined.lifetime_tier",
"version": "2025-06",
"triggerredAt": "2025-05-30T11:25:15.202Z"
}
}{
"payload": {
"createdAt": "2025-05-30T11:17:19.646Z",
"tierId": "6a538edc",
"merchantId": "inveterate",
"detail": {
"previousTierName": "PAID0402",
"previousTierId": "3a636361",
"tierName": "FREE"
},
"updatedAt": "2025-05-30T11:17:19.646Z",
"customerId": "7733576892547"
},
"metadata": {
"id": "3b8313888e852a1b4a285dbe4334a610",
"retryCount": 0,
"shopDomain": "inveterate.myshopify.com",
"topic": "customer.changed_tier",
"version": "2025-06",
"triggerredAt": "2025-05-30T11:17:21.144Z"
}
}{
"payload": {
"merchantId": "inveterate",
"customerId": "7733592490115",
"newBalance": 0,
"previousBalance": 5,
"reason": "EXPIRED",
"expiredAt": "2025-05-30T11:29:07.875Z",
"email": "[email protected]",
"firstName": "1",
"lastName": "1",
"amount": 5
},
"metadata": {
"id": "e62649ec-851a-6f7a-1f78-fe9e66f8a81b",
"retryCount": 0,
"shopDomain": "inveterate.myshopify.com",
"topic": "customer.credits.expired",
"version": "2025-06",
"triggerredAt": "2025-05-30T11:29:08.049Z"
}
}{
"payload": {
"createdAt": "2025-05-30T10:40:47.081Z",
"tierId": "3a636361",
"merchantId": "inveterate",
"detail": {
"cancellationSource": "FAILURE",
"tierName": "PAID"
},
"updatedAt": "2025-05-30T10:40:47.081Z",
"customerId": "7733540520067"
},
"metadata": {
"id": "e3d8d8cc05d1ac397cb5d89e417d2350",
"retryCount": 0,
"shopDomain": "inveterate.myshopify.com",
"topic": "customer.cancelled",
"version": "2025-06",
"triggerredAt": "2025-05-30T10:40:47.613Z"
}
}{
"payload": {
"customerId": "23076025210636",
"merchantId": "inveterate",
"createdAt": "2025-06-16T01:13:06.342Z",
"updatedAt": "2025-06-16T01:13:06.342Z",
"customer": {
"id": "23076025210636",
"email": "[email protected]"
},
"detail": {
"paymentMethodId": "gid://shopify/CustomerPaymentMethod/47d624851460af123479714ff98ff616",
"paymentMethodType": "CustomerCreditCard"
}
},
"metadata": {
"id": "213c98aa-f4bd-90b4-aebe-9b1501fdd0c3",
"retryCount": 0,
"shopDomain": "inveterate.myshopify.com",
"topic": "customer.payment_methods.updated",
"version": "2025-06",
"triggerredAt": "2025-06-16T01:13:06.358Z"
}
}window.inveterate.properties{
benefits: Object,
campaigns: Array[Object],
constants: Object,
customer: Object,
pageType: String,
product: Object,
redirectUrl: String,
referralApiUrl: String,
referralData: Object,
referralStorageName: String
}The Rest API allows you to build a highly custom paid-membership program on your Shopify storefront.
{
merchantId: string,
customerId: string,
segmentId: string?,
}{
"payload": {
"customerId": "7733576892547",
"merchantId": "inveterate",
"createdAt": "2025-05-30T11:07:59.269Z",
"updatedAt": "2025-05-30T11:07:59.269Z",
"status": "PAID",
"detail": {
"amount": 100,
"currency": "USD",
"newBillingDate": "2025-07-30T00:00:00.000Z"
},
"customer": {
"id": "7733576892547",
"email": "[email protected]",
"phoneNumber": null
}
},
"metadata": {
"id": "4b3922a9-e878-3947-b283-57dfbd97d86c",
"retryCount": 0,
"shopDomain": "inveterate.myshopify.com",
"topic": "customer.payment_succeeded",
"version": "2025-06",
"triggerredAt": "2025-05-30T11:07:59.279Z"
}
}curl -X GET "https://public.inveterateapi.com/merchant"
-H "X-Inveterate-Api-Key: {api_key}"const merchant = await fetch('https://public.inveterateapi.com/merchant', {
headers: {
'Content-Type': 'application/json',
'X-Inveterate-Api-Key': '{api_key}',
},
method: 'GET',
}).then(data => data.json());{
"success": true,
"data": {
"campaigns": [
{
"collectionIds": [
"gid://shopify/Collection/1234567890"
],
"endDate": "2022-05-24 20:26:03 +00:00",
"updatedAt": "2022-05-13T20:26:13.267Z",
"startDate": "2022-05-13 20:26:01 +00:00",
"createdAt": "2022-05-13T20:26:13.267Z",
"id": "c7fd8ce6-f54e-4b1d-9841-1593f4c9bc70",
"name": "Inveterate Campaign",
"merchantId": "inveterate"
}
],
"count": 1
},
"errors": []
}window.inveterate{
"payload": {
"lastName": "1",
"note": null,
"reason": "EARNED_FROM_PURCHASE",
"amount": 1,
"isUpsell": false,
"orderId": "6244265853059",
"newBalance": 1,
"orderTotal": 100,
"previousBalance": 0,
"createdAt": "2025-05-30T10:18:11.721Z",
"firstName": "1a",
"merchantId": "inveterate",
"customerId": "7733540520067",
"appliedBy": null,
"expirationDate": "2025-05-31T10:00:00.000Z",
"updatedAt": "2025-05-30T10:18:11.721Z",
"email": "[email protected]"
},
"metadata": {
"retryCount": 0,
"shopDomain": "inveterate.myshopify.com",
"topic": "customer.credits.updated",
"version": "2025-06",
"triggerredAt": "2025-05-30T10:18:12.985Z"
}
}<script>
window.inveterateLPSettings = { addToCartRedirect: false };
</script>let inveterateCounter = 0;
const inveterateInterval = setInterval(() => {
if (window.inveterate && window.inveterate.landing && window.inveterate.landing.updateLPSettings) {
window.inveterate.landing.updateLPSettings({ addToCartRedirect: false });
clearInterval(inveterateInterval);
return;
}
inveterateCounter += 1;
if (inveterateCounter >= 100) {
clearInterval(inveterateInterval);
}
}, 500);{
"payload": {
"createdAt": "2025-05-30T11:20:43.043Z",
"merchantId": "inveterate",
"detail": {
"nextSegmentId": null,
"cancellationSource": "CUSTOMER",
"switchToFreeTier": null,
"cancelRequest": {
"createdAt": "2025-05-30T11:20:36.919Z",
"cancelDate": "2025-06-30T11:00:00Z",
"nextSegmentId": null,
"cancellationSource": "CUSTOMER",
"merchantId": "inveterate",
"billingTierId": "6a538edc",
"switchToFreeTier": false,
"contractId": "23578214531",
"customerId": "7733576892547",
"cancelToken": "15ae1f74-9555-456a-b003-da5ec076a48e",
"updatedAt": "2025-05-30T11:20:40.234Z",
"status": "PENDING_CANCELLATION"
},
"effectiveCancellationDate": "2025-06-30T11:00:00Z"
},
"updatedAt": "2025-05-30T11:20:43.043Z",
"customerId": "7733576892547"
},
"metadata": {
"id": "de453003ee3da27b9ac7543cb49f5e77",
"retryCount": 0,
"shopDomain": "inveterate.myshopify.com",
"topic": "customer.pending_cancellation",
"version": "2025-06",
"triggerredAt": "2025-05-30T11:20:44.093Z"
}
}{
"payload": {
"merchantId": "inveterate",
"createdAt": "2025-06-04T10:30:49.653Z",
"updatedAt": "2025-06-04T10:30:49.653Z",
"customer": {
"id": 7741425221763,
"email": "[email protected]"
},
"detail": {
"subtotal_price": "629.95",
"currency": "USD",
"line_items": [
{
"id": 14497615544451,
"name": "The Multi-managed Snowboard",
"price": "629.95",
"quantity": 1,
"variant_id": 44858553761923,
"product_id": 8469201158275
}
]
}
},
"metadata": {
"id": "228491c3-a7db-6b83-5d11-4fcecda101d3",
"retryCount": 0,
"shopDomain": "inveterate.myshopify.com",
"topic": "customer.ordered",
"version": "2025-06",
"triggerredAt": "2025-06-04T10:30:49.934Z"
}
}{
"payload": {
"customerId": "7733540520067",
"merchantId": "inveterate",
"createdAt": "2025-05-30T10:40:38.660Z",
"updatedAt": "2025-05-30T10:40:38.660Z",
"customer": {
"id": "7733540520067",
"email": "[email protected]",
"phoneNumber": null
},
"detail": {
"amount": 100,
"currency": "USD",
"errorMessage": "Payment method was revoked",
"billingDate": "2025-06-30T07:00:00.000Z",
"attemptedAt": "2025-06-30T07:00:00.000Z",
"lastAttemptedAt": "2025-06-30T07:00:00.000Z",
"billingAttempts": 3,
"billingTierId": "3a636361"
}
},
"metadata": {
"id": "f8e4a11b-d12f-18f4-98e5-49bb16c7bc4e",
"retryCount": 0,
"shopDomain": "inveterate.myshopify.com",
"topic": "customer_billing.attempt.failed",
"version": "2025-06",
"triggerredAt": "2025-05-30T10:40:38.682Z"
}
}{
currency: String,
customerCount: Number,
country: String,
createdAt: String,
creditsEnabled: Boolean,
currency: String,
email: String,
firstName: String,
landingPageEnabled: Boolean,
lastName: String,
merchantId: String,
merchantName: String,
myshopifyDomain: String,
phone: String,
savedSearchId: String,
status: String,
subscriptionProduct: String,
updatedAt: String
}{
"payload": {
"customerId": "7733560541315",
"merchantId": "inveterate",
"createdAt": "2025-05-30T11:01:00.674Z",
"updatedAt": "2025-05-30T11:01:00.674Z",
"customer": {
"id": "7733560541315",
"email": "[email protected]",
"phoneNumber": null
},
"detail": {
"amount": 100,
"currency": "USD",
"errorMessage": "Payment method was revoked",
"billingDate": "2025-06-30T07:00:00.000Z",
"billingAttempts": 3,
"billingTierId": "3a636361",
"isFinal": true
}
},
"metadata": {
"id": "1c77f905-8a5c-eaf7-ab62-1db3405eec81",
"retryCount": 0,
"shopDomain": "inveterate.myshopify.com",
"topic": "customer.payment_failed",
"version": "2025-06",
"triggerredAt": "2025-05-30T11:01:00.713Z"
}
}{
"data": {
"merchant": {
"currency": "USD",
"customerCount": 2374,
"country": "United States",
"createdAt": "2022-01-01T12:00:00.000Z",
"creditsEnabled": true,
"currency": "USD",
"email": "[email protected]",
"firstName": "Inveterate",
"landingPageEnabled": true,
"lastName": "Example",
"merchantId": "inveterate",
"merchantName": "Inveterate",
"myshopifyDomain": "inveterate.myshopify.com",
"phone": "555-123-4567",
"savedSearchId": "gid://shopify/Segment/1234567890",
"status": "ACTIVE",
"subscriptionProduct": "gid://shopify/Product/1234567890",
"updatedAt": "2022-01-01T12:00:00.000Z"
}
}
"success": true,
"errors": []
}{
"data": {}
"success": false,
"errors": [
"Invalid API key"
]
}{
"payload": {
"newData": {
"accountState": "ENABLED",
"lastCreditRedemptionAt": null,
"lastName": "inveterate",
"notes": null,
"anonymized": false,
"createdAt": "2025-05-25T00:27:56.503Z",
"revenue": 102.32,
"merchantId": "inveterate",
"paymentId": null,
"referrals": 0,
"customerId": "22978031812972",
"credit": 10,
"email": "[email protected]",
"updatedAt": "2025-05-25T00:27:59.220Z",
"joinedAt": "2025-05-25T00:27:52Z",
"trigger": "PAID_SUBSCRIPTION",
"firstName": "inveterate",
"creditsEarned": 10,
"phoneNumber": "+16416805498",
"referredBy": null,
"contractId": 82559795564,
"lastPurchaseAt": "2025-06-12T12:40:44.819Z",
"currencyCode": "USD",
"freeTrialActive": false,
"status": "ACTIVE",
"tierId": "c560bce7",
"tierName": "PAID"
},
"oldData": {
"accountState": "ENABLED",
"lastCreditRedemptionAt": null,
"lastName": "inveterate",
"notes": null,
"anonymized": false,
"spendingProcess": {
"time": "2025-06-12T12:40:44.819Z",
"status": "ACTIVE"
},
"createdAt": "2025-05-25T00:27:56.503Z",
"revenue": 102.32,
"merchantId": "inveterate",
"paymentId": null,
"referrals": 0,
"customerId": "22978031812972",
"credit": 10,
"email": "[email protected]",
"updatedAt": "2025-05-25T00:27:59.220Z",
"joinedAt": "2025-05-25T00:27:52Z",
"trigger": "PAID_SUBSCRIPTION",
"firstName": "inveterate",
"creditsEarned": 10,
"phoneNumber": "+16416805498",
"referredBy": null,
"contractId": 82559795564,
"lastPurchaseAt": "2025-06-12T12:40:44.819Z",
"currencyCode": "USD",
"freeTrialActive": false,
"status": "ACTIVE",
"tierId": "c560bce7",
"tierName": "PAID"
}
},
"metadata": {
"id": "056f9ad3c189f9897e893c8477fce1f6",
"retryCount": 0,
"shopDomain": "inveterate.myshopify.com",
"topic": "customer.updated",
"version": "2025-06",
"triggerredAt": "2025-06-12T12:40:46.309Z"
}
}{
"success": true,
"data": {
"benefits": [
{
"enabled": true,
"creditAmount": 10,
"icon": "https://d672z8ecdnbl.cloudfront.net/assets/iconography/custom/anniversary_credits.svg",
"displayOnLandingPage": true,
"description": "Earn credits every year, just for being a member of the program",
"name": "Anniversary Credits",
"type": "ANNIVERSARY_CREDITS"
},
{
"enabled": false,
"icon": "https://d672z8ecdnbl.cloudfront.net/assets/iconography/custom/discounts.svg",
"displayOnLandingPage": false,
"description": "Take advantage of exclusive member-only discounts on certain products.",
"name": "Member Only Discounts",
"type": "DISCOUNTS"
},
{
"enabled": false,
"icon": "https://d672z8ecdnbl.cloudfront.net/assets/iconography/custom/early_access.svg",
"displayOnLandingPage": false,
"description": "Get early access to new product releases before everyone else. Never run the risk of something being sold out!",
"name": "Early Access",
"type": "EARLY_ACCESS"
},
{
"enabled": false,
"icon": "https://d672z8ecdnbl.cloudfront.net/assets/iconography/custom/exclusive.svg",
"displayOnLandingPage": false,
"description": "Get access to products that are only eligible for purchase by members!",
"name": "Exclusive Access",
"type": "EXCLUSIVE"
},
{
"enabled": false,
"icon": "https://d672z8ecdnbl.cloudfront.net/assets/iconography/custom/shipping.svg",
"displayOnLandingPage": false,
"description": "Get free shipping on every order, every time.",
"name": "Free Shipping",
"type": "FREE_SHIPPING"
},
{
"enabled": false,
"icon": "https://d672z8ecdnbl.cloudfront.net/assets/iconography/custom/member_only_pricing.svg",
"displayOnLandingPage": false,
"description": "Take advantage of special member only pricing on certain products. Why pay full price if you don’t have to!",
"name": "Member Only Pricing",
"type": "MEMBER_ONLY_PRICING"
},
{
"enabled": true,
"creditAmount": 5,
"icon": "https://d672z8ecdnbl.cloudfront.net/assets/iconography/custom/referrals.svg",
"displayOnLandingPage": true,
"description": "Invite a friend to become a member and receive $5 when they sign up!",
"name": "Store Credits for Program Referral",
"type": "REFERRALS"
},
{
"enabled": false,
"creditAmount": 10,
"icon": "https://d672z8ecdnbl.cloudfront.net/assets/iconography/custom/store_credits.svg",
"displayOnLandingPage": false,
"description": "You’ll see $10 in store credit automatically hit your membership account every month.",
"name": "Recurring Store Credits",
"type": "SCHEDULED_STORE_CREDITS"
},
{
"enabled": true,
"creditAmount": 10,
"icon": "https://d672z8ecdnbl.cloudfront.net/assets/iconography/custom/store_credits.svg",
"displayOnLandingPage": true,
"description": "Receive $10 in store credits just for signing up for the program.",
"name": "Sign Up Store Credits",
"type": "SIGNUP_STORE_CREDITS"
}
],
"count": 9
},
"errors": []
}itemsselling_planThis page covers API endpoints that allow merchants to retrieve and modify user credits.
fetch('/cart/add.js', {
body: JSON.stringify({items: [
{
id: 42892755009790,
quantity: 1,
},
]}),
headers: {
'Content-Type': 'application/json',
},
method: 'POST',
}).then(res => res.json()).then(items => console.log(items));fetch('/cart/add.js', {
body: JSON.stringify({items: [
{
id: 42869694497022,
quantity: 1,
selling_plan: 3055124734,
properties: {
_inveterate_subscription: true
},
},
]}),
headers: {
'Content-Type': 'application/json',
},
method: 'POST',
}).then(res => res.json()).then(items => console.log(items));body: JSON.stringify({items: [
{
id: 42869694497022,
quantity: 1,
selling_plan: 3055124734,
properties: {
_inveterate_subscription: true
},
},
]}),body: JSON.stringify({items: [
{
id: 42869694497022,
quantity: 1,
selling_plan: 3055124734,
properties: {
_inveterate_subscription: true
},
},
{
id: 1234567890,
quantity: 1,
properties: {
_inveterate_free_signup_gift: true
}
}
]}),{
amount: number;
createdAt: string;
newBalance: number;
reason: string;
}



GETX-Inveterate-Api-Key{
"credits": [
{
"amount": 5,
"createdAt": "2000-01-01T12:00:00.000Z",
"newBalance": 10,
"reason": "MANUAL"
},
{
... // another object of the same structure
}
... // more objects of the same structure
],
/*
* If the user has activated a discount code for redemption
* through their member portal, it will be included here as follows.
*
* If there is no active code, redemption will be null.
*/
"redemption": {
"code": "REDEEM+123456789", // always begins with "REDEEM+"
"value": 5 // USD
}
}{
"success": false,
"data": {},
"errors": [
"Missing query parameter: customerId"
]
}{
"message": "Unauthorized"
}{
accountState: String, // from Shopify
contractId: Number,
createdAt: String,
credit: Number,
customerId: String,
email: String,
firstName: String,
lastName: String,
orderCount: Number,
orderIds: Array[Number]
merchantId: String,
status: String, // status of Inveterate subscription
totalSpend: Number,
updatedAt: String
}{
"data": {
"customer": {
"accountState": "ENABLED",
"contractId": 1234567890,
"createdAt": "2021-10-27T18:10:08.754Z",
...
}
}
"success": true,
"errors": []
}{
"data": {}
"success": false,
"errors": [
"Invalid API key"
]
}{
"data": {
"customers": [
{
"accountState": "ENABLED",
"contractId": 1234567890,
"createdAt": "2021-10-27T18:10:08.754Z",
...
}
],
"lastCustomerId": "1234567890"
}
"success": true,
"errors": []
}{
"data": {}
"success": false,
"errors": [
"Invalid API key"
]
}curl --location --request GET "${PUBLIC_API_URL}/customers?limit=1" \
--header "X-Inveterate-Api-Key: ${PUBLIC_API_KEY}"{
"success": true,
"data": {
"customers": [
{
"lastName": "Alda",
"firstName": "Alan",
"customerId": "6082598928622"
}
],
"lastCustomerId": "6082598928622",
"limit": "1"
},
"errors": []
}curl --location --request GET "${PUBLIC_API_URL}/customers?limit=1&lastCustomerId=6082598928622" \
--header "X-Inveterate-Api-Key: ${PUBLIC_API_KEY}"{
"success": true,
"data": {
"customers": [
{
"lastName": "Bernanke",
"firstName": "Ben",
"customerId": "6082606694638"
}
],
"lastCustomerId": "6082606694638",
"limit": "1"
},
"errors": []
}{
"success": true,
"data": {
"cancelRequest": {
"merchantId": "inveterate-staging-barefoot",
"cancelToken": "c52157e9-2406-49d1-b374-583c92a3e3dd",
"customerId": "5574691979318",
"status": "INITIALIZED",
"createdAt": "2022-03-15T00:07:16.168Z",
"updatedAt": "2022-03-15T00:07:16.168Z"
}
},
"errors": []
}{
"data": {}
"success": false,
"errors": [
"Invalid API key"
]
}Returns a single member for a given merchant. Merchant is pulled from the public API key for security reasons.
The customer ID number which you would like to retrieve.
Your private Inveterate API key.
Returns all internal merchant information associated with the API key.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returns all credits for one customer. API key is used to match the customer to your account for security reasons. Ensure that the customer ID is included in the request path.
The customer ID number.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Forwards a redemption request to the Inveterate backend. Returns the success status of the request against the backend service. Like the other endpoints that make requests against our backend, the changes may not take effect immediately.
The customer ID number.
Your private Inveterate API key.
Returned upon successful request made to our backend. Requests that return this code may take a small amount of time after successful API return to fully update.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
This method forwards the cancellation creation request to our backend. Returns the success status of the request against backend service. Like the other endpoints that make requests against our backend, the changes may not take effect immediately.
The customer ID number.
Returned upon successful request made to our backend. Requests that return this code may take a small amount of time after successful API return to fully update.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returns all benefits for a given merchant. Merchant is pulled from the public API key for security reasons.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returns a single benefit for a given merchant. Merchant is pulled from the public API key for security reasons. The benefit ID is the type of benefit. For a list of possible benefit types, see the default values in the schema list.
The benefit ID name/type.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
GET /v2.0/admin/merchant HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}GET /v2.0/storefront/members/{id}/credits?limit=text&lastCreditEntry=text HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}POST /v2.0/storefront/members/{id}/credits/redemption HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}POST /v2.0/storefront/members/{id}/cancellation HTTP/1.1
Accept: */*
{
"message": "text",
"data": {}
}GET /v2.0/storefront/benefits HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}GET /v2.0/storefront/benefits/{id} HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}status: ACTIVE -> CANCELLED. Then customer.cancelled event is triggered. Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
This endpoint will return all benefits for a merchant. It will return
an array of benefits. Each benefit will have a type field that will
identify the type of benefit.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
This endpoint will return one specific benefit given a benefit type. Note that the benefit type is a string character. For a list of all benefit types, look at the default type value in each schema.
The benefit type.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Forwards a request to our backend to delete a given benefit. Benefit will be identified by the benefit type field. For a list of all benefit types, take a look at each schema's default type value.
This is STRICTLY for deleting CUSTOM benefits. You cannot delete default benefits
via the Public API. Use your admin dashboard to disable default benefits.
The benefit identification name/type.
Your private Inveterate API key.
Returned upon successful request made to our backend. Requests that return this code may take a small amount of time after successful API return to fully update.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
This endpoint will take a benefit type and any other values in the relevant schema and send a request to our backend to update the benefit. with the new information. Keep in mind that, like with the POST method, this is a request against our backend. Thus, the effect will not be immediate.
The benefit identification name/type.
Your private Inveterate API key.
The amount to be awarded upon sign-up.
The name (appearance only) of this benefit.
The number of days to delay the credit award.
The description of this benefit (appearance only).
This is an internal identifier, leave default.
SIGNUP_STORE_CREDITSThe amount to be awarded each recurrence.
The name (appearance only) of this benefit.
The description of this benefit (appearance only).
How often (in days) you want to award this credit.
This is an internal identifier, leave default.
SCHEDULED_STORE_CREDITSThe internal identifier, leave default.
This is an internal identifier, leave default.
CREDITS_FOR_ORDERSThe name (appearance only) of this benefit.
The description of this benefit (appearance only).
Whether this benefit is enabled or not.
Which credit rule: "PERCENTAGE_BACK_ON_PURCHASE", "EARN_EVERY_ORDER", or "SPEND_AND_EARN".
The amount of credits (or percent) to give as an award.
Whether or not to include the membership product for credit.
The minimum individual purchase amount to award credit for orders.
The discount code to use for this benefit.
Whether or not this benefit is displayed on the landing page.
Which products or collections this benefit applies to: "ALL_PRODUCTS", "SPECIFIC_PRODUCTS", or "SPECIFIC_COLLECTIONS".
If appliesTo is either of the latter two values, this is a string array of Shopify Product IDs or Collection IDs (i.e. "gid://shopify/Collection/266717724758").
The amount of credits to award on anniversary.
The name (appearance only) of this benefit.
The description of this benefit (appearance only).
This is an internal identifier, leave default.
ANNIVERSARY_CREDITSThe amount of credits to award on referral.
The name (appearance only) of this benefit.
The description of this benefit (appearance only).
This is an internal identifier, leave default.
REFERRALSWhich shipping type: "DISCOUNT_CODE" or "SCRIPT".
The name (appearance only) of this benefit.
Which minumum requirements: "ITEM_QUANTITY", "PURCHASE_AMOUNT", or "NONE".
Whether or not to include purchases with shipping rates over a certain value.
The maximum shipping rate over which shipping is not free (only with previous value true).
If minRequirements is "ITEM_QUANTITY", include this field to indicate minimum number of items.
If minRequirements is "PURCHASE_AMOUNT", include this field to indicate the minumum purchase amount.
Which country type: "ALL" or "SPECIFIC".
If previous value is "SPECIFIC", this field contains the specific countries in the format: { "label": "United States", "value": "United States" }
This is an internal identifier, leave default.
FREE_SHIPPINGThe name (appearance only) of this benefit.
The description of this benefit (appearance).
This is an internal identifier, leave default.
DISCOUNTSThe name (appearance only) of this benefit.
The description of this benefit (appearance).
Which discount type: "percentage" or "fixed".
The fixed or percentage award value.
If using collections, this is a string array of Shopify Collection IDs (i.e. "gid://shopify/Collection/266717724758").
If using products, this is a string array of Shopify Product IDs (i.e. "gid://shopify/Product/266717724758").
The minimum subtotal for an individual purchase to qualify (null if using quantity).
The minimum quantity of items in an individual purchase to qualify (null if using subtotal).
Whether or not this discount is single use per customer.
Whether or not this discount expires.
If the previous value is true, this is the quantity, in days, before this discount expires.
This is an internal identifier, leave default.
SIGNUP_DISCOUNTSThe name (appearance only) of this benefit.
The description of this benefit (appearance).
The Shopify collection ID link to apply this benefit to.
The discount in pricing to apply to the collection.
This is an internal identifier, leave default.
MEMBER_ONLY_PRICINGThe name (appearance only) of this benefit.
The Shopify collection IDs to apply this benefit to.
The Shopify discount code ID to apply to the collection.
The end date that takes the format: YYYY-MM-DD HH:MM:SS +00:00
Returned upon successful request made to our backend. Requests that return this code may take a small amount of time after successful API return to fully update.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returns all tiers/segments for a given merchant. Merchant is pulled from the public API key for security reasons.
Whether or not to include benefits in the response.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returns a single tier/segment for a given merchant. Merchant is pulled from the public API key for security reasons.
The tier segment ID.
Whether or not to include benefits in the response.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
This endpoint will return all benefits for a merchant under a given tier. It will return an array of benefits. Each benefit will have a type field that will identify the type of benefit.
The tier segment ID.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
This endpoint will return one specific benefit given a benefit type and segment ID. Note that the benefit type is a string character. For a list of all benefit types, look at the default type value in each schema.
The tier segment ID.
The benefit type.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
This endpoint will take a benefit type, segment ID, and any other values in the relevant schema and send a request to our backend to update the benefit with the new information. Keep in mind that, like with the POST method, this is a request against our backend. Thus, the effect will not be immediate.
The tier segment ID.
The benefit identification name/type.
Your private Inveterate API key.
The amount to be awarded upon sign-up.
The name (appearance only) of this benefit.
The number of days to delay the credit award.
The description of this benefit (appearance only).
This is an internal identifier, leave default.
SIGNUP_STORE_CREDITSThe amount to be awarded each recurrence.
The name (appearance only) of this benefit.
The description of this benefit (appearance only).
How often (in days) you want to award this credit.
This is an internal identifier, leave default.
SCHEDULED_STORE_CREDITSThe internal identifier, leave default.
This is an internal identifier, leave default.
CREDITS_FOR_ORDERSThe name (appearance only) of this benefit.
The description of this benefit (appearance only).
Whether this benefit is enabled or not.
Which credit rule: "PERCENTAGE_BACK_ON_PURCHASE", "EARN_EVERY_ORDER", or "SPEND_AND_EARN".
The amount of credits (or percent) to give as an award.
Whether or not to include the membership product for credit.
The minimum individual purchase amount to award credit for orders.
The discount code to use for this benefit.
Whether or not this benefit is displayed on the landing page.
Which products or collections this benefit applies to: "ALL_PRODUCTS", "SPECIFIC_PRODUCTS", or "SPECIFIC_COLLECTIONS".
If appliesTo is either of the latter two values, this is a string array of Shopify Product IDs or Collection IDs (i.e. "gid://shopify/Collection/266717724758").
The amount of credits to award on anniversary.
The name (appearance only) of this benefit.
The description of this benefit (appearance only).
This is an internal identifier, leave default.
ANNIVERSARY_CREDITSThe amount of credits to award on referral.
The name (appearance only) of this benefit.
The description of this benefit (appearance only).
This is an internal identifier, leave default.
REFERRALSWhich shipping type: "DISCOUNT_CODE" or "SCRIPT".
The name (appearance only) of this benefit.
Which minumum requirements: "ITEM_QUANTITY", "PURCHASE_AMOUNT", or "NONE".
Whether or not to include purchases with shipping rates over a certain value.
The maximum shipping rate over which shipping is not free (only with previous value true).
If minRequirements is "ITEM_QUANTITY", include this field to indicate minimum number of items.
If minRequirements is "PURCHASE_AMOUNT", include this field to indicate the minumum purchase amount.
Which country type: "ALL" or "SPECIFIC".
If previous value is "SPECIFIC", this field contains the specific countries in the format: { "label": "United States", "value": "United States" }
This is an internal identifier, leave default.
FREE_SHIPPINGThe name (appearance only) of this benefit.
The description of this benefit (appearance).
This is an internal identifier, leave default.
DISCOUNTSThe name (appearance only) of this benefit.
The description of this benefit (appearance).
Which discount type: "percentage" or "fixed".
The fixed or percentage award value.
If using collections, this is a string array of Shopify Collection IDs (i.e. "gid://shopify/Collection/266717724758").
If using products, this is a string array of Shopify Product IDs (i.e. "gid://shopify/Product/266717724758").
The minimum subtotal for an individual purchase to qualify (null if using quantity).
The minimum quantity of items in an individual purchase to qualify (null if using subtotal).
Whether or not this discount is single use per customer.
Whether or not this discount expires.
If the previous value is true, this is the quantity, in days, before this discount expires.
This is an internal identifier, leave default.
SIGNUP_DISCOUNTSThe name (appearance only) of this benefit.
The description of this benefit (appearance).
The Shopify collection ID link to apply this benefit to.
The discount in pricing to apply to the collection.
This is an internal identifier, leave default.
MEMBER_ONLY_PRICINGThe name (appearance only) of this benefit.
The Shopify collection IDs to apply this benefit to.
The Shopify discount code ID to apply to the collection.
The end date that takes the format: YYYY-MM-DD HH:MM:SS +00:00
Returned upon successful request made to our backend. Requests that return this code may take a small amount of time after successful API return to fully update.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returns all campaigns belonging to a specific Tier identified by its segmentId
The tier segment ID.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
This endpoint will return all benefits for a merchant under a given tier. It will return an array of benefits. Each benefit will have a type field that will identify the type of benefit.
The customer ID.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returns a single tier/segment for a given merchant and customer. Merchant is pulled from the public API key for security reasons.
The customer ID.
Whether or not to include benefits in the response.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returns all campaigns belonging to the Tier the customer belongs to (customer identified with customerId parameter)
The customer ID.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
{
"success": true,
"data": {
"subscriber": {
"merchantId": "inveterate-staging-barefoot",
"id": "215498bda8d2169cc5db763377c0eda2",
"token": "fe10df8a669462ee3ae368b0bfe5f910",
"callbackUrl": "https://ztvfqj22g8.execute-api.us-east-1.amazonaws.com/prod/webhooks/callback-test",
"name": "Webhook Subscriber Endpoint Test",
"dateCreated": "2022-03-18T07:45:22.602Z",
"dateUpdated": "2022-03-18T07:45:22.602Z",
"createdByApp": "Default"
}
},
"errors": []
}{
"success": true,
"data": {
"subscribers": [
{
"merchantId": "inveterate-staging-barefoot",
"id": "215498bda8d2169cc5db763377c0eda2",
"callbackUrl": "https://ztvfqj22g8.execute-api.us-east-1.amazonaws.com/prod/webhooks/callback-test",
"name": "Webhook Subscriber Endpoint Test",
"dateCreated": "2022-03-18T07:45:22.602Z",
"dateUpdated": "2022-03-18T07:45:22.602Z",
"createdByApp": "Default"
}
]
},
"errors": []
}{
"success": true,
"data": {
"subscriber": {}
},
"errors": []
}GET /v2.0/admin/members/{id} HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}window.IAW.Widget.instanceCANCELLEDGET /v2.0/admin/benefits HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}GET /v2.0/admin/benefits/{type} HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}DELETE /v2.0/admin/benefits/{type} HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}PATCH /v2.0/admin/benefits/{type} HTTP/1.1
X-Inveterate-Api-Key: text
Content-Type: application/json
Accept: */*
Content-Length: 92
{
"creditAmount": 1,
"name": "text",
"days": 1,
"description": "text",
"type": "SIGNUP_STORE_CREDITS"
}{
"message": "text",
"data": {}
}GET /v2.0/admin/tiers HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}GET /v2.0/admin/tiers/{id} HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}GET /v2.0/admin/tiers/{id}/campaigns HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}GET /v2.0/storefront/tiers/{id}/benefits HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}GET /v2.0/storefront/tiers/{id} HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}GET /v2.0/storefront/tiers/{id}/campaigns HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}GET /v2.0/admin/tiers/{id}/benefits HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}GET /v2.0/admin/tiers/{id}/benefits/{type} HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}PATCH /v2.0/admin/tiers/{id}/benefits/{type} HTTP/1.1
X-Inveterate-Api-Key: text
Content-Type: application/json
Accept: */*
Content-Length: 92
{
"creditAmount": 1,
"name": "text",
"days": 1,
"description": "text",
"type": "SIGNUP_STORE_CREDITS"
}{
"message": "text",
"data": {}
}callback[function|null]: (optional) Function to run after method completesconst api = window.IAW.Widget.instance;
const response = await api.addToWishlist('1234567890');
console.log(response); // { data: { productId: '1234567890', targetWishlistId: 'wishlist_...' }, error: null }const api = window.IAW.Widget.instance;
const callback = (data, error) => {
if (err) {
console.error('Error: ', error);
throw new Error(error);
}
console.log('Success: ', data);
}
const response = api.addToWishlist('1234567890', null, callback); //await window.IAW.Widget.instance.addToWishlist('1234567890');const callback = (data, error) => {
if (error) {
console.error('Error: ', error);
throw new Error(error);
}
console.log('Success: ', data);
}
window.IAW.Widget.instance.show(callback);window.addEventListener('iaw:ready', (event) => {
// Fires on widget load
if (event.detail.isLoggedIn) {
// Custom code to show something specific to logged in customer
}
});The customer ID number.
Your private Inveterate API key.
The amount of credits to be added to or removed from the customer's account. It can't be zero
Optional note to be associated with this credit transaction
When force: true is included with a negative credit amount, this will disable any active credit redemption discount codes when necessary.
Returned upon successful request made to our backend. Requests that return this code may take a small amount of time after successful API return to fully update.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
POST /v2.0/admin/members/{id}/credits HTTP/1.1
X-Inveterate-Api-Key: text
Content-Type: application/json
Accept: */*
Content-Length: 39
{
"amount": 1,
"note": "text",
"force": true
}{
"message": "text",
"data": {}
}A list of our data schemas.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Your private Inveterate API key.
The subscription topic (will be used as sort key).
customer.joined.paid_tierPossible values: The callback URL that will be called when one of the webhooks is triggered.
The subscription name.
Returned upon successful request made to our backend. Requests that return this code may take a small amount of time after successful API return to fully update.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Your private Inveterate API key.
The subscription topic to update.
customer.joined.paid_tierPossible values: The callback URL that will be called when one of the webhooks is triggered.
The subscription name.
The subscription ID.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Your private Inveterate API key.
The subscription topic to delete
customer.joined.paid_tierPossible values: The subscription ID.
Returned upon successful request made to our backend. Requests that return this code may take a small amount of time after successful API return to fully update.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
The customer ID number.
The number of credits to return (for pagination).
The last credit entry from the previous request.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Your private Inveterate API key.
The customer ID number which you would like to update.
Your private Inveterate API key.
The customer ID number.
Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
GET /v2.0/storefront/members/{id} HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}GET /v2.0/admin/webhook-subscriptions HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}POST /v2.0/admin/webhook-subscriptions HTTP/1.1
X-Inveterate-Api-Key: text
Content-Type: application/json
Accept: */*
Content-Length: 72
{
"topic": "customer.joined.paid_tier",
"callbackUrl": "text",
"name": "text"
}{
"message": "text",
"data": {}
}PUT /v2.0/admin/webhook-subscriptions HTTP/1.1
X-Inveterate-Api-Key: text
Content-Type: application/json
Accept: */*
Content-Length: 84
{
"topic": "customer.joined.paid_tier",
"callbackUrl": "text",
"name": "text",
"id": "text"
}{
"message": "text",
"data": {}
}DELETE /v2.0/admin/webhook-subscriptions HTTP/1.1
X-Inveterate-Api-Key: text
Content-Type: application/json
Accept: */*
Content-Length: 49
{
"topic": "customer.joined.paid_tier",
"id": "text"
}{
"message": "text",
"data": {}
}Your private Inveterate API key.
Returned upon successful direct action to our database. Action is immediate.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
The customerId to add to the specified free tier.
The signify whether or not the customer was referred. NOTE: NOT to be used to indicate the referring customer.
The segmentId of the tier you want to add this customer to.
Whether or not to override the spend required to add a customer to a spend based tier.
Whether or not you want to keep this customer in the spend based tier despite not meeting the spend threshold.
Especially for member creation requests, if you would like to add some credits to the specified customer.
The customer's date of birth in YYYY-MM-DD format, e.g "1988-04-01"
Returned upon successful request made to our backend. Requests that return this code may take a small amount of time after successful API return to fully update.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
The customer's first name.
The customer's last name.
Internal notes for this customer. Only viewable by the merchant.
The customer's phone number.
The customer's date of birth in YYYY-MM-DD format, e.g "1988-04-01"
Returned upon successful request made to our backend. Requests that return this code may take a small amount of time after successful API return to fully update.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
GET /v2.0/admin/members/{id}/credits HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
GET /v2.0/admin/members?limit=text&lastCustomerId=text HTTP/1.1
X-Inveterate-Api-Key: text
Accept: */*
{
"message": "text",
"data": {}
}POST /v2.0/admin/members HTTP/1.1
X-Inveterate-Api-Key: text
Content-Type: application/json
Accept: */*
Content-Length: 147
{
"customerId": "text",
"referrals": "text",
"segmentId": "text",
"overrideSpendThreshold": true,
"keepInSpendBasedTier": true,
"credits": 1,
"birthday": "text"
}PATCH /v2.0/admin/members/{id} HTTP/1.1
X-Inveterate-Api-Key: text
Content-Type: application/json
Accept: */*
Content-Length: 92
{
"firstName": "text",
"lastName": "text",
"notes": "text",
"phoneNumber": "text",
"birthday": "text"
}{
"message": "text",
"data": {}
}{
"message": "text",
"data": {}
}{
"message": "text",
"data": {}
}The customer ID number.
Your private Inveterate API key.
The ID of the tier to which the customer will be moved.
The next billing date can be specified if the customer is changed to a paid tier. Format: YYYY-MM-DD
Returned upon successful request made to our backend. Requests that return this code may take a small amount of time after successful API return to fully update.
Returned upon a malformed request. Check your API key, URL parameters, and body parameters when this error is returned. Generally, if you see this error, that also means NO action was taken on our backend.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
Returned for all other errors. Generally these come from our backend. Some multipart functions may execute somewhat and then fail, causing some data to be updated.
The message associated with the response. Generally, the message only confirms the requested action. In the case of errors, the message will give insight into the source of the error.
The data associated with the response. Data is only returned from errors if the error originates from our backend to give further insight into the nature of the error.
{
"message": "text",
"data": {}
}POST /v2.0/admin/members/{id}/change-tier HTTP/1.1
X-Inveterate-Api-Key: text
Content-Type: application/json
Accept: */*
Content-Length: 42
{
"tierId": "text",
"nextBillingDate": "text"
}