json_schema: {
      "$schema": "http://json-schema.org/draft-06/schema#",
      "title": "Reward Created Webhook Schema",
      "description": "Sent whenever a reward is created (when it becomes available, e.g. not pending).",
      "type": "object",
      "properties": {
          "id": {
              "type": "string",
              "title": "Reward Id",
              "description": "The unique identifier associated with this reward"
          },
          "type": {
              "type": "string",
              "title": "Reward Type",
              "enum": [
                  "PCT_DISCOUNT",
                  "FUELTANK",
                  "CREDIT",
                  "INTEGRATION"
              ]
          },
          "dateCreated": {
              "type": "integer",
              "title": "Date Reward Created",
              "description": "The date this reward was created"
          },
          "dateScheduledFor": {
              "type": [
                  "integer",
                  "null"
              ],
              "title": "Date Scheduled For",
              "description": "The date this reward is scheduled to be given if it starts in a pending state"
          },
          "dateGiven": {
              "type": [
                  "integer",
                  "null"
              ],
              "title": "Date Given",
              "description": "The date this reward was given (became available for use)"
          },
          "dateExpires": {
              "type": [
                  "integer",
                  "null"
              ],
              "title": "Date Expires",
              "description": "The date this reward will expire"
          },
          "dateCancelled": {
              "type": [
                  "integer",
                  "null"
              ],
              "title": "Date Cancelled",
              "description": "The date this reward was cancelled"
          },
          "accountId": {
              "type": "string",
              "title": "Account Id",
              "description": "The account Id for the user who received this reward"
          },
          "userId": {
              "type": "string",
              "title": "User Id",
              "description": "The user Id for the user who received this reward"
          },
          "cancellable": {
              "type": "boolean",
              "title": "Is Cancellable",
              "description": "Whether this reward can be cancelled (e.g. rewards that have already been fulfilled externally cannot be cancelled)"
          },
          "programId": {
              "type": [
                  "string",
                  "null"
              ],
              "title": "Program Id",
              "description": "The program that issued this reward"
          },
          "rewardSource": {
              "type": "string",
              "title": "Reward Source",
              "description": "The source of this reward (e.g. insight into why this reward was created)",
              "enum": [
                  "FRIEND_SIGNUP",
                  "REFERRED",
                  "MANUAL",
                  "ACTIVATION",
                  "ACQUISITION",
                  "RETENTION",
                  "REACTIVATION",
                  "AUTOMATED"
              ]
          }
      },
      "required": [
          "id",
          "type",
          "dateCreated",
          "accountId",
          "userId",
          "cancellable",
          "rewardSource"
      ],
      "dependencies": {
          "type": {
              "oneOf": [
                  {
                      "properties": {
                          "type": {
                              "enum": [
                                  "PCT_DISCOUNT"
                              ]
                          },
                          "discountPercent": {
                              "type": "integer",
                              "title": "Discount Percent",
                              "description": "The percent discount to be given (e.g. 1-100)"
                          },
                          "unit": {
                              "type": "string",
                              "title": "Reward Unit",
                              "description": "The unit of this reward",
                              "const": "%"
                          },
                          "name": {
                              "type": "string",
                              "title": "Reward Name",
                              "description": "The name given to this discount reward (e.g. Referrer Reward)"
                          }
                      }
                  },
                  {
                      "properties": {
                          "type": {
                              "enum": [
                                  "FUELTANK"
                              ]
                          },
                          "fuelTankCode": {
                              "type": "string",
                              "title": "Reward Code",
                              "description": "The code associated with this reward (e.g. used in fulfillment)"
                          },
                          "unit": {
                              "type": "string",
                              "title": "Reward Unit",
                              "description": "The unit of this reward"
                          },
                          "amount": {
                              "type": "integer",
                              "title": "Reward Amount",
                              "description": "The value associated with this reward (e.g. 10% or $100)"
                          },
                          "fuelTankType": {
                              "type": "string",
                              "title": "Reward Code Type",
                              "description": "The type of the redeemable reward associated with the fuel tank code (e.g. is it a discount or credit)",
                              "enum": [
                                  "PCT_DISCOUNT",
                                  "CREDIT"
                              ]
                          }
                      }
                  },
                  {
                      "properties": {
                          "type": {
                              "enum": [
                                  "CREDIT"
                              ]
                          },
                          "unit": {
                              "type": "string",
                              "title": "Reward Unit",
                              "description": "The unit of this reward (e.g. USD)"
                          },
                          "assignedCredit": {
                              "type": "integer",
                              "title": "Assigned Credit",
                              "description": "The credit assigned to this reward (e.g. amount that can be redeemed)"
                          },
                          "redeemedCredit": {
                              "type": "integer",
                              "title": "Redeemed Credit",
                              "description": "The amount of credit that has already been redeemed from this reward"
                          },
                          "name": {
                              "type": "string",
                              "title": "Reward Name",
                              "description": "The name given to this credit reward (e.g. Referrer Reward)"
                          },
                          "redemptions": {
                              "type": "array",
                              "title": "Reward Redemptions",
                              "description": "A record of how credit was redeemed from this reward",
                              "items": {
                                  "$ref": "#/definitions/rewardRedemption"
                              }
                          }
                      }
                  },
                  {
                      "properties": {
                          "type": {
                              "enum": [
                                  "INTEGRATION"
                              ]
                          },
                          "name": {
                              "type": "string",
                              "title": "Reward Name",
                              "description": "The name of this reward (e.g. Amazon Gift Card)"
                          },
                          "description": {
                              "type": "string",
                              "title": "Reward Description",
                              "description": "This describe the reward in more detail"
                          },
                          "unit": {
                              "type": "string",
                              "title": "Reward Unit",
                              "description": "The unit of this reward (e.g. USD)"
                          },
                          "valueInCents": {
                              "type": "integer",
                              "title": "Reward Value",
                              "description": "The monetary value of this reward in its fractional unit (e.g. cents)"
                          },
                          "integrationId": {
                              "type": "string",
                              "title": "Integration Id",
                              "description": "The identifier for the integration that issued this reward"
                          },
                          "rewardDetails": {
                              "type": "object",
                              "title": "Reward Details",
                              "description": "A map of details about this reward provided by the underlying giftcard provider (e.g. Tango's utid)"
                          }
                      }
                  }
              ]
          }
      },
      "definitions": {
          "rewardRedemption": {
              "type": "object",
              "title": "Reward Redemption",
              "description": "An instance of credit being withdrawn from a reward",
              "properties": {
                  "id": {
                      "type": "string",
                      "title": "Redemption Id",
                      "description": "The unique identifier of this redemption"
                  },
                  "dateRedeemed": {
                      "type": "integer",
                      "title": "Date Redeemed",
                      "description": "The date this redemption was made"
                  },
                  "quantityRedeemed": {
                      "type": "string",
                      "title": "Quantity Redeemed",
                      "description": "The amount that was withdrawn from this reward"
                  }
              },
              "required": [
                  "id",
                  "dateRedeemed",
                  "quantityRedeemed"
              ],
              "additionalProperties": false
          }
      }
  }