{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Third-Party Integration Guide","description":"Build powerful loyalty and rewards experiences for your Shopify store with our comprehensive REST APIs.","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"third-party-integration-guide","__idx":0},"children":["Third-Party Integration Guide"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Build integrations with Appstle Loyalty using our REST API. This guide covers authentication, common workflows, and the key endpoints you'll need."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"authentication","__idx":1},"children":["Authentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["There are two ways to authenticate with the Appstle Loyalty API:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"merchant-api-key","__idx":2},"children":["Merchant API Key"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For direct API access, pass the merchant's API key in the header:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"X-API-Key: <merchant-api-key>\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Merchants create API keys from the Appstle Loyalty admin dashboard under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Settings → API Key Management"]},". Each key is scoped to a single Shopify store. Merchants can create multiple named keys (up to 10) and revoke them individually."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["ℹ️ Note:"]}," Direct API access requires an active API plan. Contact ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"mailto:support@appstle.com"},"children":["support@appstle.com"]}," for pricing."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"partner-integration-recommended-for-app-to-app","__idx":3},"children":["Partner Integration (Recommended for App-to-App)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you're building a product that integrates with Appstle Loyalty (e.g., a helpdesk, CRM, review platform, or automation tool), use our ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/partner-integration"},"children":["Partner Integration Framework"]}]}," for a seamless, zero-configuration experience."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["With the Partner Integration Framework:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Merchants connect with ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["one click"]}," from either dashboard — no manual key exchange"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Your app receives a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["scoped API token"]}," automatically during the handshake"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Partner tokens ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["bypass the paid API plan"]}," — merchants are never billed for partner API usage"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Tokens are ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["revoked automatically"]}," when a merchant disconnects or uninstalls"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["👉 ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/partner-integration"},"children":["Read the full Partner Integration Guide →"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"legacy-partner-key-x-app-key","__idx":4},"children":["Legacy Partner Key (X-App-Key)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For existing integrations that already use the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-App-Key"]}," header, this method continues to work:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"X-API-Key: <merchant-api-key>\nX-App-Key: <your-partner-key>\n"},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-API-Key"]}]}," — The merchant's API key, identifying which store to act on."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-App-Key"]}]}," — Your partner key, identifying your application."]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Note:"]}," New partners should use the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/partner-integration"},"children":["Partner Integration Framework"]}," instead. It provides a better merchant experience and eliminates the need for manual key exchange."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"base-url","__idx":5},"children":["Base URL"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"https://loyalty-admin.appstle.com\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All admin endpoints are prefixed with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/api/external/"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"quick-start","__idx":6},"children":["Quick Start"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1-look-up-a-customers-loyalty-data","__idx":7},"children":["1. Look Up a Customer's Loyalty Data"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retrieve a customer's full loyalty profile by Shopify customer ID or email:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"# By customer ID\ncurl -X GET \"https://loyalty-admin.appstle.com/api/external/customer-loyalty?shop=your-store.myshopify.com&customer_id=12345\" \\\n  -H \"X-API-Key: YOUR_API_KEY\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Response includes:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Available, pending, and total credited points"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Current VIP tier and spent amount"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Referral link and completed referral count"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Active rewards and discount codes"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Social engagement status (Facebook, Instagram, etc.)"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2-get-point-transaction-history","__idx":8},"children":["2. Get Point Transaction History"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retrieve a customer's full point transaction log:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X GET \"https://loyalty-admin.appstle.com/api/external/point-transaction-history/{customer_id}?shop=your-store.myshopify.com\" \\\n  -H \"X-API-Key: YOUR_API_KEY\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"3-get-top-customers-by-points","__idx":9},"children":["3. Get Top Customers by Points"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retrieve your highest-value loyalty members:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X GET \"https://loyalty-admin.appstle.com/api/external/top-customers?shop=your-store.myshopify.com\" \\\n  -H \"X-API-Key: YOUR_API_KEY\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"point-management","__idx":10},"children":["Point Management"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"add-points-to-a-customer","__idx":11},"children":["Add Points to a Customer"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://loyalty-admin.appstle.com/api/external/add-points\" \\\n  -H \"X-API-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"shop\": \"your-store.myshopify.com\",\n    \"customerId\": 12345,\n    \"points\": 100,\n    \"note\": \"VIP welcome bonus\"\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"redeem-points-for-a-reward","__idx":12},"children":["Redeem Points for a Reward"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://loyalty-admin.appstle.com/api/external/redeem-points\" \\\n  -H \"X-API-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"shop\": \"your-store.myshopify.com\",\n    \"customerId\": 12345,\n    \"pointRedeemRuleId\": 42\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"approve-pending-transactions","__idx":13},"children":["Approve Pending Transactions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For programs where points require approval before becoming available:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X PUT \"https://loyalty-admin.appstle.com/api/external/approve-pending-transactions?shop=your-store.myshopify.com\" \\\n  -H \"X-API-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"customerId\": 12345}'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"customer-management","__idx":14},"children":["Customer Management"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"enroll-a-customer","__idx":15},"children":["Enroll a Customer"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add a customer to the loyalty program programmatically:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://loyalty-admin.appstle.com/api/external/enroll-customer\" \\\n  -H \"X-API-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"shop\": \"your-store.myshopify.com\",\n    \"customerId\": 12345,\n    \"customerEmail\": \"customer@example.com\"\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"update-a-customers-birthday","__idx":16},"children":["Update a Customer's Birthday"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Set a birthday to enable birthday reward automation:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X PUT \"https://loyalty-admin.appstle.com/api/external/update-customer-birth-date?shop=your-store.myshopify.com\" \\\n  -H \"X-API-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"customerId\": 12345,\n    \"birthDate\": \"1990-06-15\"\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"store-credits","__idx":17},"children":["Store Credits"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"add-store-credits","__idx":18},"children":["Add Store Credits"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://loyalty-admin.appstle.com/api/external/add-credits\" \\\n  -H \"X-API-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"shop\": \"your-store.myshopify.com\",\n    \"customerId\": 12345,\n    \"credits\": 10.00,\n    \"note\": \"Goodwill credit\"\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"discount-management","__idx":19},"children":["Discount Management"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"check-a-discount-code","__idx":20},"children":["Check a Discount Code"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Validate a loyalty discount code before applying it at checkout:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X PUT \"https://loyalty-admin.appstle.com/api/external/check-discount?shop=your-store.myshopify.com\" \\\n  -H \"X-API-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"discountCode\": \"REWARD-XXXX\"}'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"mark-a-discount-as-used","__idx":21},"children":["Mark a Discount as Used"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After a customer redeems their discount code at checkout, mark it as used:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X PUT \"https://loyalty-admin.appstle.com/api/external/update-discount-code-status?shop=your-store.myshopify.com\" \\\n  -H \"X-API-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"discountCode\": \"REWARD-XXXX\",\n    \"status\": \"USED\"\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"program-configuration","__idx":22},"children":["Program Configuration"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"get-point-earn-rules","__idx":23},"children":["Get Point Earn Rules"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retrieve all active earn rules (point triggers) for a store:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X GET \"https://loyalty-admin.appstle.com/api/external/point-earn-rules?shop=your-store.myshopify.com\" \\\n  -H \"X-API-Key: YOUR_API_KEY\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"get-point-redeem-rules","__idx":24},"children":["Get Point Redeem Rules"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retrieve all active redemption options:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X GET \"https://loyalty-admin.appstle.com/api/external/point-redeem-rules?shop=your-store.myshopify.com\" \\\n  -H \"X-API-Key: YOUR_API_KEY\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"webhooks","__idx":25},"children":["Webhooks"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Appstle Loyalty supports webhooks for real-time event notifications. See the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/webhooks"},"children":["Webhooks documentation"]}," for setup and available events."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Alternatively, use ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/shopify-flow"},"children":["Shopify Flow"]}," to react to loyalty events within Shopify's native automation platform without managing webhook infrastructure."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"rate-limits","__idx":26},"children":["Rate Limits"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["API requests are rate-limited per store. If you receive a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["429 Too Many Requests"]}," response, implement exponential backoff before retrying."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"common-integration-patterns","__idx":27},"children":["Common Integration Patterns"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"review-platform-eg-judgeme-okendo-yotpo","__idx":28},"children":["Review Platform (e.g., Judge.me, Okendo, Yotpo)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The most common integration pattern for review platforms:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Customer submits a review on your platform"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Your platform calls ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /api/external/add-points"]}," to credit points"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Optionally, use Shopify Flow with the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reward-points-for-reviews"]}," action for no-code setup"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"crm--helpdesk-eg-gorgias-zendesk","__idx":29},"children":["CRM / Helpdesk (e.g., Gorgias, Zendesk)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Agents can look up loyalty data while handling tickets:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /api/external/customer-loyalty"]}," by customer email or ID to display loyalty status"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /api/external/add-points"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /api/external/add-credits"]}," to issue goodwill points"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /api/external/point-transaction-history/{customer_id}"]}," to view recent activity"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"email--sms-platform-eg-klaviyo-omnisend","__idx":30},"children":["Email / SMS Platform (e.g., Klaviyo, Omnisend)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sync loyalty data for personalized campaigns:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use webhooks to receive real-time point and tier events"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Pull ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /api/external/customer-loyalty"]}," to enrich customer profiles with points balance, VIP tier, and referral link"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Segment customers by tier (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currentVipTier"]},") or points range (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["availablePoints"]},") for targeted campaigns"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"becoming-a-partner","__idx":31},"children":["Becoming a Partner"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you're building a product that integrates with loyalty programs (helpdesks, CRMs, review platforms, email tools, automation platforms), we'd love to work with you."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What you get:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Zero-friction merchant onboarding"]}," via our ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/partner-integration"},"children":["Partner Integration Framework"]}," — one-click connect"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Scoped API tokens per merchant"]}," — automatically provisioned, no manual key exchange"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bypasses the paid API plan"]}," — merchants are never billed for partner API usage"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Technical support during integration"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Co-marketing opportunities"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Listed in our integration directory"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Current partners:"]}," Judge.me, Klaviyo, Omnisend, Gorgias, and more."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["To apply:"]}," Email ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"mailto:support@appstle.com"},"children":["support@appstle.com"]}," with:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Your company name and product"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["What Appstle Loyalty data your integration needs access to"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Expected API call volume per merchant"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["We typically onboard new partners within 1-2 business days. See the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/partner-integration"},"children":["Partner Integration Guide"]}]}," for the full technical walkthrough."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"need-help","__idx":32},"children":["Need Help?"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Full API Reference:"]}," See the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/admin-api-swagger"},"children":["Admin APIs"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/storefront-api-swagger"},"children":["Storefront APIs"]}," for complete endpoint documentation"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Shopify Flow:"]}," See the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/shopify-flow"},"children":["Shopify Flow guide"]}," for no-code automation"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Partners:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"mailto:support@appstle.com"},"children":["support@appstle.com"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Support:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"mailto:support@appstle.com"},"children":["support@appstle.com"]}]}]}]},"headings":[{"value":"Third-Party Integration Guide","id":"third-party-integration-guide","depth":1},{"value":"Authentication","id":"authentication","depth":2},{"value":"Merchant API Key","id":"merchant-api-key","depth":3},{"value":"Partner Integration (Recommended for App-to-App)","id":"partner-integration-recommended-for-app-to-app","depth":3},{"value":"Legacy Partner Key (X-App-Key)","id":"legacy-partner-key-x-app-key","depth":3},{"value":"Base URL","id":"base-url","depth":2},{"value":"Quick Start","id":"quick-start","depth":2},{"value":"1. Look Up a Customer's Loyalty Data","id":"1-look-up-a-customers-loyalty-data","depth":3},{"value":"2. Get Point Transaction History","id":"2-get-point-transaction-history","depth":3},{"value":"3. Get Top Customers by Points","id":"3-get-top-customers-by-points","depth":3},{"value":"Point Management","id":"point-management","depth":2},{"value":"Add Points to a Customer","id":"add-points-to-a-customer","depth":3},{"value":"Redeem Points for a Reward","id":"redeem-points-for-a-reward","depth":3},{"value":"Approve Pending Transactions","id":"approve-pending-transactions","depth":3},{"value":"Customer Management","id":"customer-management","depth":2},{"value":"Enroll a Customer","id":"enroll-a-customer","depth":3},{"value":"Update a Customer's Birthday","id":"update-a-customers-birthday","depth":3},{"value":"Store Credits","id":"store-credits","depth":2},{"value":"Add Store Credits","id":"add-store-credits","depth":3},{"value":"Discount Management","id":"discount-management","depth":2},{"value":"Check a Discount Code","id":"check-a-discount-code","depth":3},{"value":"Mark a Discount as Used","id":"mark-a-discount-as-used","depth":3},{"value":"Program Configuration","id":"program-configuration","depth":2},{"value":"Get Point Earn Rules","id":"get-point-earn-rules","depth":3},{"value":"Get Point Redeem Rules","id":"get-point-redeem-rules","depth":3},{"value":"Webhooks","id":"webhooks","depth":2},{"value":"Rate Limits","id":"rate-limits","depth":2},{"value":"Common Integration Patterns","id":"common-integration-patterns","depth":2},{"value":"Review Platform (e.g., Judge.me, Okendo, Yotpo)","id":"review-platform-eg-judgeme-okendo-yotpo","depth":3},{"value":"CRM / Helpdesk (e.g., Gorgias, Zendesk)","id":"crm--helpdesk-eg-gorgias-zendesk","depth":3},{"value":"Email / SMS Platform (e.g., Klaviyo, Omnisend)","id":"email--sms-platform-eg-klaviyo-omnisend","depth":3},{"value":"Becoming a Partner","id":"becoming-a-partner","depth":2},{"value":"Need Help?","id":"need-help","depth":2}],"frontmatter":{"seo":{"title":"Third-Party Integration Guide"}},"lastModified":"2026-03-08T03:41:42.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/integration-guide","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}