---
title: Create Member Redemption
slug: create-member-redemption
docTags: 
createdAt: 2025-09-12T20:51:26.465Z
---

{
  "id": "yf6WRYQ68AjDocjhD-n-L",
  "type": "api-oas-v2",
  "data": {
    "method": "POST",
    "url": "https://api.b.preview.loyaltyservices.io/api/v3/members/{memberIdentifier}/redemptions",
    "servers": [
      {
        "url": "https://api.b.preview.loyaltyservices.io/api/v3/members/{memberIdentifier}/redemptions"
      }
    ],
    "name": "Create Member Redemption",
    "description": "Redeem redemption item",
    "contentType": "application/json",
    "request": {
      "pathParameters": [
        {
          "kind": "required",
          "name": "memberIdentifier",
          "type": "string",
          "description": "Member identifier",
          "minLength": 1,
          "maxLength": 200
        }
      ],
      "headerParameters": [
        {
          "name": "accept",
          "type": "string",
          "kind": "optional",
          "description": "Generated from available response content types",
          "enum": [
            "application/json"
          ],
          "default": "application/json"
        }
      ],
      "queryParameters": [
        {
          "kind": "optional",
          "name": "createCouponUse",
          "type": "boolean",
          "description": "<p>If the redemption item creates coupons, this will place a hold or use on those coupons</p>",
          "default": false
        },
        {
          "kind": "optional",
          "name": "holdCoupon",
          "type": "boolean",
          "description": "<p>If set to true, will place a hold on the coupon instead of a use. Dependent on client program configuration.</p>",
          "default": false
        },
        {
          "kind": "optional",
          "name": "validateOnly",
          "type": "boolean",
          "description": "<p>If set to true, will only validate the redemption and not place the order.</p>",
          "default": false
        },
        {
          "kind": "optional",
          "name": "allowOverRedeem",
          "type": "boolean",
          "description": "<p>Allow redemption where the member point balance can be less then zero after the redemption is issued. Requester must have entitlement of api:member-redemption</p><div></div> to perform this.<p></p>",
          "default": false
        },
        {
          "kind": "optional",
          "name": "allowPoolRedeem",
          "type": "boolean",
          "description": "<p>If the member lacks sufficient currency to redeem the item, but belongs to a points pool with a sufficient combined balance, the redemption is funded by first exhausting the member's individual balance, then drawing the shortfall from pool members. If the pool balance is also insufficient and allowOverRedeem is set, any remaining shortfall is overdrawn from the redeeming member's account.</p>",
          "default": false
        },
        {
          "kind": "optional",
          "name": "migrate",
          "type": "boolean",
          "description": "<p>Imports a redemption i.e. creates or updates a Tally redemption without updating point balances.\nIf a redemption exists with the same account number and reference ID, that redemption will be updated;\notherwise a new redemption is created.\nA point value is not calculated for the redemption but can be provided in the providedAmount property.\nThe \"api:member-redemption</p><div></div>\" scope is required to use this parameter.\nUse this parameter only to migrate existing data to Tally.<p></p>",
          "default": false
        },
        {
          "kind": "optional",
          "name": "skipFraudCheck",
          "type": "boolean",
          "description": "<p>Set to true to bypass fraud detection and complete the redemption.\nRequires the \"api:member-redemption-fraud</p><div></div>\" scope.\nUse case: When a redemption is initially blocked due to fraud detection,\nan authorized agent can review the case and retry the redemption with\nthis flag set to true to override the fraud check and complete the transaction.<p></p>",
          "default": false
        },
        {
          "kind": "optional",
          "name": "async",
          "type": "boolean",
          "description": "<p>Submits the operation for background processing and returns a ‘202 Accepted’ response\nalong with an identifier to track the processing status.\nRequires the \"api:async-task</p><div></div>\" scope.<p></p>",
          "default": false
        }
      ],
      "bodyDataParameters": [
        {
          "kind": "optional",
          "name": "body",
          "type": "object",
          "description": "Member Redemption Request Object",
          "customType": "MemberRedemptionRequest",
          "schema": [
            {
              "name": "redemptionItemCode",
              "kind": "optional",
              "type": "string",
              "description": "<p>Identifies the coupon, event or other that member is spending points to purchase</p>"
            },
            {
              "name": "redemptionDate",
              "kind": "optional",
              "type": "string<date>",
              "description": "Date of the redemption. Defaults to today's date.",
              "example": "2020-01-01",
              "format": "date"
            },
            {
              "name": "referenceId",
              "kind": "optional",
              "type": "string",
              "description": "Client redemption identifier if provided during request"
            },
            {
              "name": "quantity",
              "kind": "required",
              "type": "integer<int32>",
              "description": "The number of items to redeem for",
              "format": "int32",
              "minimum": 1
            },
            {
              "name": "providedAmount",
              "kind": "optional",
              "type": "number",
              "description": "<p>Value of purchased item in loyalty currency (Points, Miles). Required if item has variable cost. Can also be set on migrated redemptions.</p>",
              "example": 100
            },
            {
              "name": "transactionAmount",
              "kind": "optional",
              "type": "number",
              "description": "Monetary value of purchased amount.",
              "example": 5.75
            },
            {
              "name": "groupCode",
              "kind": "optional",
              "type": "string",
              "description": "<p>Redemption group code used to identify the highest-ranked redemption rule the member qualifies for. If populated, redemptionItemCode and offerCriteria should not be provided.</p>"
            },
            {
              "name": "offerCriteria",
              "kind": "optional",
              "type": "map",
              "description": "List of offer attributes that are used to identify the correct redemption rule. If this object is populated the redemptionItemCode should not be defined.",
              "example": "",
              "customType": "map<string, string>",
              "schema": []
            },
            {
              "name": "orderAddress",
              "kind": "optional",
              "type": "object",
              "description": "",
              "modelRef": "#/components/schemas/MemberRedemptionOrderAddress",
              "customType": "MemberRedemptionOrderAddress",
              "schema": [
                {
                  "name": "name",
                  "kind": "optional",
                  "type": "string",
                  "description": "<p>Name to ship the redemption/order to</p>",
                  "minLength": 0,
                  "maxLength": 128
                },
                {
                  "name": "address1",
                  "kind": "required",
                  "type": "string",
                  "description": "Line 1 of the physical address",
                  "minLength": 0,
                  "maxLength": 128
                },
                {
                  "name": "address2",
                  "kind": "optional",
                  "type": "string",
                  "description": "Optional line 2 of the physical address",
                  "minLength": 0,
                  "maxLength": 128
                },
                {
                  "name": "address3",
                  "kind": "optional",
                  "type": "string",
                  "description": "Optional line 3 of the physical address",
                  "minLength": 0,
                  "maxLength": 100
                },
                {
                  "name": "city",
                  "kind": "required",
                  "type": "string",
                  "description": "City of residence",
                  "minLength": 0,
                  "maxLength": 128
                },
                {
                  "name": "stateCode",
                  "kind": "required",
                  "type": "string",
                  "description": "<p>State code as defined by the ISO-3166-2 principal subdivisions (e.g., provinces or states) of all countries coded in ISO 3166-1.</p>"
                },
                {
                  "name": "zip",
                  "kind": "required",
                  "type": "string",
                  "description": "<p>Zip/postal code. Format: 12345</p>",
                  "minLength": 0,
                  "maxLength": 20
                },
                {
                  "name": "countryCode",
                  "kind": "required",
                  "type": "string",
                  "description": "<p>Country of residence. ISO 3166-1 Alpha-2 country code.</p>"
                },
                {
                  "name": "emailAddress",
                  "kind": "optional",
                  "type": "string",
                  "description": "Email address of the order",
                  "minLength": 0,
                  "maxLength": 150
                },
                {
                  "name": "phoneNumber",
                  "kind": "optional",
                  "type": "string",
                  "description": "Phone number of the order",
                  "minLength": 0,
                  "maxLength": 128
                }
              ]
            },
            {
              "name": "couponUse",
              "kind": "optional",
              "type": "object",
              "description": "",
              "modelRef": "#/components/schemas/CouponUseRequest",
              "customType": "CouponUseRequest",
              "schema": [
                {
                  "name": "useDateTime",
                  "kind": "optional",
                  "type": "string<date-time>",
                  "description": "<p>The date time the coupon was used, defaults to current system time in CT</p>",
                  "format": "date-time"
                },
                {
                  "name": "alias",
                  "kind": "optional",
                  "type": "string",
                  "description": "Alias of a coupon use as unique key for a given coupon. Operationally used to check for duplicate holds.",
                  "minLength": 0,
                  "maxLength": 50
                },
                {
                  "name": "useCount",
                  "kind": "optional",
                  "type": "integer<int32>",
                  "description": "Number of coupon uses being used. Must be below or equal to Coupon useLimit.",
                  "example": 1,
                  "format": "int32"
                },
                {
                  "name": "messageFromGiftingMember",
                  "kind": "optional",
                  "type": "string",
                  "description": "Optional. Message from gifting member to the award recipient.",
                  "minLength": 0,
                  "maxLength": 255
                },
                {
                  "name": "validationAttributes",
                  "kind": "optional",
                  "type": "map",
                  "description": "<p>DEPRECATED(Use attributes object in new implementations)- List of coupon use attributes utilized for validation</p>",
                  "example": "",
                  "customType": "map<string, string>",
                  "schema": []
                },
                {
                  "name": "reportingAttributes",
                  "kind": "optional",
                  "type": "map",
                  "description": "<p>DEPRECATED(Use attributes object in new implementations)- List of coupon use attributes utilized for reporting</p>",
                  "example": "",
                  "customType": "map<string, string>",
                  "schema": []
                },
                {
                  "name": "attributes",
                  "kind": "optional",
                  "type": "map",
                  "description": "The attributes object will include a list of validation and reporting attributes",
                  "example": "",
                  "customType": "map<string, string>",
                  "schema": []
                }
              ]
            },
            {
              "name": "lineItems",
              "kind": "optional",
              "type": "array",
              "description": "list of line items redeemed",
              "modelRef": "#/components/schemas/MemberRedemptionLineItem",
              "customType": "MemberRedemptionLineItem[]",
              "schema": [
                {
                  "name": "description",
                  "kind": "optional",
                  "type": "string",
                  "description": "redemption item description"
                },
                {
                  "name": "itemCode",
                  "kind": "optional",
                  "type": "string",
                  "description": "Code for the item to be rewarded"
                },
                {
                  "name": "quantity",
                  "kind": "optional",
                  "type": "integer<int32>",
                  "description": "Quantity of the item being redeemed",
                  "format": "int32"
                },
                {
                  "name": "amount",
                  "kind": "optional",
                  "type": "number",
                  "description": "redemption item amount",
                  "minimum": 1
                }
              ]
            },
            {
              "name": "status",
              "kind": "optional",
              "type": "string",
              "description": "<p>Status of the redemptions. Values are Shipped, Pending, Cancelled, Ordered, Queued, Held, Fraud.</p>"
            },
            {
              "name": "expectedShipDate",
              "kind": "optional",
              "type": "string<date>",
              "description": "<p>Expected shipping date for physical goods. NA if not physical - just marked as the date redeemed</p>",
              "example": "2020-01-01",
              "format": "date"
            },
            {
              "name": "invoiceNumber",
              "kind": "optional",
              "type": "string",
              "description": "<p>Client-defined reference number used to identify order information for fulfillment.</p>"
            }
          ],
          "modelRef": "#/components/schemas/MemberRedemptionRequest",
          "isExpanded": true
        }
      ],
      "formDataParameters": [],
      "oAuthParameters": [
        {
          "id": "OAuth2",
          "name": "OAuth2",
          "kind": "optional",
          "type": "oauth2",
          "description": "<p>See <a href=\"https://docs.wearephaedon.com/docs/platform-api-authentication\" target=\"_blank\">https://docs.wearephaedon.com/docs/platform-api-authentication</a></p>",
          "oauth2Flows": {
            "clientCredentials": {
              "tokenUrl": "https://phaedon.oktapreview.com/oauth2/auscfbbmieFBGGOzR1d7/v1/token",
              "scopes": {
                "api:custom-data:read": "Grants read access to custom data information",
                "api:custom-data:modify": "Grants modify access to custom data information",
                "api:data-codes:read": "Grants read access to data codes",
                "api:data-codes:modify": "Grants modify access to data codes",
                "api:coupon-compensation:read": "Grants read access to compensations for coupon code",
                "api:coupon-compensation:create": "Grants access to create compensations for coupon code",
                "api:coupon-compensation:modify": "Grants access to edit compensation nights for coupon code",
                "api:coupon-request:modify": "Grants modify access to create coupons",
                "api:member:search": "Grants search access to member information",
                "api:member:verify": "Grants verify access to member information",
                "api:member:merge": "Grants access to merge members",
                "api:member:enroll": "Grants access to enroll members",
                "api:member:modify": "Grants modify access to member information",
                "api:member:read": "Grants read access to member information",
                "api:member:close": "Grants access to close member account",
                "api:member:migrate": "Grants access to migrate member accounts",
                "api:member-address:read": "Grants read access to member address information",
                "api:member-address:modify": "Grants modify access to member address information",
                "api:member-alias:read": "Grants read access to member alias information",
                "api:member-alias:modify": "Grants modify access to member alias information",
                "api:member-badge:read": "Grants read access to member badge information",
                "api:member-badge:modify": "Grants modify access to member badge information",
                "api:member-bonus:add": "Grants access to add a bonus to a member",
                "api:member-bonus:read": "Grants read access to member bonus information",
                "api:member-comments:read": "Grants read access to member comments information",
                "api:member-comments:modify": "Grants modify access to member comments information",
                "api:member-communication:read": "Grants read access to member communication information",
                "api:member-communication:modify": "Grants modify access to member communication information",
                "api:member-coupon:read": "Grants read access to member coupon information",
                "api:member-coupon-use:cancel": "Grants access to cancel member coupon uses",
                "api:member-coupon:transfer": "Grants access to transfer a member coupon",
                "api:member-coupon-use:update": "Grants access to update member coupon uses",
                "api:member-currency:read": "Grants read access to member currency information",
                "api:member-currency:adjust": "Grants access to adjust member currency",
                "api:member-currency:migrate": "Grants access to migrate member currency",
                "api:member-currency-conversion:convert": "Grants access to convert member currency",
                "api:member-email:read": "Grants read access to member email information",
                "api:member-email:modify": "Grants modify access to member email information",
                "api:member-event:read": "Grants read access to member events",
                "api:member-event:modify": "Grants modify access to member events",
                "api:event-rule:read": "Grants read access to event rules",
                "api:event-rule:modify": "Grants access to modify event rule",
                "api:event-rule:admin": "Grants full admin access to event rules",
                "api:member-list:read": "Grants read access to member list information",
                "api:member-list:modify": "Grants modify access to member list information",
                "api:member-partner-link:read": "Grants read access to member partner link information",
                "api:member-partner-link:modify": "Grants modify access to member partner link information",
                "api:member-payment-card:read": "Grants read access to member payment card information",
                "api:member-payment-card:modify": "Grants modify access to member payment card information",
                "api:member-phone:read": "Grants read access to member phone information",
                "api:member-phone:modify": "Grants modify access to member phone information",
                "api:member-preference:read": "Grants read access to member preference information",
                "api:member-preference:modify": "Grants modify access to member preference information",
                "api:member-promotion:read": "Grants read access to member promotion information",
                "api:member-promotion:register": "Grants access to register a member into a promotion",
                "api:member-redemption:create": "Grants redeem access to member redemption information",
                "api:member-redemption:over-redeem": "Grants access to over redeem",
                "api:member-redemption:read": "Grants read access to member redemption information",
                "api:member-redemption:cancel": "Grants access to cancel member redemptions",
                "api:member-redemption:migrate": "Allows migration of member redemption information",
                "api:member-redemption:patch": "Grants patching access to member redemption",
                "api:member-tier:read": "Grants read access to member tier information",
                "api:member-tier:adjust": "Grants access to adjust member tiers",
                "api:member-tier:migrate": "Grants access to migrate member tiers",
                "api:member-transaction:read": "Grants read access to transaction information",
                "api:member-transaction:cancel": "Grants access to cancel transactions",
                "api:member-transaction:clone": "Grants access to clone transactions",
                "api:member-transfer:transfer": "Grants access to do member to member transfers",
                "api:preference:read": "Grants read access to preference information",
                "api:promotion:read": "Grants read access to promotion information",
                "api:tier:read": "Grant read access to tier information",
                "api:promotion:register": "Grants access to register a member into a promotion using token",
                "api:promotion-token:manage": "Grants access to generate promotion token",
                "api:redemption:read": "Grants read access to redemption information",
                "api:redemption:modify": "Grants access to modify redemption information",
                "api:bonus-rule:read": "Grants read access to bonus rule configuration",
                "api:bonus-rule:modify": "Grants access to modify bonus rule configuration",
                "api:bonus-rule:manage": "Grants limited admin access to bonus rule configuration",
                "api:bonus-rule:admin": "Grants full admin access to bonus rules",
                "api:promotion-rule:read": "Grants read access to promotion rule configuration",
                "api:promotion-rule:modify": "Grants access to modify promotion rule configuration",
                "api:promotion-rule:manage": "Grants limited admin access to promotion rule configuration",
                "api:promotion-rule:admin": "Grants full admin access to promotion rules",
                "api:reports:under-investigation": "Grants access to under investigation report",
                "api:transaction:submit": "Grants access to submit transactions",
                "api:transaction:migrate": "Grants access to migrate transactions",
                "api:user:read": "Grants access to read user information",
                "api:user:modify": "Grants access to create user",
                "api:user-task:read": "Grants read access to user tasks",
                "api:user-task:modify": "Grants modify access to user tasks",
                "api:user-role:read": "Grants read access to user roles",
                "api:user-role:modify": "Grants modify access to user roles",
                "api:compensation:read": "Grants read access to hotel summary information",
                "api:compensation:modify": "Grants modify access to hotel summary information",
                "api:member-referral:read": "Grants read access to member referral information",
                "api:member-referral:modify": "Grants modify access to member referral information",
                "api:member-referral-codes:read": "Grants read access to member referral codes",
                "api:member-referral-codes:create": "Grants access to create member referral codes",
                "api:outbound-notification:modify": "Grants access to send outbound notification",
                "api:outbound-notification:read": "Grants access to read outbound notification types",
                "api:background-task:read": "Grants read access to background task information",
                "api:async-task:create": "Grants access to submit operations for background processing",
                "api:async-task:read": "Grants read access to background processing results",
                "api:audit-configuration:read": "Grants read access to audit configuration information",
                "api:audit-configuration:modify": "Grants modify access to audit configuration information",
                "api:badge:read": "Grant read access to badge information",
                "api:broadcast-messages:read": "Grant Read access to broadcast messages",
                "api:expression-config:read": "Grant read access to expression builder configuration",
                "api:managed-entity:read": "Grant read access to managed entity data",
                "api:customer-satisfaction:modify": "Grants modify access to customer satisfaction metrics",
                "api:member-linked-account:modify": "Grant modify access to member linked account",
                "api:member-linked-account:read": "Grants access to read linked member accounts",
                "api:enroll-codes:read": "Grants access to read enroll codes",
                "api:contact-us:modify": "Grants access to submit Contact Us inquiry",
                "api:data-release:read": "Grants read access to data releases",
                "api:points-pool:read": "Grants read access to points pools",
                "api:points-pool:modify": "Grants modify access to points pools",
                "api:segment:read": "Grants read access to segments",
                "api:segment:modify": "Grants modify access to segments",
                "api:communication-type:read": "Grants read access to communication types",
                "api:communication-type:modify": "Grants modify access to communication types",
                "api:member-status-match:read": "Grants read access to status match eligibility and submitted images/applications",
                "api:member-status-match:create": "Grants access to upload status match images and submit applications"
              }
            }
          },
          "requiredScopes": [
            "api:member-redemption:create"
          ]
        }
      ],
      "cookieParameters": []
    },
    "responses": [
      {
        "statusCode": "200",
        "description": "Success",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "MemberRedemption",
            "schema": [
              {
                "name": "memberRedemptionId",
                "kind": "optional",
                "type": "integer<int64>",
                "readOnly": true,
                "description": "Member Redemption Id",
                "example": 1234,
                "format": "int64"
              },
              {
                "name": "memberIdentifier",
                "kind": "optional",
                "type": "string",
                "readOnly": true,
                "description": "<p>Channel/Partner specific member identifier</p>",
                "minLength": 1,
                "maxLength": 200
              },
              {
                "name": "redemptionItemCode",
                "kind": "optional",
                "type": "string",
                "description": "<p>Identifies the coupon, event or other that member is spending points to purchase</p>",
                "example": "GIFT-CARD-50"
              },
              {
                "name": "redemptionItemDescription",
                "kind": "optional",
                "type": "string",
                "readOnly": true,
                "description": "Description of the redemption item",
                "example": "50$ Gift Card"
              },
              {
                "name": "referenceId",
                "kind": "optional",
                "type": "string",
                "description": "Client redemption identifier if provided during request",
                "example": 12345
              },
              {
                "name": "redemptionDate",
                "kind": "optional",
                "type": "string<date>",
                "readOnly": true,
                "description": "Date of the redemption",
                "example": "2020-01-01",
                "format": "date"
              },
              {
                "name": "customData",
                "kind": "optional",
                "type": "object",
                "description": "",
                "modelRef": "#/components/schemas/CustomData",
                "customType": "CustomData",
                "schema": [
                  {
                    "name": "ace01",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace01Description field.</p>"
                  },
                  {
                    "name": "ace01Description",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Human-readable label for the corresponding ace01 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                  },
                  {
                    "name": "ace02",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace02Description field.</p>"
                  },
                  {
                    "name": "ace02Description",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Human-readable label for the corresponding ace02 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                  },
                  {
                    "name": "ace03",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace03Description field.</p>"
                  },
                  {
                    "name": "ace03Description",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Human-readable label for the corresponding ace03 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                  },
                  {
                    "name": "ace04",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace04Description field.</p>"
                  },
                  {
                    "name": "ace04Description",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Human-readable label for the corresponding ace04 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                  },
                  {
                    "name": "ace05",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace05Description field.</p>"
                  },
                  {
                    "name": "ace05Description",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Human-readable label for the corresponding ace05 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                  },
                  {
                    "name": "ace06",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace06Description field.</p>"
                  },
                  {
                    "name": "ace06Description",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Human-readable label for the corresponding ace06 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                  },
                  {
                    "name": "ace07",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace07Description field.</p>"
                  },
                  {
                    "name": "ace07Description",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Human-readable label for the corresponding ace07 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                  },
                  {
                    "name": "ace08",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace08Description field.</p>"
                  },
                  {
                    "name": "ace08Description",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Human-readable label for the corresponding ace08 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                  },
                  {
                    "name": "ace09",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace09Description field.</p>"
                  },
                  {
                    "name": "ace09Description",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Human-readable label for the ace09 code value. Use this field to interpret the meaning of ace09 within the context of the client program.</p>"
                  },
                  {
                    "name": "ace10",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace10Description field.</p>"
                  },
                  {
                    "name": "ace10Description",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Human-readable label for the ace10 code value. Use this field to interpret the meaning of ace10 within the context of the client program.</p>"
                  },
                  {
                    "name": "ace11",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace11Description field.</p>"
                  },
                  {
                    "name": "ace11Description",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Human-readable label for the corresponding ace11 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                  },
                  {
                    "name": "ace12",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace12Description field.</p>"
                  },
                  {
                    "name": "ace12Description",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Human-readable label for the corresponding ace12 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                  },
                  {
                    "name": "ace13",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace13Description field.</p>"
                  },
                  {
                    "name": "ace13Description",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Human-readable label for the corresponding ace13 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                  },
                  {
                    "name": "ace14",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace14Description field.</p>"
                  },
                  {
                    "name": "ace14Description",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Human-readable label for the corresponding ace14 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                  },
                  {
                    "name": "ace15",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace15Description field.</p>"
                  },
                  {
                    "name": "ace15Description",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Human-readable label for the corresponding ace15 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                  }
                ]
              },
              {
                "name": "quantity",
                "kind": "optional",
                "type": "integer<int32>",
                "description": "The number of redemption items redeemed.",
                "example": 10,
                "format": "int32"
              },
              {
                "name": "currencyValue",
                "kind": "optional",
                "type": "number",
                "description": "Points redeemed.",
                "example": 100
              },
              {
                "name": "partnerCode",
                "kind": "optional",
                "type": "string",
                "description": "<p>Partner Code - if a partner item</p>",
                "example": "PARTNER123"
              },
              {
                "name": "expectedShipDate",
                "kind": "optional",
                "type": "string<date>",
                "description": "<p>Expected shipping date for physical goods. NA if not physical - just marked as the date redeemed</p>",
                "example": "2020-01-01",
                "format": "date"
              },
              {
                "name": "orderAddress",
                "kind": "optional",
                "type": "object",
                "description": "",
                "modelRef": "#/components/schemas/MemberRedemptionOrderAddress",
                "customType": "MemberRedemptionOrderAddress",
                "schema": [
                  {
                    "name": "name",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Name to ship the redemption/order to</p>",
                    "minLength": 0,
                    "maxLength": 128
                  },
                  {
                    "name": "address1",
                    "kind": "required",
                    "type": "string",
                    "description": "Line 1 of the physical address",
                    "minLength": 0,
                    "maxLength": 128
                  },
                  {
                    "name": "address2",
                    "kind": "optional",
                    "type": "string",
                    "description": "Optional line 2 of the physical address",
                    "minLength": 0,
                    "maxLength": 128
                  },
                  {
                    "name": "address3",
                    "kind": "optional",
                    "type": "string",
                    "description": "Optional line 3 of the physical address",
                    "minLength": 0,
                    "maxLength": 100
                  },
                  {
                    "name": "city",
                    "kind": "required",
                    "type": "string",
                    "description": "City of residence",
                    "minLength": 0,
                    "maxLength": 128
                  },
                  {
                    "name": "stateCode",
                    "kind": "required",
                    "type": "string",
                    "description": "<p>State code as defined by the ISO-3166-2 principal subdivisions (e.g., provinces or states) of all countries coded in ISO 3166-1.</p>"
                  },
                  {
                    "name": "zip",
                    "kind": "required",
                    "type": "string",
                    "description": "<p>Zip/postal code. Format: 12345</p>",
                    "minLength": 0,
                    "maxLength": 20
                  },
                  {
                    "name": "countryCode",
                    "kind": "required",
                    "type": "string",
                    "description": "<p>Country of residence. ISO 3166-1 Alpha-2 country code.</p>"
                  },
                  {
                    "name": "emailAddress",
                    "kind": "optional",
                    "type": "string",
                    "description": "Email address of the order",
                    "minLength": 0,
                    "maxLength": 150
                  },
                  {
                    "name": "phoneNumber",
                    "kind": "optional",
                    "type": "string",
                    "description": "Phone number of the order",
                    "minLength": 0,
                    "maxLength": 128
                  }
                ]
              },
              {
                "name": "bonuses",
                "kind": "optional",
                "type": "array",
                "readOnly": true,
                "description": "Bonuses awarded from the redemption",
                "modelRef": "#/components/schemas/Transaction",
                "customType": "Transaction[]",
                "schema": [
                  {
                    "name": "transactionId",
                    "kind": "optional",
                    "type": "string",
                    "description": "Internal transaction identifier"
                  },
                  {
                    "name": "transactionGroupId",
                    "kind": "optional",
                    "type": "string",
                    "description": "Transaction group identifier"
                  },
                  {
                    "name": "transactionGroupReferenceId",
                    "kind": "optional",
                    "type": "string",
                    "description": "Transaction group reference identifier"
                  },
                  {
                    "name": "parentTransactionId",
                    "kind": "optional",
                    "type": "string",
                    "description": "Parent transaction identifier"
                  },
                  {
                    "name": "linkedTransactionId",
                    "kind": "optional",
                    "type": "string",
                    "description": "Associated transaction identifier"
                  },
                  {
                    "name": "referenceId",
                    "kind": "optional",
                    "type": "string",
                    "description": "Client transaction identifier if provided during request"
                  },
                  {
                    "name": "memberIdentifier",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Channel/Partner specific member identifier</p>",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  {
                    "name": "accountNumber",
                    "kind": "optional",
                    "type": "string",
                    "description": "Loyalty Account Number",
                    "minLength": 7,
                    "maxLength": 25
                  },
                  {
                    "name": "memberRedemptionId",
                    "kind": "optional",
                    "type": "string",
                    "description": "Internal redemption identifier associated with the transaction",
                    "example": "1"
                  },
                  {
                    "name": "transactionDateTime",
                    "kind": "optional",
                    "type": "string<date-time>",
                    "description": "<p>DateTime the transaction was processed. Business date for standard transactions, calendar date for adjustments or redemption</p>",
                    "format": "date-time"
                  },
                  {
                    "name": "partnerName",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Partner name - only populated for partner accrual type transactions</p>"
                  },
                  {
                    "name": "partnerProgramCode",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Partner program code - only populated for partner accrual type transactions</p>"
                  },
                  {
                    "name": "description",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Depending on Type: Partner description, Bonus Rule Description, Adjustment rule description etc.</p>",
                    "maxLength": 250
                  },
                  {
                    "name": "typeCode",
                    "kind": "optional",
                    "type": "string",
                    "description": "Transaction type code",
                    "maxLength": 50
                  },
                  {
                    "name": "typeDescription",
                    "kind": "optional",
                    "type": "string",
                    "description": "Description of Transaction type"
                  },
                  {
                    "name": "subTypeCode",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Transaction sub-type code</p>",
                    "maxLength": 50
                  },
                  {
                    "name": "postDate",
                    "kind": "optional",
                    "type": "string<date>",
                    "description": "Processed date",
                    "format": "date"
                  },
                  {
                    "name": "originationDate",
                    "kind": "optional",
                    "type": "string<date>",
                    "description": "<p>Date transaction was originally placed/booked/reserved</p>",
                    "format": "date"
                  },
                  {
                    "name": "retro",
                    "kind": "optional",
                    "type": "boolean",
                    "description": "Indicator the transaction was applied retroactively"
                  },
                  {
                    "name": "edited",
                    "kind": "optional",
                    "type": "boolean",
                    "description": "Indicator the transaction was edited"
                  },
                  {
                    "name": "sourceCode",
                    "kind": "optional",
                    "type": "string",
                    "description": "SourceCode of transaction"
                  },
                  {
                    "name": "statusCode",
                    "kind": "optional",
                    "type": "string",
                    "description": "Status of the transaction"
                  },
                  {
                    "name": "updateDateTime",
                    "kind": "optional",
                    "type": "string<date-time>",
                    "readOnly": true,
                    "description": "Date time the transaction was last updated",
                    "format": "date-time"
                  },
                  {
                    "name": "earningRuleDescription",
                    "kind": "optional",
                    "type": "string",
                    "description": "Earning rule description"
                  },
                  {
                    "name": "customData",
                    "kind": "optional",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/CustomData",
                    "customType": "CustomData",
                    "schema": [
                      {
                        "name": "ace01",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace01Description field.</p>"
                      },
                      {
                        "name": "ace01Description",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Human-readable label for the corresponding ace01 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                      },
                      {
                        "name": "ace02",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace02Description field.</p>"
                      },
                      {
                        "name": "ace02Description",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Human-readable label for the corresponding ace02 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                      },
                      {
                        "name": "ace03",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace03Description field.</p>"
                      },
                      {
                        "name": "ace03Description",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Human-readable label for the corresponding ace03 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                      },
                      {
                        "name": "ace04",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace04Description field.</p>"
                      },
                      {
                        "name": "ace04Description",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Human-readable label for the corresponding ace04 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                      },
                      {
                        "name": "ace05",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace05Description field.</p>"
                      },
                      {
                        "name": "ace05Description",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Human-readable label for the corresponding ace05 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                      },
                      {
                        "name": "ace06",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace06Description field.</p>"
                      },
                      {
                        "name": "ace06Description",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Human-readable label for the corresponding ace06 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                      },
                      {
                        "name": "ace07",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace07Description field.</p>"
                      },
                      {
                        "name": "ace07Description",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Human-readable label for the corresponding ace07 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                      },
                      {
                        "name": "ace08",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace08Description field.</p>"
                      },
                      {
                        "name": "ace08Description",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Human-readable label for the corresponding ace08 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                      },
                      {
                        "name": "ace09",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace09Description field.</p>"
                      },
                      {
                        "name": "ace09Description",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Human-readable label for the ace09 code value. Use this field to interpret the meaning of ace09 within the context of the client program.</p>"
                      },
                      {
                        "name": "ace10",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace10Description field.</p>"
                      },
                      {
                        "name": "ace10Description",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Human-readable label for the ace10 code value. Use this field to interpret the meaning of ace10 within the context of the client program.</p>"
                      },
                      {
                        "name": "ace11",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace11Description field.</p>"
                      },
                      {
                        "name": "ace11Description",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Human-readable label for the corresponding ace11 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                      },
                      {
                        "name": "ace12",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace12Description field.</p>"
                      },
                      {
                        "name": "ace12Description",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Human-readable label for the corresponding ace12 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                      },
                      {
                        "name": "ace13",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace13Description field.</p>"
                      },
                      {
                        "name": "ace13Description",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Human-readable label for the corresponding ace13 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                      },
                      {
                        "name": "ace14",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace14Description field.</p>"
                      },
                      {
                        "name": "ace14Description",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Human-readable label for the corresponding ace14 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                      },
                      {
                        "name": "ace15",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Client-defined custom attribute. Value is program-specific; valid values are defined in the client program's custom data configuration. To get the human-readable label, refer to the paired ace15Description field.</p>"
                      },
                      {
                        "name": "ace15Description",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Human-readable label for the corresponding ace15 code value. Use this field to interpret the meaning of the paired ACE code within the context of the client program.</p>"
                      }
                    ]
                  },
                  {
                    "name": "spend",
                    "kind": "optional",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/TransactionSpend",
                    "customType": "TransactionSpend",
                    "schema": [
                      {
                        "name": "perItem",
                        "kind": "optional",
                        "type": "number",
                        "description": "<p>Cost per item (defaults to spendAmount)</p>",
                        "minimum": 0,
                        "maximum": 9999999999.99
                      },
                      {
                        "name": "spendAmount",
                        "kind": "optional",
                        "type": "number",
                        "description": "The fiat or currency amount qualified for earning",
                        "minimum": 0,
                        "maximum": 9999999999.99
                      },
                      {
                        "name": "currencyTypeCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Identifies the currency type (Points, Mile) code</p>",
                        "minLength": 0,
                        "maxLength": 50
                      },
                      {
                        "name": "currencyCategoryCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Identifies the currency (Base, Tax, etc.) category code</p>",
                        "minLength": 0,
                        "maxLength": 50
                      },
                      {
                        "name": "isoCurrencyCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>ISO currency (default to USD if null)</p>",
                        "minLength": 0,
                        "maxLength": 3
                      },
                      {
                        "name": "currencyConversionRatio",
                        "kind": "optional",
                        "type": "number<double>",
                        "description": "Identifies the currency conversion ratio that was used to convert the international currency to USD",
                        "format": "double"
                      },
                      {
                        "name": "quantity",
                        "kind": "optional",
                        "type": "integer<int32>",
                        "description": "Number of items purchased",
                        "format": "int32",
                        "minimum": 0,
                        "maximum": 999999999
                      }
                    ]
                  },
                  {
                    "name": "earn",
                    "kind": "optional",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/TransactionEarn",
                    "customType": "TransactionEarn",
                    "schema": [
                      {
                        "name": "amount",
                        "kind": "required",
                        "type": "number",
                        "description": "<p>The amount of currency that was earned (or specified) as part of the transaction</p>",
                        "minimum": 0.01,
                        "maximum": 9999999999.99
                      },
                      {
                        "name": "currencyTypeCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Identifies the currency type (Points, Mile) code</p>",
                        "minLength": 0,
                        "maxLength": 50
                      },
                      {
                        "name": "currencyCategoryCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Identifies the currency (Base, Tax, etc.) category code</p>",
                        "minLength": 0,
                        "maxLength": 10
                      },
                      {
                        "name": "earningsLimited",
                        "kind": "optional",
                        "type": "boolean",
                        "description": "Indicator that the earnings were limited",
                        "default": false
                      },
                      {
                        "name": "tierQualifying",
                        "kind": "optional",
                        "type": "boolean",
                        "description": "Indicator the currency applies towards tier progress"
                      },
                      {
                        "name": "transactionCounters",
                        "kind": "optional",
                        "type": "array",
                        "description": "Counters associated to the base earning",
                        "modelRef": "#/components/schemas/Counter",
                        "customType": "Counter[]",
                        "schema": [
                          {
                            "name": "counterTypeCode",
                            "kind": "optional",
                            "type": "string",
                            "description": "Counter Type Code"
                          },
                          {
                            "name": "counterValue",
                            "kind": "optional",
                            "type": "number",
                            "description": "Counter Value"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "name": "redemption",
                    "kind": "optional",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/TransactionRedemption",
                    "customType": "TransactionRedemption",
                    "schema": [
                      {
                        "name": "redemptionItemCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "Redemption Item Code"
                      },
                      {
                        "name": "currencyRequired",
                        "kind": "optional",
                        "type": "number",
                        "description": "Currency required for one item"
                      },
                      {
                        "name": "minimumQuantity",
                        "kind": "optional",
                        "type": "integer<int32>",
                        "description": "The minimum number of items that can be redeemed",
                        "format": "int32"
                      },
                      {
                        "name": "maximumQuantity",
                        "kind": "optional",
                        "type": "integer<int32>",
                        "description": "The maximum number of items that can be redeemed",
                        "format": "int32"
                      },
                      {
                        "name": "redeemIncrement",
                        "kind": "optional",
                        "type": "integer<int32>",
                        "description": "The number of items the redemption must increment by",
                        "format": "int32"
                      },
                      {
                        "name": "faceValue",
                        "kind": "optional",
                        "type": "number",
                        "description": "USD equivalent value of the item"
                      },
                      {
                        "name": "amountProvided",
                        "kind": "optional",
                        "type": "boolean",
                        "description": "<p>Is the currency to be redeemed variable (or provided)?</p>"
                      },
                      {
                        "name": "poolName",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Name of the points pool used for this redemption, if any</p>",
                        "example": "PL-16",
                        "maxLength": 128
                      },
                      {
                        "name": "lineItems",
                        "kind": "optional",
                        "type": "array",
                        "description": "list of line items redeemed",
                        "modelRef": "#/components/schemas/MemberRedemptionLineItem",
                        "customType": "MemberRedemptionLineItem[]",
                        "schema": [
                          {
                            "name": "description",
                            "kind": "optional",
                            "type": "string",
                            "description": "redemption item description"
                          },
                          {
                            "name": "itemCode",
                            "kind": "optional",
                            "type": "string",
                            "description": "Code for the item to be rewarded"
                          },
                          {
                            "name": "quantity",
                            "kind": "optional",
                            "type": "integer<int32>",
                            "description": "Quantity of the item being redeemed",
                            "format": "int32"
                          },
                          {
                            "name": "amount",
                            "kind": "optional",
                            "type": "number",
                            "description": "redemption item amount",
                            "minimum": 1
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "name": "expiredCurrency",
                    "kind": "optional",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/TransactionExpiredCurrency",
                    "customType": "TransactionExpiredCurrency",
                    "schema": [
                      {
                        "name": "expiredAmount",
                        "kind": "required",
                        "type": "number",
                        "description": "Currency amount expired"
                      },
                      {
                        "name": "expiredDate",
                        "kind": "optional",
                        "type": "string<date>",
                        "description": "Date of currency expiration",
                        "format": "date"
                      },
                      {
                        "name": "currencyTypeCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Identifies the currency type (Points, Mile) code</p>",
                        "minLength": 0,
                        "maxLength": 50
                      },
                      {
                        "name": "currencyCategoryCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Identifies the currency (Base, Tax, etc.) category code</p>",
                        "minLength": 0,
                        "maxLength": 50
                      }
                    ]
                  },
                  {
                    "name": "hotelTransaction",
                    "kind": "optional",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/HotelTransaction",
                    "customType": "HotelTransaction",
                    "schema": [
                      {
                        "name": "checkInDate",
                        "kind": "optional",
                        "type": "string<date>",
                        "description": "<p>Date of check-in</p>",
                        "format": "date"
                      },
                      {
                        "name": "checkOutDate",
                        "kind": "optional",
                        "type": "string<date>",
                        "description": "<p>Date of check-out</p>",
                        "format": "date"
                      },
                      {
                        "name": "eligibleStays",
                        "kind": "optional",
                        "type": "integer<int32>",
                        "description": "Number of eligible stays associated with the transaction",
                        "format": "int32"
                      },
                      {
                        "name": "eligibleCappedNights",
                        "kind": "optional",
                        "type": "integer<int32>",
                        "description": "<p>Number of capped nights (as defined by program configuration) associated with the transaction</p>",
                        "format": "int32"
                      },
                      {
                        "name": "eligibleNights",
                        "kind": "optional",
                        "type": "integer<int32>",
                        "description": "<p>Number of eligible nights of the stay. Optional - if null, system calculates from stay duration. When provided, uses minimum of specified value and actual stay duration.</p>",
                        "format": "int32"
                      },
                      {
                        "name": "roomNumber",
                        "kind": "optional",
                        "type": "string",
                        "description": "The room number associated with the stay"
                      },
                      {
                        "name": "roomType",
                        "kind": "optional",
                        "type": "string",
                        "description": "Type of room the member stayed in"
                      },
                      {
                        "name": "roomRate",
                        "kind": "optional",
                        "type": "number",
                        "description": "<p>The room rate (in USD). If not present, the system will calculate from international amounts.</p>"
                      },
                      {
                        "name": "roomRateIntl",
                        "kind": "optional",
                        "type": "number",
                        "description": "<p>The room rate (in local currency)</p>"
                      },
                      {
                        "name": "totalRevenueAmount",
                        "kind": "optional",
                        "type": "number",
                        "description": "<p>The total revenue amount (in USD). If not present, the system will calculate from international amounts.</p>"
                      },
                      {
                        "name": "totalRevenueAmountIntl",
                        "kind": "optional",
                        "type": "number",
                        "description": "<p>The total revenue amount (in local currency)</p>"
                      },
                      {
                        "name": "loyaltyEligibleAmount",
                        "kind": "optional",
                        "type": "number",
                        "description": "<p>The loyalty eligible amount (in USD). If not present, the system will calculate from international amounts.</p>"
                      },
                      {
                        "name": "loyaltyEligibleAmountIntl",
                        "kind": "optional",
                        "type": "number",
                        "description": "<p>The loyalty eligible amount (in local currency)</p>"
                      },
                      {
                        "name": "loyaltyIneligibleAmount",
                        "kind": "optional",
                        "type": "number",
                        "description": "<p>The loyalty ineligible amount (in USD). If not present, the system will calculate from international amounts.</p>"
                      },
                      {
                        "name": "loyaltyIneligibleAmountIntl",
                        "kind": "optional",
                        "type": "number",
                        "description": "<p>The loyalty ineligible amount (in local currency)</p>"
                      },
                      {
                        "name": "isoCurrencyCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "The currency code utilized to convert from international to USD. Defaults to currency of location."
                      },
                      {
                        "name": "bookingSource",
                        "kind": "optional",
                        "type": "string",
                        "description": "Source of the booking"
                      },
                      {
                        "name": "paymentCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "Indicator of the member's payment type"
                      },
                      {
                        "name": "purposeOfVisit",
                        "kind": "optional",
                        "type": "string",
                        "description": "Purpose of the member's visit"
                      },
                      {
                        "name": "travelAgentName",
                        "kind": "optional",
                        "type": "string",
                        "description": "Name of the member's travel agent"
                      },
                      {
                        "name": "groupName",
                        "kind": "optional",
                        "type": "string",
                        "description": "Group the member was a part of"
                      },
                      {
                        "name": "companyName",
                        "kind": "optional",
                        "type": "string",
                        "description": "Name of the company the member was a part of"
                      },
                      {
                        "name": "reservationConfirmationNumber",
                        "kind": "optional",
                        "type": "string",
                        "description": "Confirmation from the reservation management system"
                      },
                      {
                        "name": "noShow",
                        "kind": "optional",
                        "type": "boolean",
                        "description": "Indicator that the member did not show up for their stay"
                      },
                      {
                        "name": "pmsConfirmationNumber",
                        "kind": "optional",
                        "type": "string",
                        "description": "Confirmation number from the property management system"
                      },
                      {
                        "name": "overlappingStayPoolId",
                        "kind": "optional",
                        "type": "string",
                        "description": "Overlapping Stay Pool Id"
                      },
                      {
                        "name": "nonStayIndicator",
                        "kind": "optional",
                        "type": "boolean",
                        "description": "Indicator that the transaction represents something other than a stay"
                      },
                      {
                        "name": "nonStayLocationId",
                        "kind": "optional",
                        "type": "string",
                        "description": "Non stay location identifier"
                      },
                      {
                        "name": "nonStayEligibleRevenue",
                        "kind": "optional",
                        "type": "number",
                        "description": "<p>The non stay (F&#x26;B, spa, etc.) eligible revenue (in USD). If not present, the system will calculate from international amounts.</p>"
                      },
                      {
                        "name": "nonStayEligibleRevenueIntl",
                        "kind": "optional",
                        "type": "number",
                        "description": "<p>The non stay (F&#x26;B, spa, etc.) eligible revenue (in local currency)</p>"
                      },
                      {
                        "name": "nonStayIneligibleRevenue",
                        "kind": "optional",
                        "type": "number",
                        "description": "<p>The non stay (F&#x26;B, spa, etc.) eligible revenue (in USD). If not present, the system will calculate from international amounts.</p>"
                      },
                      {
                        "name": "nonStayIneligibleRevenueIntl",
                        "kind": "optional",
                        "type": "number",
                        "description": "<p>The non stay (F&#x26;B, spa, etc.) eligible revenue (in local currency)</p>"
                      },
                      {
                        "name": "checkNumber",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Check number associated with the non-stay data</p>"
                      }
                    ]
                  },
                  {
                    "name": "travelTransaction",
                    "kind": "optional",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/TravelTransaction",
                    "customType": "TravelTransaction",
                    "schema": [
                      {
                        "name": "activityStartDateTime",
                        "kind": "optional",
                        "type": "string<date-time>",
                        "description": "Transaction activity start date time",
                        "format": "date-time"
                      },
                      {
                        "name": "activityEndDateTime",
                        "kind": "optional",
                        "type": "string<date-time>",
                        "description": "Transaction activity end date time",
                        "format": "date-time"
                      },
                      {
                        "name": "totalSpendAmount",
                        "kind": "optional",
                        "type": "number",
                        "description": "The fiat or currency amount spent in total",
                        "minimum": 0,
                        "maximum": 9999999999.99
                      }
                    ]
                  },
                  {
                    "name": "retailTransaction",
                    "kind": "optional",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/RetailTransaction",
                    "customType": "RetailTransaction",
                    "schema": [
                      {
                        "name": "transactionNbr",
                        "kind": "optional",
                        "type": "string",
                        "description": "Online order transaction number"
                      },
                      {
                        "name": "pointOfSaleTransNbr",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>In-store point-of-sale transaction number</p>"
                      },
                      {
                        "name": "transactionSequenceNbr",
                        "kind": "optional",
                        "type": "string",
                        "description": "Transaction line item sequence number"
                      },
                      {
                        "name": "store",
                        "kind": "optional",
                        "type": "string",
                        "description": "Store identifier"
                      },
                      {
                        "name": "register",
                        "kind": "optional",
                        "type": "string",
                        "description": "Register number"
                      }
                    ]
                  },
                  {
                    "name": "transactionReference",
                    "kind": "optional",
                    "type": "map",
                    "description": "Client custom data defined by the program configuration",
                    "example": "",
                    "customType": "map<string, object>",
                    "schema": []
                  },
                  {
                    "name": "cancelable",
                    "kind": "optional",
                    "type": "boolean",
                    "description": "Indicator the transaction may be cancelled"
                  },
                  {
                    "name": "editable",
                    "kind": "optional",
                    "type": "boolean",
                    "description": "Indicator the transaction may be editable"
                  },
                  {
                    "name": "createUserId",
                    "kind": "optional",
                    "type": "integer<int64>",
                    "readOnly": true,
                    "description": "Id of user who created the transaction",
                    "format": "int64"
                  },
                  {
                    "name": "createUserName",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "Name of user who created the transaction"
                  },
                  {
                    "name": "updateUserId",
                    "kind": "optional",
                    "type": "integer<int64>",
                    "readOnly": true,
                    "description": "Id of user who updated the transaction",
                    "format": "int64"
                  },
                  {
                    "name": "updateUserName",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "Name of user who updated the transaction"
                  },
                  {
                    "name": "memberCommentId",
                    "kind": "optional",
                    "type": "integer<int64>",
                    "description": "Member comment id",
                    "format": "int64"
                  },
                  {
                    "name": "cancellationSubReason",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Sub-reason code for transaction cancellation if the transaction was manually cancelled</p>"
                  },
                  {
                    "name": "businessEligible",
                    "kind": "optional",
                    "type": "boolean",
                    "description": "Business Eligible Flag"
                  },
                  {
                    "name": "businessAccountNumber",
                    "kind": "optional",
                    "type": "string",
                    "description": "Business Account Number"
                  },
                  {
                    "name": "awardNumber",
                    "kind": "optional",
                    "type": "string",
                    "description": "Identifies the associated redemption for this transaction"
                  },
                  {
                    "name": "baseAccountNumber",
                    "kind": "optional",
                    "type": "string",
                    "description": "Base Account Number"
                  },
                  {
                    "name": "transactionAdjustment",
                    "kind": "optional",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/TransactionAdjustment",
                    "customType": "TransactionAdjustment",
                    "schema": [
                      {
                        "name": "comments",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>If adjustment, call center comments value.</p>"
                      },
                      {
                        "name": "referenceId",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>If adjustment, call center external reference (case number).</p>"
                      },
                      {
                        "name": "reasonCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>If adjustment, the reason code from adjustment rule.</p>"
                      }
                    ]
                  },
                  {
                    "name": "transactionBonus",
                    "kind": "optional",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/TransactionBonus",
                    "customType": "TransactionBonus",
                    "schema": [
                      {
                        "name": "bonusCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>If this is for a bonus accrual type, the bonus identifier.</p>"
                      },
                      {
                        "name": "bonusType",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>If this is for a bonus accrual type, the bonus type.</p>"
                      }
                    ]
                  },
                  {
                    "name": "transactionPartner",
                    "kind": "optional",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/TransactionPartner",
                    "customType": "TransactionPartner",
                    "schema": [
                      {
                        "name": "partnerName",
                        "kind": "optional",
                        "type": "string",
                        "description": "The partner program's name"
                      },
                      {
                        "name": "partnerCurrencyCategoryCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>The partner point category code (i.e. partner currency code)</p>"
                      }
                    ]
                  },
                  {
                    "name": "transactionPromotion",
                    "kind": "optional",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/TransactionPromotion",
                    "customType": "TransactionPromotion",
                    "schema": [
                      {
                        "name": "promotionCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "Promotion Code."
                      }
                    ]
                  },
                  {
                    "name": "transactionTransfer",
                    "kind": "optional",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/TransactionTransfer",
                    "customType": "TransactionTransfer",
                    "schema": [
                      {
                        "name": "fromMemberAccountNumber",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>If this a transfer, the transferor's account number</p>",
                        "example": "A234567890"
                      },
                      {
                        "name": "fromMemberName",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>If this a transfer, the transferor's name</p>",
                        "example": "Marcel Rufus"
                      },
                      {
                        "name": "toMemberAccountNumber",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>If this a transfer, the transferee's account number</p>",
                        "example": "B987654321"
                      },
                      {
                        "name": "toMemberName",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>If this a transfer, the transferee's name</p>",
                        "example": "Janel Liesje"
                      },
                      {
                        "name": "transferredBy",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Describes who initiated the transfer, can be an account number, member name, or other identifying data</p>",
                        "example": "A0123456789",
                        "maxLength": 25
                      }
                    ]
                  },
                  {
                    "name": "mergeDetails",
                    "kind": "optional",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/MergeDetail",
                    "customType": "MergeDetail",
                    "schema": [
                      {
                        "name": "fromMemberAccountNumber",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>If member is merged, the account number from which the transaction was merged</p>",
                        "example": "A234567890"
                      }
                    ]
                  },
                  {
                    "name": "transactionRelationships",
                    "kind": "optional",
                    "type": "array",
                    "description": "",
                    "modelRef": "#/components/schemas/TransactionRelationship",
                    "customType": "TransactionRelationship[]",
                    "schema": [
                      {
                        "name": "type",
                        "kind": "optional",
                        "type": "string<B2B_PREDECESSOR | B2B_SUCCESSOR | CLONE_SOURCE | CLONE_TARGET | POOL_REDEMPTION_CONTRIBUTION | POOL_REDEMPTION_SOURCE>",
                        "readOnly": true,
                        "description": "<p>Type of relationship. B2B_PREDECESSOR = Link to a back-to-back stay that was merged into this stay. B2B_SUCCESSOR = Link to a back-to-back stay that this stay was merged into. CLONE_SOURCE = Link to an earning from which this earning was cloned. CLONE_TARGET = Link to an earning that this earning was cloned into. POOL_REDEMPTION_CONTRIBUTION = A pool member's points contribution toward a pool redemption initiated by another member. POOL_REDEMPTION_SOURCE = The pool redemption that triggered this member's points contribution.</p>",
                        "example": "B2B_SUCCESSOR",
                        "enum": [
                          "B2B_PREDECESSOR",
                          "B2B_SUCCESSOR",
                          "CLONE_SOURCE",
                          "CLONE_TARGET",
                          "POOL_REDEMPTION_CONTRIBUTION",
                          "POOL_REDEMPTION_SOURCE"
                        ]
                      },
                      {
                        "name": "key",
                        "kind": "optional",
                        "type": "string",
                        "readOnly": true,
                        "description": "<p>Identifies a related transaction or object, with the relationship type defining its specific meaning. B2B_PREDECESSOR = Transaction ID of the back-to-back stay that was merged into this stay. B2B_SUCCESSOR = Transaction ID of the back-to-back stay that this stay was merged into. CLONE_SOURCE = Transaction ID of the earning from which this earning was cloned. CLONE_TARGET = Transaction ID of the earning that this earning was cloned into. POOL_REDEMPTION_CONTRIBUTION = Transaction ID of the contributing member's redemption. POOL_REDEMPTION_SOURCE = Transaction ID of the redemption that initiated the pool redemption.</p>",
                        "example": "EB-1234"
                      },
                      {
                        "name": "accountNumber",
                        "kind": "optional",
                        "type": "string",
                        "readOnly": true,
                        "description": "<p>Account number of the originating member for CLONE_SOURCE relationships, or the account number of the contributing member for POOL_REDEMPTION_CONTRIBUTION relationships, or the account number of the member who initiated the redemption for POOL_REDEMPTION_SOURCE relationships.</p>"
                      }
                    ]
                  }
                ]
              },
              {
                "name": "coupons",
                "kind": "optional",
                "type": "array",
                "readOnly": true,
                "description": "<p>If redemption is for a coupon, the coupons associated to the redemption</p>",
                "modelRef": "#/components/schemas/MemberCoupon",
                "customType": "MemberCoupon[]",
                "schema": [
                  {
                    "name": "memberCouponId",
                    "kind": "optional",
                    "type": "integer<int64>",
                    "description": "<p>Member Coupon Id (null on create requests)</p>",
                    "example": 147258369,
                    "format": "int64"
                  },
                  {
                    "name": "memberIdentifier",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "<p>Channel/Partner specific member identifier</p>",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  {
                    "name": "coupon",
                    "kind": "required",
                    "type": "object",
                    "description": "",
                    "modelRef": "#/components/schemas/Coupon",
                    "customType": "Coupon",
                    "schema": [
                      {
                        "name": "couponId",
                        "kind": "optional",
                        "type": "integer<int64>",
                        "readOnly": true,
                        "description": "<p>Coupon Id (null on create requests)</p>",
                        "example": 147258369,
                        "format": "int64"
                      },
                      {
                        "name": "couponRequestId",
                        "kind": "optional",
                        "type": "integer<int64>",
                        "readOnly": true,
                        "description": "Id of the coupon request that generated this coupon",
                        "example": 147258370,
                        "format": "int64"
                      },
                      {
                        "name": "offer",
                        "kind": "optional",
                        "type": "object",
                        "description": "Offer defines an offer user which coupons can be issued",
                        "modelRef": "#/components/schemas/Offer",
                        "customType": "Offer",
                        "schema": [
                          {
                            "name": "offerId",
                            "kind": "optional",
                            "type": "integer<int64>",
                            "description": "<p>Offer Id (null on create requests)</p>",
                            "example": 147258369,
                            "format": "int64"
                          },
                          {
                            "name": "offerTypeCode",
                            "kind": "required",
                            "type": "string",
                            "description": "Offer Type Code",
                            "example": "Discount"
                          },
                          {
                            "name": "code",
                            "kind": "optional",
                            "type": "string",
                            "description": "External offer code. Provided by client during offer setup.",
                            "example": "ALON2020"
                          },
                          {
                            "name": "name",
                            "kind": "optional",
                            "type": "string",
                            "description": "Offer Name",
                            "example": "Free night"
                          },
                          {
                            "name": "description",
                            "kind": "optional",
                            "type": "string",
                            "description": "Offer Description",
                            "example": "Award double points"
                          },
                          {
                            "name": "featureVersion",
                            "kind": "optional",
                            "type": "integer<int32>",
                            "description": "Coupon implementation version",
                            "example": 2,
                            "format": "int32"
                          },
                          {
                            "name": "statusCode",
                            "kind": "required",
                            "type": "string",
                            "description": "<p>Offer Status Code, one of Enabled, Disabled</p>",
                            "example": "Enabled"
                          },
                          {
                            "name": "startDateTime",
                            "kind": "optional",
                            "type": "string<date-time>",
                            "description": "Offer start DateTime",
                            "format": "date-time"
                          },
                          {
                            "name": "endDateTime",
                            "kind": "optional",
                            "type": "string<date-time>",
                            "description": "Offer end DateTime",
                            "format": "date-time"
                          },
                          {
                            "name": "offerAttributes",
                            "kind": "optional",
                            "type": "array",
                            "description": "<p>If includeOfferAttributes is true, Offer Attributes</p>",
                            "modelRef": "#/components/schemas/OfferAttribute",
                            "customType": "OfferAttribute[]",
                            "schema": [
                              {
                                "name": "offerAttributeId",
                                "kind": "optional",
                                "type": "integer<int64>",
                                "description": "<p>Offer Attribute Id (null on create requests)</p>",
                                "example": 147258369,
                                "format": "int64"
                              },
                              {
                                "name": "attribute",
                                "kind": "required",
                                "type": "object",
                                "description": "",
                                "modelRef": "#/components/schemas/Attribute",
                                "customType": "Attribute",
                                "schema": [
                                  {
                                    "name": "attributeId",
                                    "kind": "optional",
                                    "type": "integer<int64>",
                                    "readOnly": true,
                                    "description": "<p>Attribute Id (null on create requests)</p>",
                                    "example": 147258369,
                                    "format": "int64"
                                  },
                                  {
                                    "name": "typeCode",
                                    "kind": "required",
                                    "type": "string",
                                    "description": "<p>Attribute Type Code, one of: Validation, Reporting</p>",
                                    "example": "Validation"
                                  },
                                  {
                                    "name": "statusCode",
                                    "kind": "required",
                                    "type": "string",
                                    "description": "<p>Attribute Status Code, one of: Enabled, Disabled</p>",
                                    "example": "Enabled"
                                  },
                                  {
                                    "name": "name",
                                    "kind": "optional",
                                    "type": "string",
                                    "description": "Attribute Name",
                                    "example": "AccountNumber"
                                  },
                                  {
                                    "name": "description",
                                    "kind": "optional",
                                    "type": "string",
                                    "description": "Attribute Description",
                                    "example": "Account Number"
                                  },
                                  {
                                    "name": "dataTypeCode",
                                    "kind": "required",
                                    "type": "string",
                                    "description": "<p>Attribute Data Type Code, one of: boolean, choice, date, memberAccount, multiselect, numeric, open</p>",
                                    "example": "open"
                                  }
                                ]
                              },
                              {
                                "name": "defaultValue",
                                "kind": "optional",
                                "type": "string",
                                "description": "Indicates what shall be used if no other value is supplied",
                                "example": "Standard"
                              },
                              {
                                "name": "requireOnUse",
                                "kind": "optional",
                                "type": "boolean",
                                "description": "Indicates if presence of attribute is required for coupon use operation",
                                "example": true
                              },
                              {
                                "name": "requireOnHold",
                                "kind": "optional",
                                "type": "boolean",
                                "description": "Indicates if presence of attribute is required for coupon hold operation",
                                "example": true
                              },
                              {
                                "name": "includeOnResponse",
                                "kind": "optional",
                                "type": "boolean",
                                "description": "<p>If true: The system will include this Attribute and Value on Coupon Use or Validation response</p>",
                                "example": false
                              },
                              {
                                "name": "attributeTypeCode",
                                "kind": "optional",
                                "type": "string",
                                "description": "<p>Attribute Type Code, one of: Validation, Reporting</p>",
                                "example": "Validation"
                              },
                              {
                                "name": "operatorCode",
                                "kind": "optional",
                                "type": "string",
                                "description": "<p>Attribute operator code. Examples: EQ, NEQ, LT, LTE, GT, GTE</p>",
                                "example": "EQ"
                              },
                              {
                                "name": "operand",
                                "kind": "optional",
                                "type": "string",
                                "description": "Value that operator applies to",
                                "example": "GI"
                              },
                              {
                                "name": "smartGroupId",
                                "kind": "optional",
                                "type": "integer<int64>",
                                "description": "Id of the Smart Group that operator applies to",
                                "example": 147258369,
                                "format": "int64"
                              }
                            ]
                          },
                          {
                            "name": "benefits",
                            "kind": "optional",
                            "type": "object",
                            "description": "<p>Benefit configuration on the offer. Only populated when includeBenefits=true.</p>",
                            "modelRef": "#/components/schemas/CouponBenefits",
                            "customType": "CouponBenefits",
                            "schema": [
                              {
                                "name": "tierCode",
                                "kind": "optional",
                                "type": "string",
                                "description": "Result tier code awarded at time of coupon use",
                                "example": "Gold",
                                "maxLength": 50
                              },
                              {
                                "name": "futureTierCode",
                                "kind": "optional",
                                "type": "string",
                                "description": "Future result tier code awarded at time of coupon use",
                                "example": "Platinum",
                                "maxLength": 50
                              },
                              {
                                "name": "bonusCode",
                                "kind": "optional",
                                "type": "string",
                                "description": "Bonus rule code awarded at time of coupon use",
                                "example": "STAY_BONUS",
                                "maxLength": 50
                              },
                              {
                                "name": "redemption",
                                "kind": "optional",
                                "type": "object",
                                "description": "Redemption benefit awarded at time of coupon use",
                                "modelRef": "#/components/schemas/CouponBenefitsRedemption",
                                "customType": "CouponBenefitsRedemption",
                                "schema": [
                                  {
                                    "name": "ruleCode",
                                    "kind": "optional",
                                    "type": "string",
                                    "description": "Redemption rule code awarded at time of coupon use",
                                    "example": "ITEM1",
                                    "maxLength": 50
                                  },
                                  {
                                    "name": "quantity",
                                    "kind": "optional",
                                    "type": "integer<int32>",
                                    "description": "Number of redemption awards to create at time of coupon use",
                                    "example": 1,
                                    "format": "int32"
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "name": "code",
                        "kind": "optional",
                        "type": "string",
                        "readOnly": true,
                        "description": "Unique external ID for coupon instance",
                        "example": "ZPVWTAROW2OQ"
                      },
                      {
                        "name": "statusCode",
                        "kind": "optional",
                        "type": "string",
                        "readOnly": true,
                        "description": "<p>Coupon Status Code, one of Activated, Cancelled, Inactive, Terminated</p>",
                        "example": "Activated"
                      },
                      {
                        "name": "startDate",
                        "kind": "optional",
                        "type": "string<date>",
                        "description": "Earliest date when coupon can be used",
                        "format": "date"
                      },
                      {
                        "name": "endDate",
                        "kind": "optional",
                        "type": "string<date>",
                        "description": "Latest date when coupon can be used",
                        "format": "date"
                      },
                      {
                        "name": "useTypeCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "<p>Coupon Use Type Code, one of Multi, Single</p>",
                        "example": "Single",
                        "default": "Single"
                      },
                      {
                        "name": "useLimit",
                        "kind": "optional",
                        "type": "integer<int32>",
                        "readOnly": true,
                        "description": "The number of times a coupon may be used",
                        "example": 1,
                        "default": 1,
                        "format": "int32"
                      },
                      {
                        "name": "currentUse",
                        "kind": "optional",
                        "type": "integer<int32>",
                        "readOnly": true,
                        "description": "Current count of uses logged",
                        "example": 1,
                        "format": "int32"
                      },
                      {
                        "name": "couponUses",
                        "kind": "optional",
                        "type": "array",
                        "description": "<p>If includeUses is true, the uses of the coupon. This is only populated after a coupon has been applied to a member</p>",
                        "modelRef": "#/components/schemas/CouponUse",
                        "customType": "CouponUse[]",
                        "schema": [
                          {
                            "name": "useDateTime",
                            "kind": "optional",
                            "type": "string<date-time>",
                            "description": "Recorded DateTime of use",
                            "format": "date-time"
                          },
                          {
                            "name": "statusCode",
                            "kind": "required",
                            "type": "string",
                            "description": "<p>Coupon Use status code, one of: Released, Returned, Used</p>",
                            "example": "Used"
                          },
                          {
                            "name": "channelCode",
                            "kind": "required",
                            "type": "string",
                            "description": "<p>Coupon Use channel code, one of: CallCenter, System</p>",
                            "example": "System"
                          },
                          {
                            "name": "alias",
                            "kind": "optional",
                            "type": "string",
                            "description": "Alias of a coupon use as unique key for a given coupon. Operationally used to check for duplicate holds."
                          },
                          {
                            "name": "useCount",
                            "kind": "required",
                            "type": "integer<int32>",
                            "description": "Number of times coupon was used",
                            "example": 1,
                            "format": "int32"
                          },
                          {
                            "name": "couponUseAttributes",
                            "kind": "optional",
                            "type": "array",
                            "description": "<p>If includeAttributes is true, Coupon Use Attributes</p>",
                            "modelRef": "#/components/schemas/CouponUseAttribute",
                            "customType": "CouponUseAttribute[]",
                            "schema": [
                              {
                                "name": "couponUseAttributeId",
                                "kind": "optional",
                                "type": "integer<int64>",
                                "description": "<p>Coupon Use Attribute Id (null on create requests)</p>",
                                "example": 147258369,
                                "format": "int64"
                              },
                              {
                                "name": "attribute",
                                "kind": "required",
                                "type": "object",
                                "description": "",
                                "modelRef": "#/components/schemas/Attribute",
                                "customType": "Attribute",
                                "schema": [
                                  {
                                    "name": "attributeId",
                                    "kind": "optional",
                                    "type": "integer<int64>",
                                    "readOnly": true,
                                    "description": "<p>Attribute Id (null on create requests)</p>",
                                    "example": 147258369,
                                    "format": "int64"
                                  },
                                  {
                                    "name": "typeCode",
                                    "kind": "required",
                                    "type": "string",
                                    "description": "<p>Attribute Type Code, one of: Validation, Reporting</p>",
                                    "example": "Validation"
                                  },
                                  {
                                    "name": "statusCode",
                                    "kind": "required",
                                    "type": "string",
                                    "description": "<p>Attribute Status Code, one of: Enabled, Disabled</p>",
                                    "example": "Enabled"
                                  },
                                  {
                                    "name": "name",
                                    "kind": "optional",
                                    "type": "string",
                                    "description": "Attribute Name",
                                    "example": "AccountNumber"
                                  },
                                  {
                                    "name": "description",
                                    "kind": "optional",
                                    "type": "string",
                                    "description": "Attribute Description",
                                    "example": "Account Number"
                                  },
                                  {
                                    "name": "dataTypeCode",
                                    "kind": "required",
                                    "type": "string",
                                    "description": "<p>Attribute Data Type Code, one of: boolean, choice, date, memberAccount, multiselect, numeric, open</p>",
                                    "example": "open"
                                  }
                                ]
                              },
                              {
                                "name": "value",
                                "kind": "optional",
                                "type": "string",
                                "description": "Value associated with the attribute",
                                "example": "Standard"
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "name": "couponAttributes",
                        "kind": "optional",
                        "type": "array",
                        "description": "<p>If includeAttributes is true, Coupon Attributes</p>",
                        "modelRef": "#/components/schemas/CouponAttribute",
                        "customType": "CouponAttribute[]",
                        "schema": [
                          {
                            "name": "couponAttributeId",
                            "kind": "optional",
                            "type": "integer<int64>",
                            "readOnly": true,
                            "description": "<p>Coupon Attribute Id (null on create requests)</p>",
                            "example": 147258369,
                            "format": "int64"
                          },
                          {
                            "name": "attribute",
                            "kind": "required",
                            "type": "object",
                            "description": "",
                            "modelRef": "#/components/schemas/Attribute",
                            "customType": "Attribute",
                            "schema": [
                              {
                                "name": "attributeId",
                                "kind": "optional",
                                "type": "integer<int64>",
                                "readOnly": true,
                                "description": "<p>Attribute Id (null on create requests)</p>",
                                "example": 147258369,
                                "format": "int64"
                              },
                              {
                                "name": "typeCode",
                                "kind": "required",
                                "type": "string",
                                "description": "<p>Attribute Type Code, one of: Validation, Reporting</p>",
                                "example": "Validation"
                              },
                              {
                                "name": "statusCode",
                                "kind": "required",
                                "type": "string",
                                "description": "<p>Attribute Status Code, one of: Enabled, Disabled</p>",
                                "example": "Enabled"
                              },
                              {
                                "name": "name",
                                "kind": "optional",
                                "type": "string",
                                "description": "Attribute Name",
                                "example": "AccountNumber"
                              },
                              {
                                "name": "description",
                                "kind": "optional",
                                "type": "string",
                                "description": "Attribute Description",
                                "example": "Account Number"
                              },
                              {
                                "name": "dataTypeCode",
                                "kind": "required",
                                "type": "string",
                                "description": "<p>Attribute Data Type Code, one of: boolean, choice, date, memberAccount, multiselect, numeric, open</p>",
                                "example": "open"
                              }
                            ]
                          },
                          {
                            "name": "value",
                            "kind": "optional",
                            "type": "string",
                            "description": "Value associated with the attribute",
                            "example": "2021-12-31T12:00:00"
                          },
                          {
                            "name": "requireOnUse",
                            "kind": "optional",
                            "type": "boolean",
                            "readOnly": true,
                            "description": "<p>When using the coupon, a value is required for the attribute</p>",
                            "example": true
                          },
                          {
                            "name": "requireOnHold",
                            "kind": "optional",
                            "type": "boolean",
                            "readOnly": true,
                            "description": "<p>When putting the coupon on hold, a value is required for the attribute</p>",
                            "example": false
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "name": "sourceTypeCode",
                    "kind": "required",
                    "type": "string",
                    "description": "<p>Coupon Award Source Type Code. Example: Adjustment, Bonus, Promotion, Redemption, TierAward</p>",
                    "example": "Promotion"
                  },
                  {
                    "name": "sourceReferenceRuleCode",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "<p>Promotion/Bonus/Redemption Rule code that awarded the coupon</p>",
                    "example": "StayBonus"
                  },
                  {
                    "name": "sourceReferenceId",
                    "kind": "required",
                    "type": "integer<int64>",
                    "description": "Id of the source of the coupon award. ie. the bonusId",
                    "example": 147258369,
                    "format": "int64"
                  },
                  {
                    "name": "aggregateStatusCode",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Aggregate Coupon Status Code, one of Used, Held, Issued, Expired, Cancelled. The status, in aggregate of the coupon. This value is determined by examining the status values of all of the coupon uses as well as the coupon status. Between issued and expired (coupon status), held and used (coupon use status), will determine what the aggregate status of the coupon should be. Only populated if includeUses flag is set in the request or if searching by aggregateStatusCode.</p>",
                    "example": "Active"
                  },
                  {
                    "name": "statusCode",
                    "kind": "required",
                    "type": "string",
                    "description": "<p>Member Coupon Status Code, one of Active, Cancelled, Expired</p>",
                    "example": "Active"
                  },
                  {
                    "name": "transferable",
                    "kind": "optional",
                    "type": "boolean",
                    "description": "Whether this coupon is eligible to be transferred to another member"
                  },
                  {
                    "name": "previouslyTransferred",
                    "kind": "optional",
                    "type": "boolean",
                    "description": "Whether this coupon has already been transferred at least once"
                  }
                ]
              },
              {
                "name": "relatedRedemptionId",
                "kind": "optional",
                "type": "integer<int64>",
                "readOnly": true,
                "description": "Related cancel redemption Id",
                "example": 12342328,
                "format": "int64"
              },
              {
                "name": "fraudRiskScore",
                "kind": "optional",
                "type": "number",
                "readOnly": true,
                "description": "<p>Fraud risk score from 0-100 with up to 2 decimal places</p>",
                "example": 25.75,
                "minimum": 0,
                "maximum": 100
              },
              {
                "name": "fraudConfirmation",
                "kind": "optional",
                "type": "boolean",
                "description": "<p>true = confirmed fraud; false = confirmed not fraud; null = not yet confirmed</p>"
              },
              {
                "name": "status",
                "kind": "optional",
                "type": "string",
                "description": "<p>Status of the redemptions. Values are Shipped, Pending, Cancelled, Ordered, Queued, Held, Fraud.</p>"
              },
              {
                "name": "redemptionRuleCode",
                "kind": "optional",
                "type": "string",
                "readOnly": true,
                "description": "Redemption rule code for the rule that relates to this member redemption."
              },
              {
                "name": "transactionAmount",
                "kind": "optional",
                "type": "number",
                "description": "<p>Client-defined value set at creation time. Does not affect points redeemed.</p>"
              },
              {
                "name": "invoiceNumber",
                "kind": "optional",
                "type": "string",
                "description": "<p>Client-defined reference number used to identify order information for fulfillment.</p>"
              },
              {
                "name": "lineItems",
                "kind": "optional",
                "type": "array",
                "description": "list of line items redeemed",
                "modelRef": "#/components/schemas/MemberRedemptionLineItem",
                "customType": "MemberRedemptionLineItem[]",
                "schema": [
                  {
                    "name": "description",
                    "kind": "optional",
                    "type": "string",
                    "description": "redemption item description"
                  },
                  {
                    "name": "itemCode",
                    "kind": "optional",
                    "type": "string",
                    "description": "Code for the item to be rewarded"
                  },
                  {
                    "name": "quantity",
                    "kind": "optional",
                    "type": "integer<int32>",
                    "description": "Quantity of the item being redeemed",
                    "format": "int32"
                  },
                  {
                    "name": "amount",
                    "kind": "optional",
                    "type": "number",
                    "description": "redemption item amount",
                    "minimum": 1
                  }
                ]
              },
              {
                "name": "poolFunding",
                "kind": "optional",
                "type": "array",
                "readOnly": true,
                "description": "<p>When a redemption is funded by a points pool, this list shows each contributing pool member and the number of points they contributed. Present only when the point-pooling feature flag is enabled and the redemption drew from pool members. For validateOnly requests this is a preview; for saved redemptions this is final.</p>",
                "modelRef": "#/components/schemas/RedemptionPoolContribution",
                "customType": "RedemptionPoolContribution[]",
                "schema": [
                  {
                    "name": "memberIdentifier",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "Identifier of the pool member contributing points",
                    "example": 123456789
                  },
                  {
                    "name": "contributionAmount",
                    "kind": "optional",
                    "type": "number",
                    "readOnly": true,
                    "description": "Number of points contributed by this pool member",
                    "example": 375
                  }
                ]
              },
              {
                "name": "poolCancellations",
                "kind": "optional",
                "type": "array",
                "readOnly": true,
                "description": "<p>When a pool-funded redemption is cancelled, this list shows each contributing pool member whose child redemption was also cancelled, along with the points returned. Contributors whose member status does not allow earning are excluded and their child redemptions are left unchanged.</p>",
                "modelRef": "#/components/schemas/RedemptionPoolContribution",
                "customType": "RedemptionPoolContribution[]",
                "schema": [
                  {
                    "name": "memberIdentifier",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "Identifier of the pool member contributing points",
                    "example": 123456789
                  },
                  {
                    "name": "contributionAmount",
                    "kind": "optional",
                    "type": "number",
                    "readOnly": true,
                    "description": "Number of points contributed by this pool member",
                    "example": 375
                  }
                ]
              }
            ],
            "modelRef": "#/components/schemas/MemberRedemption",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "202",
        "description": "Accepted",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "AsyncTask",
            "schema": [
              {
                "name": "asyncTaskId",
                "kind": "optional",
                "type": "integer<int64>",
                "readOnly": true,
                "description": "",
                "format": "int64"
              },
              {
                "name": "taskTypeCode",
                "kind": "optional",
                "type": "string",
                "description": "Task source",
                "example": "PlatformAPI"
              },
              {
                "name": "taskCode",
                "kind": "optional",
                "type": "string",
                "description": "Task type",
                "example": "enrollMember"
              },
              {
                "name": "requestDate",
                "kind": "optional",
                "type": "string<date-time>",
                "readOnly": true,
                "description": "Date and time the async task was created",
                "format": "date-time"
              },
              {
                "name": "requestData",
                "kind": "optional",
                "type": "object",
                "description": "Inputs for async task",
                "example": "",
                "schema": []
              },
              {
                "name": "statusCode",
                "kind": "optional",
                "type": "string",
                "description": "<p>Execution status of async task, one of: queued, processed, error</p>"
              },
              {
                "name": "responseDate",
                "kind": "optional",
                "type": "string<date-time>",
                "readOnly": true,
                "description": "Date and time the async task finished processing",
                "format": "date-time"
              },
              {
                "name": "responseData",
                "kind": "optional",
                "type": "object",
                "description": "Outputs of async task",
                "example": "",
                "schema": []
              },
              {
                "name": "fileName",
                "kind": "optional",
                "type": "string",
                "description": "Name of uploaded file"
              },
              {
                "name": "lineNumber",
                "kind": "optional",
                "type": "integer",
                "description": "Line number in uploaded file"
              },
              {
                "name": "fileData",
                "kind": "optional",
                "type": "string",
                "description": "Data from uploaded file"
              }
            ],
            "modelRef": "#/components/schemas/AsyncTask",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "400",
        "description": "Bad request",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ErrorResponse",
            "schema": [
              {
                "name": "errors",
                "kind": "optional",
                "type": "array",
                "description": "List of errors",
                "modelRef": "#/components/schemas/ValidationError",
                "customType": "ValidationError[]",
                "schema": [
                  {
                    "name": "code",
                    "kind": "optional",
                    "type": "string",
                    "description": "Error code assigned to this violation"
                  },
                  {
                    "name": "fieldName",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Name of field that violated validation constraint (optional)</p>"
                  },
                  {
                    "name": "message",
                    "kind": "optional",
                    "type": "string",
                    "description": "Internal message describing the error"
                  },
                  {
                    "name": "messageParameters",
                    "kind": "optional",
                    "type": "array",
                    "description": "Error message parameters",
                    "example": "",
                    "itemType": "object",
                    "customType": "object[]",
                    "schema": []
                  }
                ]
              }
            ],
            "modelRef": "#/components/schemas/ErrorResponse",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "401",
        "description": "Unauthorized",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "403",
        "description": "Forbidden",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "500",
        "description": "Internal error",
        "jsonExample": "",
        "isExpanded": true
      }
    ],
    "hasXCodeSamples": false,
    "examples": {
      "languages": [
        {
          "id": "VIWuEYhMklI80DMJzPYpS",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request POST \\\n     --url 'https://api.b.preview.loyaltyservices.io/api/v3/members/{memberIdentifier}/redemptions?createCouponUse=boolean&holdCoupon=boolean&validateOnly=boolean&allowOverRedeem=boolean&allowPoolRedeem=boolean&migrate=boolean&skipFraudCheck=boolean&async=boolean' \\\n     --header 'accept: application/json' \\\n     --header 'content-type: application/json' \\\n     --data '{\n     \"quantity\": \"\",\n     \"orderAddress\": {\n     \"address1\": \"\",\n     \"city\": \"\",\n     \"stateCode\": \"\",\n     \"zip\": \"\",\n     \"countryCode\": \"\"\n     }\n     }'"
        },
        {
          "id": "xOxkD4g3Ai3whqjXLdW21",
          "language": "ruby",
          "label": "Ruby",
          "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://api.b.preview.loyaltyservices.io/api/v3/members/{memberIdentifier}/redemptions?createCouponUse=boolean&holdCoupon=boolean&validateOnly=boolean&allowOverRedeem=boolean&allowPoolRedeem=boolean&migrate=boolean&skipFraudCheck=boolean&async=boolean\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Post.new(url)\nrequest[\"accept\"] = \"application/json\"\nrequest[\"content-type\"] = \"application/json\"\nrequest.body = JSON.dump({\n   \"quantity\": \"\",\n   \"orderAddress\": {\n      \"address1\": \"\",\n      \"city\": \"\",\n      \"stateCode\": \"\",\n      \"zip\": \"\",\n      \"countryCode\": \"\"\n   }\n})\n\nresponse = https.request(request)\nputs response.read_body\n"
        },
        {
          "id": "WzJzhrm8_xVDv1W9OgKo9",
          "language": "python",
          "label": "Python",
          "code": "import requests\nimport json\n\nurl = \"https://api.b.preview.loyaltyservices.io/api/v3/members/{memberIdentifier}/redemptions?createCouponUse=boolean&holdCoupon=boolean&validateOnly=boolean&allowOverRedeem=boolean&allowPoolRedeem=boolean&migrate=boolean&skipFraudCheck=boolean&async=boolean\"\n\npayload = json.dumps({\n   \"quantity\": \"\",\n   \"orderAddress\": {\n      \"address1\": \"\",\n      \"city\": \"\",\n      \"stateCode\": \"\",\n      \"zip\": \"\",\n      \"countryCode\": \"\"\n   }\n})\nheaders = {\n   'accept': 'application/json',\n   'content-type': 'application/json'\n}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
        },
        {
          "id": "8SyTGXGGgRRDt_5szD4mT",
          "language": "java",
          "label": "Java",
          "code": "OkHttpClient client = new OkHttpClient().newBuilder()\n   .build();\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\n  \\\"quantity\\\": \\\"\\\",\\n  \\\"orderAddress\\\": {\\n    \\\"address1\\\": \\\"\\\",\\n    \\\"city\\\": \\\"\\\",\\n    \\\"stateCode\\\": \\\"\\\",\\n    \\\"zip\\\": \\\"\\\",\\n    \\\"countryCode\\\": \\\"\\\"\\n  }\\n}\");\nRequest request = new Request.Builder()\n   .url(\"https://api.b.preview.loyaltyservices.io/api/v3/members/{memberIdentifier}/redemptions?createCouponUse=boolean&holdCoupon=boolean&validateOnly=boolean&allowOverRedeem=boolean&allowPoolRedeem=boolean&migrate=boolean&skipFraudCheck=boolean&async=boolean\")\n   .method(\"POST\", body)\n   .addHeader(\"accept\", \"application/json\")\n   .addHeader(\"content-type\", \"application/json\")\n   .build();\nResponse response = client.newCall(request).execute();"
        }
      ],
      "selectedLanguageId": "VIWuEYhMklI80DMJzPYpS"
    },
    "results": {
      "languages": [
        {
          "id": "buC6tv84tIu5BjbdZ28dB",
          "language": "200",
          "code": "// Success\n{\n  \"memberRedemptionId\": 1234,\n  \"memberIdentifier\": \"\",\n  \"redemptionItemCode\": \"GIFT-CARD-50\",\n  \"redemptionItemDescription\": \"50$ Gift Card\",\n  \"referenceId\": 12345,\n  \"redemptionDate\": \"2020-01-01\",\n  \"customData\": {\n    \"ace01\": \"\",\n    \"ace01Description\": \"\",\n    \"ace02\": \"\",\n    \"ace02Description\": \"\",\n    \"ace03\": \"\",\n    \"ace03Description\": \"\",\n    \"ace04\": \"\",\n    \"ace04Description\": \"\",\n    \"ace05\": \"\",\n    \"ace05Description\": \"\",\n    \"ace06\": \"\",\n    \"ace06Description\": \"\",\n    \"ace07\": \"\",\n    \"ace07Description\": \"\",\n    \"ace08\": \"\",\n    \"ace08Description\": \"\",\n    \"ace09\": \"\",\n    \"ace09Description\": \"\",\n    \"ace10\": \"\",\n    \"ace10Description\": \"\",\n    \"ace11\": \"\",\n    \"ace11Description\": \"\",\n    \"ace12\": \"\",\n    \"ace12Description\": \"\",\n    \"ace13\": \"\",\n    \"ace13Description\": \"\",\n    \"ace14\": \"\",\n    \"ace14Description\": \"\",\n    \"ace15\": \"\",\n    \"ace15Description\": \"\"\n  },\n  \"quantity\": 10,\n  \"currencyValue\": 100,\n  \"partnerCode\": \"PARTNER123\",\n  \"expectedShipDate\": \"2020-01-01\",\n  \"orderAddress\": {\n    \"name\": \"\",\n    \"address1\": \"\",\n    \"address2\": \"\",\n    \"address3\": \"\",\n    \"city\": \"\",\n    \"stateCode\": \"\",\n    \"zip\": \"\",\n    \"countryCode\": \"\",\n    \"emailAddress\": \"\",\n    \"phoneNumber\": \"\"\n  },\n  \"bonuses\": [\n    {\n      \"transactionId\": \"\",\n      \"transactionGroupId\": \"\",\n      \"transactionGroupReferenceId\": \"\",\n      \"parentTransactionId\": \"\",\n      \"linkedTransactionId\": \"\",\n      \"referenceId\": \"\",\n      \"memberIdentifier\": \"\",\n      \"accountNumber\": \"\",\n      \"memberRedemptionId\": \"1\",\n      \"transactionDateTime\": \"\",\n      \"partnerName\": \"\",\n      \"partnerProgramCode\": \"\",\n      \"description\": \"\",\n      \"typeCode\": \"\",\n      \"typeDescription\": \"\",\n      \"subTypeCode\": \"\",\n      \"postDate\": \"\",\n      \"originationDate\": \"\",\n      \"retro\": false,\n      \"edited\": false,\n      \"sourceCode\": \"\",\n      \"statusCode\": \"\",\n      \"updateDateTime\": \"\",\n      \"earningRuleDescription\": \"\",\n      \"customData\": {\n        \"ace01\": \"\",\n        \"ace01Description\": \"\",\n        \"ace02\": \"\",\n        \"ace02Description\": \"\",\n        \"ace03\": \"\",\n        \"ace03Description\": \"\",\n        \"ace04\": \"\",\n        \"ace04Description\": \"\",\n        \"ace05\": \"\",\n        \"ace05Description\": \"\",\n        \"ace06\": \"\",\n        \"ace06Description\": \"\",\n        \"ace07\": \"\",\n        \"ace07Description\": \"\",\n        \"ace08\": \"\",\n        \"ace08Description\": \"\",\n        \"ace09\": \"\",\n        \"ace09Description\": \"\",\n        \"ace10\": \"\",\n        \"ace10Description\": \"\",\n        \"ace11\": \"\",\n        \"ace11Description\": \"\",\n        \"ace12\": \"\",\n        \"ace12Description\": \"\",\n        \"ace13\": \"\",\n        \"ace13Description\": \"\",\n        \"ace14\": \"\",\n        \"ace14Description\": \"\",\n        \"ace15\": \"\",\n        \"ace15Description\": \"\"\n      },\n      \"spend\": {\n        \"perItem\": 0,\n        \"spendAmount\": 0,\n        \"currencyTypeCode\": \"\",\n        \"currencyCategoryCode\": \"\",\n        \"isoCurrencyCode\": \"\",\n        \"currencyConversionRatio\": \"\",\n        \"quantity\": \"\"\n      },\n      \"earn\": {\n        \"amount\": 0,\n        \"currencyTypeCode\": \"\",\n        \"currencyCategoryCode\": \"\",\n        \"earningsLimited\": false,\n        \"tierQualifying\": false,\n        \"transactionCounters\": [\n          {\n            \"counterTypeCode\": \"\",\n            \"counterValue\": 0\n          }\n        ]\n      },\n      \"redemption\": {\n        \"redemptionItemCode\": \"\",\n        \"currencyRequired\": 0,\n        \"minimumQuantity\": \"\",\n        \"maximumQuantity\": \"\",\n        \"redeemIncrement\": \"\",\n        \"faceValue\": 0,\n        \"amountProvided\": false,\n        \"poolName\": \"PL-16\",\n        \"lineItems\": [\n          {\n            \"description\": \"\",\n            \"itemCode\": \"\",\n            \"quantity\": \"\",\n            \"amount\": 0\n          }\n        ]\n      },\n      \"expiredCurrency\": {\n        \"expiredAmount\": 0,\n        \"expiredDate\": \"\",\n        \"currencyTypeCode\": \"\",\n        \"currencyCategoryCode\": \"\"\n      },\n      \"hotelTransaction\": {\n        \"checkInDate\": \"\",\n        \"checkOutDate\": \"\",\n        \"eligibleStays\": \"\",\n        \"eligibleCappedNights\": \"\",\n        \"eligibleNights\": \"\",\n        \"roomNumber\": \"\",\n        \"roomType\": \"\",\n        \"roomRate\": 0,\n        \"roomRateIntl\": 0,\n        \"totalRevenueAmount\": 0,\n        \"totalRevenueAmountIntl\": 0,\n        \"loyaltyEligibleAmount\": 0,\n        \"loyaltyEligibleAmountIntl\": 0,\n        \"loyaltyIneligibleAmount\": 0,\n        \"loyaltyIneligibleAmountIntl\": 0,\n        \"isoCurrencyCode\": \"\",\n        \"bookingSource\": \"\",\n        \"paymentCode\": \"\",\n        \"purposeOfVisit\": \"\",\n        \"travelAgentName\": \"\",\n        \"groupName\": \"\",\n        \"companyName\": \"\",\n        \"reservationConfirmationNumber\": \"\",\n        \"noShow\": false,\n        \"pmsConfirmationNumber\": \"\",\n        \"overlappingStayPoolId\": \"\",\n        \"nonStayIndicator\": false,\n        \"nonStayLocationId\": \"\",\n        \"nonStayEligibleRevenue\": 0,\n        \"nonStayEligibleRevenueIntl\": 0,\n        \"nonStayIneligibleRevenue\": 0,\n        \"nonStayIneligibleRevenueIntl\": 0,\n        \"checkNumber\": \"\"\n      },\n      \"travelTransaction\": {\n        \"activityStartDateTime\": \"\",\n        \"activityEndDateTime\": \"\",\n        \"totalSpendAmount\": 0\n      },\n      \"retailTransaction\": {\n        \"transactionNbr\": \"\",\n        \"pointOfSaleTransNbr\": \"\",\n        \"transactionSequenceNbr\": \"\",\n        \"store\": \"\",\n        \"register\": \"\"\n      },\n      \"transactionReference\": \"\",\n      \"cancelable\": false,\n      \"editable\": false,\n      \"createUserId\": \"\",\n      \"createUserName\": \"\",\n      \"updateUserId\": \"\",\n      \"updateUserName\": \"\",\n      \"memberCommentId\": \"\",\n      \"cancellationSubReason\": \"\",\n      \"businessEligible\": false,\n      \"businessAccountNumber\": \"\",\n      \"awardNumber\": \"\",\n      \"baseAccountNumber\": \"\",\n      \"transactionAdjustment\": {\n        \"comments\": \"\",\n        \"referenceId\": \"\",\n        \"reasonCode\": \"\"\n      },\n      \"transactionBonus\": {\n        \"bonusCode\": \"\",\n        \"bonusType\": \"\"\n      },\n      \"transactionPartner\": {\n        \"partnerName\": \"\",\n        \"partnerCurrencyCategoryCode\": \"\"\n      },\n      \"transactionPromotion\": {\n        \"promotionCode\": \"\"\n      },\n      \"transactionTransfer\": {\n        \"fromMemberAccountNumber\": \"A234567890\",\n        \"fromMemberName\": \"Marcel Rufus\",\n        \"toMemberAccountNumber\": \"B987654321\",\n        \"toMemberName\": \"Janel Liesje\",\n        \"transferredBy\": \"A0123456789\"\n      },\n      \"mergeDetails\": {\n        \"fromMemberAccountNumber\": \"A234567890\"\n      },\n      \"transactionRelationships\": [\n        {\n          \"type\": \"B2B_SUCCESSOR\",\n          \"key\": \"EB-1234\",\n          \"accountNumber\": \"\"\n        }\n      ]\n    }\n  ],\n  \"coupons\": [\n    {\n      \"memberCouponId\": 147258369,\n      \"memberIdentifier\": \"\",\n      \"coupon\": {\n        \"couponId\": 147258369,\n        \"couponRequestId\": 147258370,\n        \"offer\": {\n          \"offerId\": 147258369,\n          \"offerTypeCode\": \"Discount\",\n          \"code\": \"ALON2020\",\n          \"name\": \"Free night\",\n          \"description\": \"Award double points\",\n          \"featureVersion\": 2,\n          \"statusCode\": \"Enabled\",\n          \"startDateTime\": \"\",\n          \"endDateTime\": \"\",\n          \"offerAttributes\": [\n            {\n              \"offerAttributeId\": 147258369,\n              \"attribute\": {\n                \"attributeId\": 147258369,\n                \"typeCode\": \"Validation\",\n                \"statusCode\": \"Enabled\",\n                \"name\": \"AccountNumber\",\n                \"description\": \"Account Number\",\n                \"dataTypeCode\": \"open\"\n              },\n              \"defaultValue\": \"Standard\",\n              \"requireOnUse\": true,\n              \"requireOnHold\": true,\n              \"includeOnResponse\": false,\n              \"attributeTypeCode\": \"Validation\",\n              \"operatorCode\": \"EQ\",\n              \"operand\": \"GI\",\n              \"smartGroupId\": 147258369\n            }\n          ],\n          \"benefits\": {\n            \"tierCode\": \"Gold\",\n            \"futureTierCode\": \"Platinum\",\n            \"bonusCode\": \"STAY_BONUS\",\n            \"redemption\": {\n              \"ruleCode\": \"ITEM1\",\n              \"quantity\": 1\n            }\n          }\n        },\n        \"code\": \"ZPVWTAROW2OQ\",\n        \"statusCode\": \"Activated\",\n        \"startDate\": \"\",\n        \"endDate\": \"\",\n        \"useTypeCode\": \"Single\",\n        \"useLimit\": 1,\n        \"currentUse\": 1,\n        \"couponUses\": [\n          {\n            \"useDateTime\": \"\",\n            \"statusCode\": \"Used\",\n            \"channelCode\": \"System\",\n            \"alias\": \"\",\n            \"useCount\": 1,\n            \"couponUseAttributes\": [\n              {\n                \"couponUseAttributeId\": 147258369,\n                \"attribute\": {\n                  \"attributeId\": 147258369,\n                  \"typeCode\": \"Validation\",\n                  \"statusCode\": \"Enabled\",\n                  \"name\": \"AccountNumber\",\n                  \"description\": \"Account Number\",\n                  \"dataTypeCode\": \"open\"\n                },\n                \"value\": \"Standard\"\n              }\n            ]\n          }\n        ],\n        \"couponAttributes\": [\n          {\n            \"couponAttributeId\": 147258369,\n            \"attribute\": {\n              \"attributeId\": 147258369,\n              \"typeCode\": \"Validation\",\n              \"statusCode\": \"Enabled\",\n              \"name\": \"AccountNumber\",\n              \"description\": \"Account Number\",\n              \"dataTypeCode\": \"open\"\n            },\n            \"value\": \"2021-12-31T12:00:00\",\n            \"requireOnUse\": true,\n            \"requireOnHold\": false\n          }\n        ]\n      },\n      \"sourceTypeCode\": \"Promotion\",\n      \"sourceReferenceRuleCode\": \"StayBonus\",\n      \"sourceReferenceId\": 147258369,\n      \"aggregateStatusCode\": \"Active\",\n      \"statusCode\": \"Active\",\n      \"transferable\": false,\n      \"previouslyTransferred\": false\n    }\n  ],\n  \"relatedRedemptionId\": 12342328,\n  \"fraudRiskScore\": 25.75,\n  \"fraudConfirmation\": false,\n  \"status\": \"\",\n  \"redemptionRuleCode\": \"\",\n  \"transactionAmount\": 0,\n  \"invoiceNumber\": \"\",\n  \"lineItems\": [\n    {\n      \"description\": \"\",\n      \"itemCode\": \"\",\n      \"quantity\": \"\",\n      \"amount\": 0\n    }\n  ],\n  \"poolFunding\": [\n    {\n      \"memberIdentifier\": 123456789,\n      \"contributionAmount\": 375\n    }\n  ],\n  \"poolCancellations\": [\n    {\n      \"memberIdentifier\": 123456789,\n      \"contributionAmount\": 375\n    }\n  ]\n}"
        },
        {
          "id": "SgjFQj2HjMfvIlRUW83I3",
          "language": "202",
          "code": "// Accepted\n{\n  \"asyncTaskId\": \"\",\n  \"taskTypeCode\": \"PlatformAPI\",\n  \"taskCode\": \"enrollMember\",\n  \"requestDate\": \"\",\n  \"requestData\": {},\n  \"statusCode\": \"\",\n  \"responseDate\": \"\",\n  \"responseData\": {},\n  \"fileName\": \"\",\n  \"lineNumber\": 0,\n  \"fileData\": \"\"\n}"
        },
        {
          "id": "Bc5VWc7Btjhzrezw7zZcn",
          "language": "400",
          "code": "// Bad request\n{\n  \"errors\": [\n    {\n      \"code\": \"\",\n      \"fieldName\": \"\",\n      \"message\": \"\",\n      \"messageParameters\": [\n        {}\n      ]\n    }\n  ]\n}"
        },
        {
          "id": "0TCPkltSiUGl-JlMV78rX",
          "language": "401",
          "code": "// Unauthorized\n"
        },
        {
          "id": "l8S-bJPCT69z8V-e0UQH-",
          "language": "403",
          "code": "// Forbidden\n"
        },
        {
          "id": "rkX1yzAQtcVAKqN48pjJl",
          "language": "500",
          "code": "// Internal error\n"
        }
      ],
      "selectedLanguageId": "buC6tv84tIu5BjbdZ28dB"
    }
  },
  "children": [
    {
      "text": ""
    }
  ]
}