---
title: Post Member Bonus
slug: post-member-bonus
docTags: 
createdAt: 2025-09-12T20:51:26.464Z
---

{
  "id": "Lb1XFaF6KONXHfkRRZHJW",
  "type": "api-oas-v2",
  "data": {
    "method": "POST",
    "url": "https://api.b.preview.loyaltyservices.io/api/v3/members/{memberIdentifier}/bonuses",
    "servers": [
      {
        "url": "https://api.b.preview.loyaltyservices.io/api/v3/members/{memberIdentifier}/bonuses"
      }
    ],
    "name": "Post Member Bonus",
    "description": "Submit a bonus to a member account.",
    "contentType": "application/json",
    "request": {
      "pathParameters": [
        {
          "kind": "required",
          "name": "memberIdentifier",
          "type": "string",
          "example": 2345641,
          "description": "Member identifier for member earning bonus",
          "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": "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": "required",
          "name": "body",
          "type": "object",
          "description": "",
          "customType": "BonusRequest",
          "schema": [
            {
              "name": "bonusCode",
              "kind": "optional",
              "type": "string",
              "description": "Code identifying bonus to be awarded"
            },
            {
              "name": "amount",
              "kind": "optional",
              "type": "number",
              "description": "<p>Value of bonus award if bonus is configured as provided (i.e. number of points, coupons, etc.)</p>"
            },
            {
              "name": "counterAmounts",
              "kind": "optional",
              "type": "object",
              "description": "",
              "modelRef": "#/components/schemas/CountersMap",
              "customType": "CountersMap",
              "schema": []
            },
            {
              "name": "referenceId",
              "kind": "optional",
              "type": "string",
              "description": "Client or partner reference identifier to bonus earning"
            },
            {
              "name": "comment",
              "kind": "optional",
              "type": "string",
              "description": "Creates Call Log comment associated to bonus",
              "maxLength": 3000
            },
            {
              "name": "quantity",
              "kind": "optional",
              "type": "integer<int32>",
              "description": "Number of times the bonus will be requested",
              "format": "int32"
            },
            {
              "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>"
                }
              ]
            }
          ],
          "modelRef": "#/components/schemas/BonusRequest",
          "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-bonus:add"
          ]
        }
      ],
      "cookieParameters": []
    },
    "responses": [
      {
        "statusCode": "200",
        "description": "Success",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "MemberBonus",
            "schema": [
              {
                "name": "bonus",
                "kind": "optional",
                "type": "object",
                "description": "Bonus rule for the member bonus award",
                "modelRef": "#/components/schemas/Bonus",
                "customType": "Bonus",
                "schema": [
                  {
                    "name": "bonusCode",
                    "kind": "optional",
                    "type": "string",
                    "description": "Natural key of the Bonus Rule"
                  },
                  {
                    "name": "bonusDescription",
                    "kind": "optional",
                    "type": "string",
                    "description": "Member friendly description of the Bonus Rule"
                  }
                ]
              },
              {
                "name": "transactions",
                "kind": "optional",
                "type": "array",
                "description": "List of earnings or redemptions awarded from the bonus",
                "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",
                "description": "List of coupons awarded from the bonus",
                "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": "memberTier",
                "kind": "optional",
                "type": "object",
                "description": "Member tier awarded from the bonus",
                "modelRef": "#/components/schemas/MemberTier",
                "customType": "MemberTier",
                "schema": [
                  {
                    "name": "tierCode",
                    "kind": "required",
                    "type": "string",
                    "description": "Code of tier",
                    "example": "B"
                  },
                  {
                    "name": "description",
                    "kind": "optional",
                    "type": "string",
                    "description": "Description of tier",
                    "example": "Base",
                    "minLength": 0,
                    "maxLength": 10
                  },
                  {
                    "name": "rank",
                    "kind": "required",
                    "type": "integer<int32>",
                    "description": "<p>Hierarchy of tier - higher ranks are more elite</p>",
                    "example": 10,
                    "format": "int32"
                  },
                  {
                    "name": "typeCode",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>Type of tier. Valid Values: Earned, Trial, Exclusive</p>",
                    "example": "Earned"
                  },
                  {
                    "name": "startDate",
                    "kind": "optional",
                    "type": "string<date>",
                    "description": "Date the tier starts",
                    "example": "2020-01-01",
                    "format": "date"
                  },
                  {
                    "name": "endDate",
                    "kind": "optional",
                    "type": "string<date>",
                    "description": "Date the tier ends",
                    "example": "2020-12-31",
                    "format": "date"
                  },
                  {
                    "name": "grandFathered",
                    "kind": "optional",
                    "type": "boolean",
                    "description": "Was the tier grandfathered from a previous program",
                    "example": false
                  },
                  {
                    "name": "earned",
                    "kind": "optional",
                    "type": "boolean",
                    "description": "Was the tier earned from program earning rules",
                    "example": true
                  },
                  {
                    "name": "lifetime",
                    "kind": "optional",
                    "type": "boolean",
                    "description": "Identifies if the tier is a lifetime tier. Lifetime tiers do not expire",
                    "example": false
                  },
                  {
                    "name": "rolloverNights",
                    "kind": "optional",
                    "type": "integer",
                    "description": "Number of nights over what was needed to qualify for this tier that will go towards qualification for a future tier.",
                    "example": 10
                  },
                  {
                    "name": "assignmentReason",
                    "kind": "optional",
                    "type": "string<bonus | creditcard | management | manual | promotion | stepdown | system | tiergift>",
                    "description": "Reason tier was awarded",
                    "example": "bonus",
                    "enum": [
                      "bonus",
                      "creditcard",
                      "management",
                      "manual",
                      "promotion",
                      "stepdown",
                      "system",
                      "tiergift"
                    ]
                  },
                  {
                    "name": "assignmentReasonObjectExternalReference",
                    "kind": "optional",
                    "type": "string",
                    "description": "Identifier for the thing that caused this tier to be awarded"
                  },
                  {
                    "name": "assignmentReasonObjectDescription",
                    "kind": "optional",
                    "type": "string",
                    "description": "Description for the thing that caused this tier to be awarded.",
                    "example": "Adjustment Bonus 1000 Points"
                  },
                  {
                    "name": "createdBy",
                    "kind": "optional",
                    "type": "string",
                    "description": "Identifier for the user that caused this tier to be awarded."
                  },
                  {
                    "name": "sourceCouponUse",
                    "kind": "optional",
                    "type": "object",
                    "description": "Coupon and offer details for tiers awarded through a tier gift",
                    "modelRef": "#/components/schemas/MemberTierCouponUse",
                    "customType": "MemberTierCouponUse",
                    "schema": [
                      {
                        "name": "couponCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "Coupon code",
                        "example": "113456816"
                      },
                      {
                        "name": "offerCode",
                        "kind": "optional",
                        "type": "string",
                        "description": "Offer code associated with the coupon",
                        "example": "Q1UP"
                      },
                      {
                        "name": "offerName",
                        "kind": "optional",
                        "type": "string",
                        "description": "Name of the offer associated with the coupon",
                        "example": "Q1 upgrades"
                      },
                      {
                        "name": "startDate",
                        "kind": "optional",
                        "type": "string<date>",
                        "description": "Earliest date the coupon is valid",
                        "example": "2025-01-15",
                        "format": "date"
                      },
                      {
                        "name": "endDate",
                        "kind": "optional",
                        "type": "string<date>",
                        "description": "Latest date the coupon is valid",
                        "example": "2026-01-15",
                        "format": "date"
                      }
                    ]
                  }
                ]
              },
              {
                "name": "memberList",
                "kind": "optional",
                "type": "object",
                "description": "Member list awarded from the bonus",
                "modelRef": "#/components/schemas/MemberList",
                "customType": "MemberList",
                "schema": [
                  {
                    "name": "memberListId",
                    "kind": "optional",
                    "type": "integer<int64>",
                    "readOnly": true,
                    "description": "Member list identifier",
                    "format": "int64"
                  },
                  {
                    "name": "code",
                    "kind": "optional",
                    "type": "string",
                    "description": "Code of member list"
                  },
                  {
                    "name": "name",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "Name of member list"
                  },
                  {
                    "name": "description",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "Description of member list"
                  },
                  {
                    "name": "statusCode",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "<p>Status of the member list, one of: ACTIVE, INACTIVE</p>"
                  },
                  {
                    "name": "typeCode",
                    "kind": "optional",
                    "type": "string",
                    "readOnly": true,
                    "description": "<p>Type of the member list, one of: SEGMENT, LIMITED_TIME, TIER_ROLLOVER, OTHER, ...</p>"
                  }
                ]
              }
            ],
            "modelRef": "#/components/schemas/MemberBonus",
            "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": "L4N8Mo3z66qGtECu3J87T",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request POST \\\n     --url 'https://api.b.preview.loyaltyservices.io/api/v3/members/{memberIdentifier}/bonuses?async=boolean' \\\n     --header 'accept: application/json'"
        },
        {
          "id": "l9N54DlssVx2twgzg40On",
          "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}/bonuses?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\"\n\nresponse = https.request(request)\nputs response.read_body\n"
        },
        {
          "id": "1L_Ax91h05H1ZVgzlDLly",
          "language": "python",
          "label": "Python",
          "code": "import requests\nimport json\n\nurl = \"https://api.b.preview.loyaltyservices.io/api/v3/members/{memberIdentifier}/bonuses?async=boolean\"\n\npayload = {}\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": "INs_p3uxTX3qiyK2g7M7C",
          "language": "java",
          "label": "Java",
          "code": "OkHttpClient client = new OkHttpClient().newBuilder()\n   .build();\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"\");\nRequest request = new Request.Builder()\n   .url(\"https://api.b.preview.loyaltyservices.io/api/v3/members/{memberIdentifier}/bonuses?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": "L4N8Mo3z66qGtECu3J87T"
    },
    "results": {
      "languages": [
        {
          "id": "rBZ4qO8ZJU6G4ue9bVd--",
          "language": "200",
          "code": "// Success\n{\n  \"bonus\": {\n    \"bonusCode\": \"\",\n    \"bonusDescription\": \"\"\n  },\n  \"transactions\": [\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      \"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  ],\n  \"memberTier\": {\n    \"tierCode\": \"B\",\n    \"description\": \"Base\",\n    \"rank\": 10,\n    \"typeCode\": \"Earned\",\n    \"startDate\": \"2020-01-01\",\n    \"endDate\": \"2020-12-31\",\n    \"grandFathered\": false,\n    \"earned\": true,\n    \"lifetime\": false,\n    \"rolloverNights\": 10,\n    \"assignmentReason\": \"bonus\",\n    \"assignmentReasonObjectExternalReference\": \"\",\n    \"assignmentReasonObjectDescription\": \"Adjustment Bonus 1000 Points\",\n    \"createdBy\": \"\",\n    \"sourceCouponUse\": {\n      \"couponCode\": \"113456816\",\n      \"offerCode\": \"Q1UP\",\n      \"offerName\": \"Q1 upgrades\",\n      \"startDate\": \"2025-01-15\",\n      \"endDate\": \"2026-01-15\"\n    }\n  },\n  \"memberList\": {\n    \"memberListId\": \"\",\n    \"code\": \"\",\n    \"name\": \"\",\n    \"description\": \"\",\n    \"statusCode\": \"\",\n    \"typeCode\": \"\"\n  }\n}"
        },
        {
          "id": "m4g67JhZnC_cSF7kwMI6y",
          "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": "xbklutQsDxTh12B8hMnaB",
          "language": "400",
          "code": "// Bad request\n{\n  \"errors\": [\n    {\n      \"code\": \"\",\n      \"fieldName\": \"\",\n      \"message\": \"\",\n      \"messageParameters\": [\n        {}\n      ]\n    }\n  ]\n}"
        },
        {
          "id": "jVrwfIvPNqHwfpA3upE6R",
          "language": "401",
          "code": "// Unauthorized\n"
        },
        {
          "id": "ZuQRYEdgTnxqEFLlTRUkW",
          "language": "403",
          "code": "// Forbidden\n"
        },
        {
          "id": "zZ0nP4xX3bLR8JpC8diUj",
          "language": "500",
          "code": "// Internal error\n"
        }
      ],
      "selectedLanguageId": "rBZ4qO8ZJU6G4ue9bVd--"
    }
  },
  "children": [
    {
      "text": ""
    }
  ]
}