{
  "opencollection": "1.0.0",
  "info": {
    "name": "Olo Promotions API",
    "version": "1.0"
  },
  "request": {
    "auth": {
      "type": "apikey",
      "key": "Authorization",
      "value": "{{Authorization}}",
      "placement": "header"
    }
  },
  "items": [
    {
      "info": {
        "name": "Accounts",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Find Accounts",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://{providerHost}/promotions/accounts",
            "params": [
              {
                "name": "membershipNumber",
                "value": "",
                "type": "query",
                "description": "The membership number used to locate the guest's loyalty account(s)."
              }
            ]
          },
          "docs": "Find loyalty accounts matching a membership number or other guest identifier."
        },
        {
          "info": {
            "name": "Create Account",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://{providerHost}/promotions/accounts",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new loyalty account in the provider's system for a guest."
        },
        {
          "info": {
            "name": "Get Account",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://{providerHost}/promotions/accounts/:accountId",
            "params": [
              {
                "name": "accountId",
                "value": "",
                "type": "path",
                "description": "The loyalty account's unique identifier in the provider's system."
              }
            ]
          },
          "docs": "Retrieve a single loyalty account by its identifier in the provider's system."
        }
      ]
    },
    {
      "info": {
        "name": "Promotions",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Validate Promotions",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://{providerHost}/promotions/validate",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Validate the coupons and loyalty rewards applied to a basket. The provider calculates discounts and returns the validated promotions with POS reference data."
        },
        {
          "info": {
            "name": "Redeem Promotions",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://{providerHost}/promotions/redemptions",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Redeem the coupons and loyalty rewards applied to a placed order, finalizing the discounts calculated during validation."
        },
        {
          "info": {
            "name": "Void Redemption",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://{providerHost}/promotions/redemptions/:redemptionId",
            "params": [
              {
                "name": "redemptionId",
                "value": "",
                "type": "path",
                "description": "The identifier of the redemption being voided."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Void a previously redeemed set of coupons and rewards for an order."
        }
      ]
    },
    {
      "info": {
        "name": "Accruals",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Accrue Points",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://{providerHost}/promotions/accruals",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Accrue loyalty points for a placed order against a guest's loyalty account."
        },
        {
          "info": {
            "name": "Void Accrual",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://{providerHost}/promotions/accruals/:accrualId",
            "params": [
              {
                "name": "accrualId",
                "value": "",
                "type": "path",
                "description": "The identifier of the accrual being voided."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Void a previously recorded loyalty point accrual for an order."
        }
      ]
    }
  ],
  "bundled": true
}