Swagger

The swagger (Open API) definition of the interface specification can be found here, as well as below.

Many tools are available for processing swagger files, and using a code generation tool to create a boilerplate client or server can be an excellent starting point for development. We highly recommend looking at swagger-codegen for a generator in your preferred language when starting out.

Swagger definition

---
swagger: "2.0"
info:
  description: "The Electrum Giftcard Service Interface describes an interface for\
    \ giftcard
                  transactions."
  version: "3.15.0"
  title: "Giftcard Service Interface"
  contact:
    name: "Electrum Support"
    url: "http://io.electrum"
    email: "support@electrum.co.za"
  license:
    name: "Apache 2.0"
    url: "http://www.apache.org/licenses/LICENSE-2.0.html"
host: "sandbox.electrum.io"
basePath: "/giftcard/v3"
tags:
- name: "Activations"
- name: "Confirmations"
- name: "Giftcard Information"
- name: "Loads"
- name: "Redemptions"
- name: "Replaces"
- name: "Reversals"
- name: "Transfers"
- name: "Voids"
schemes:
- "https"
paths:
  /activations/{activationId}:
    post:
      tags:
      - "Activations"
      summary: "Request a gift card activation."
      description: "The Activations endpoint allows a gift card to be activated. Optionally,\
        \ an amount can be included to indicate initial funds which should be credited\
        \ to the card. An activation is not considered complete until an activation\
        \ confirmation or activation reversal has been sent and acknowledged. An activation\
        \ request should only be sent once."
      operationId: "activate"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "activationId"
        in: "path"
        description: "The randomly generated UUID identifying this activation, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The activation information."
        required: true
        schema:
          $ref: "#/definitions/ActivationRequest"
      responses:
        201:
          description: "Created"
          schema:
            $ref: "#/definitions/ActivationResponse"
          headers:
            Location:
              type: "string"
              description: "The location of the created activation resource"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /activations/{activationId}/confirmations/{confirmationId}:
    post:
      tags:
      - "Activations"
      - "Confirmations"
      summary: "Confirm a gift card activation."
      description: "The Activation Confirmations endpoint registers the confirmation\
        \ of a prior activation of a giftcard. Activation confirmations are advice\
        \ type messages and should continue to be sent at suitable intervals until\
        \ a response has been received. Multiple confirmation advices may be sent\
        \ which refer to the same activation. The net result is that the activation\
        \ is confirmed once."
      operationId: "confirmActivation"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "activationId"
        in: "path"
        description: "The randomly generated activationId UUID as sent in the original\
          \ activation."
        required: true
        type: "string"
      - name: "confirmationId"
        in: "path"
        description: "The randomly generated UUID identifying this confirmation, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The activation confirmation information."
        required: true
        schema:
          $ref: "#/definitions/ActivationConfirmation"
      responses:
        202:
          description: "Accepted"
          schema:
            $ref: "#/definitions/BasicAdvice"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /activations/{activationId}/reversals/{reversalId}:
    post:
      tags:
      - "Activations"
      - "Reversals"
      summary: "Simplistically, an activation reversal undoes an activation if the\
        \ activation was successfully processed."
      description: "The Activation Reversals endpoint allows an activation of a giftcard\
        \ to be reversed. If the sender of an activation request is uncertain of the\
        \ state of an activation request then the sender must send an activation reversal.\
        \ Activation reversals are advice type messages and should continue to be\
        \ sent at suitable intervals until a response has been received. Multiple\
        \ reversals advices may be sent which refer to the same activation. The net\
        \ result is that the activation is reversed once."
      operationId: "reverseActivation"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "activationId"
        in: "path"
        description: "The randomly generated activationId UUID as sent in the original\
          \ activation."
        required: true
        type: "string"
      - name: "reversalId"
        in: "path"
        description: "The randomly generated UUID identifying this reversal, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The activation reversal information."
        required: true
        schema:
          $ref: "#/definitions/ActivationReversal"
      responses:
        202:
          description: "Accepted"
          schema:
            $ref: "#/definitions/BasicAdvice"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /loads/{loadId}:
    post:
      tags:
      - "Loads"
      summary: "Request funds to be loaded on a gift card."
      description: "The Loads endpoint allows loading of funds on a gift card to be\
        \ authorized. A load is not considered complete until a load confirmation\
        \ or load reversal has been sent and acknowledged. A load request should only\
        \ be sent once otherwise multiple loads may occur erroneously."
      operationId: "load"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "loadId"
        in: "path"
        description: "The randomly generated UUID identifying this load, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The load information."
        required: true
        schema:
          $ref: "#/definitions/LoadRequest"
      responses:
        201:
          description: "Created"
          schema:
            $ref: "#/definitions/LoadResponse"
          headers:
            Location:
              type: "string"
              description: "The location of the created load resource"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /loads/{loadId}/confirmations/{confirmationId}:
    post:
      tags:
      - "Confirmations"
      - "Loads"
      summary: "Confirm a load of funds on a gift card."
      description: "The Load Confirmations endpoint registers the confirmation of\
        \ a prior load on a gift card. Load confirmations are advice type messages\
        \ and should continue to be sent at suitable intervals until a response has\
        \ been received. Multiple confirmation advices may be sent which refer to\
        \ the same load. The net result is that the load is confirmed once."
      operationId: "confirmLoad"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "loadId"
        in: "path"
        description: "The randomly generated loadId UUID as sent in the original load."
        required: true
        type: "string"
      - name: "confirmationId"
        in: "path"
        description: "The randomly generated UUID identifying this confirmation, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The load confirmation information."
        required: true
        schema:
          $ref: "#/definitions/LoadConfirmation"
      responses:
        202:
          description: "Accepted"
          schema:
            $ref: "#/definitions/BasicAdvice"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /loads/{loadId}/reversals/{reversalId}:
    post:
      tags:
      - "Loads"
      - "Reversals"
      summary: "Simplistically, a load reversal undoes a load if the load was successfully\
        \ processed."
      description: "The Load Reversals endpoint allows loads on a gift card to be\
        \ reversed. If the sender of a load request is uncertain of the state of a\
        \ load request then the sender must send a load reversal. Reversals should\
        \ continue to be sent at suitable intervals until a response has been received.\
        \ Multiple reversals may be sent which refer to the same load. The net result\
        \ is that the load is reversed once. Note that a load reversal does not equate\
        \ to a redemption."
      operationId: "reverseLoad"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "loadId"
        in: "path"
        description: "The randomly generated loadId UUID as sent in the original load."
        required: true
        type: "string"
      - name: "reversalId"
        in: "path"
        description: "The randomly generated UUID identifying this reversal, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The redemption reversal information."
        required: true
        schema:
          $ref: "#/definitions/LoadReversal"
      responses:
        202:
          description: "Accepted"
          schema:
            $ref: "#/definitions/BasicAdvice"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /lookupGiftcard/{lookupId}:
    post:
      tags:
      - "Giftcard Information"
      summary: "Request gift card information."
      description: "The Lookup Gift Cards endpoint allows information about a gift\
        \ card to be retrieved. This operation has no financial impact and may be\
        \ submitted repeatedly without financial consequece. Thus there is no confirmation\
        \ or reversal process for gift card lookup requests."
      operationId: "lookupGiftcard"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "lookupId"
        in: "path"
        description: "The randomly generated UUID identifying this lookup request,\
          \ as defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "Information describing the gift card lookup to be performed."
        required: true
        schema:
          $ref: "#/definitions/LookupRequest"
      responses:
        201:
          description: "Created"
          schema:
            $ref: "#/definitions/LookupResponse"
          headers:
            Location:
              type: "string"
              description: "The location of the gift card lookup resource"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /redemptions/{redemptionId}:
    post:
      tags:
      - "Redemptions"
      summary: "Request a redemption of a gift card."
      description: "The Redemptions endpoint allows gift cards to be redeemed as a\
        \ form of tender. A redemption is not considered complete until a redemption\
        \ confirmation or redemption reversal has been sent and acknowledged. A redemption\
        \ request should only be sent once otherwise multiple redemptions may occur\
        \ erroneously."
      operationId: "redemption"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "redemptionId"
        in: "path"
        description: "The randomly generated UUID identifying this redemption, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The redemption information."
        required: true
        schema:
          $ref: "#/definitions/RedemptionRequest"
      responses:
        201:
          description: "Created"
          schema:
            $ref: "#/definitions/RedemptionResponse"
          headers:
            Location:
              type: "string"
              description: "The location of the created load resource"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /redemptions/{redemptionId}/confirmations/{confirmationId}:
    post:
      tags:
      - "Confirmations"
      - "Redemptions"
      summary: "Confirm a redemption against a gift card."
      description: "The Redemption Confirmations endpoint registers the confirmation\
        \ of a prior redemption of a gift card. Redemption confirmations are advice\
        \ type messages and should continue to be sent at suitable intervals until\
        \ a response has been received. Multiple confirmation advices may be sent\
        \ which refer to the same redemption. The net result is that the redemption\
        \ is confirmed once."
      operationId: "confirmRedemption"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "redemptionId"
        in: "path"
        description: "The randomly generated redemptionId UUID as sent in the original\
          \ redemption."
        required: true
        type: "string"
      - name: "confirmationId"
        in: "path"
        description: "The randomly generated UUID identifying this confirmation, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The redemption confirmation information."
        required: true
        schema:
          $ref: "#/definitions/RedemptionConfirmation"
      responses:
        202:
          description: "Accepted"
          schema:
            $ref: "#/definitions/BasicAdvice"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /redemptions/{redemptionId}/reversals/{reversalId}:
    post:
      tags:
      - "Redemptions"
      - "Reversals"
      summary: "Simplistically, a redemption reversal undoes a redemption if the redemption\
        \ was successfully processed."
      description: "The Redemption Reversals endpoint allows redemptions on a gift\
        \ card to be reversed. If the sender of a redemption request is uncertain\
        \ of the state of a redemption request then the sender must send a redemption\
        \ reversal. Reversals should continue to be sent at suitable intervals until\
        \ a response has been received. Multiple reversals may be sent which refer\
        \ to the same redemption. The net result is that the redemption is reversed\
        \ once. Note that a reversal does not equate to a load."
      operationId: "reverseRedemption"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "redemptionId"
        in: "path"
        description: "The randomly generated redemptionId UUID as sent in the original\
          \ redemption."
        required: true
        type: "string"
      - name: "reversalId"
        in: "path"
        description: "The randomly generated UUID identifying this reversal, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The redemption reversal information."
        required: true
        schema:
          $ref: "#/definitions/RedemptionReversal"
      responses:
        202:
          description: "Accepted"
          schema:
            $ref: "#/definitions/BasicAdvice"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /replaces/{replaceId}:
    post:
      tags:
      - "Replaces"
      summary: "Request a replace of an old gift card with a new gift card."
      description: "The Replace endpoint allows old gift cards to be replaced with\
        \ new gift cards (transfers all funds and voids old card). A replace is not\
        \ considered complete until a replace confirmation or replace reversal has\
        \ been sent and acknowledged. A replace request should only be sent once otherwise\
        \ multiple replace requests may occur erroneously."
      operationId: "replace"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "replaceId"
        in: "path"
        description: "The randomly generated UUID identifying this replace, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The replace information."
        required: true
        schema:
          $ref: "#/definitions/ReplaceRequest"
      responses:
        201:
          description: "Created"
          schema:
            $ref: "#/definitions/ReplaceResponse"
          headers:
            Location:
              type: "string"
              description: "The location of the created load resource"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /replaces/{replaceId}/confirmations/{confirmationId}:
    post:
      tags:
      - "Confirmations"
      - "Replaces"
      summary: "Confirm a replace request of an old card with a new card."
      description: "The Replace Confirmations endpoint registers the confirmation\
        \ of a prior replace request for an old gift card to be replaced by a new\
        \ gift card. Replace confirmations are advice type messages and should continue\
        \ to be sent at suitable intervals until a response has been received. Multiple\
        \ confirmation advices may be sent which refer to the same replace request.\
        \ The net result is that the replace request is confirmed once."
      operationId: "confirmReplace"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "replaceId"
        in: "path"
        description: "The randomly generated replaceId UUID as sent in the original\
          \ replace request."
        required: true
        type: "string"
      - name: "confirmationId"
        in: "path"
        description: "The randomly generated UUID identifying this confirmation, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The replace confirmation information."
        required: true
        schema:
          $ref: "#/definitions/ReplaceConfirmation"
      responses:
        202:
          description: "Accepted"
          schema:
            $ref: "#/definitions/BasicAdvice"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /replaces/{replaceId}/reversals/{reversalId}:
    post:
      tags:
      - "Replaces"
      - "Reversals"
      summary: "Simplistically, a replace reversal undoes a replace request if the\
        \ replace was successfully processed."
      description: "The Replace Reversals endpoint allows replace requests of old\
        \ gift cards with a new gift cards to be reversed. If the sender of a replace\
        \ request is uncertain of the state of a replace request then the sender must\
        \ send a replace reversal. Reversals should continue to be sent at suitable\
        \ intervals until a response has been received. Multiple reversals may be\
        \ sent which refer to the same replace request. The net result is that the\
        \ replace request is reversed once."
      operationId: "reverseReplace"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "replaceId"
        in: "path"
        description: "The randomly generated replaceId UUID as sent in the original\
          \ replace."
        required: true
        type: "string"
      - name: "reversalId"
        in: "path"
        description: "The randomly generated UUID identifying this reversal, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The replace reversal information."
        required: true
        schema:
          $ref: "#/definitions/ReplaceReversal"
      responses:
        202:
          description: "Accepted"
          schema:
            $ref: "#/definitions/BasicAdvice"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /transfers/{transferId}:
    post:
      tags:
      - "Transfers"
      summary: "Request a transfer from a source gift card to a target gift card."
      description: "The Transfers endpoint allows funds to be transferred from one\
        \ gift card to another. A transfer is not considered complete until a transfer\
        \ confirmation or transfer reversal has been sent and acknowledged. A transfer\
        \ request should only be sent once otherwise multiple transfers may occur\
        \ erroneously."
      operationId: "transfer"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "transferId"
        in: "path"
        description: "The randomly generated UUID identifying this transfer, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The transfer information."
        required: true
        schema:
          $ref: "#/definitions/TransferRequest"
      responses:
        201:
          description: "Created"
          schema:
            $ref: "#/definitions/TransferResponse"
          headers:
            Location:
              type: "string"
              description: "The location of the created load resource"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /transfers/{transferId}/confirmations/{confirmationId}:
    post:
      tags:
      - "Confirmations"
      - "Transfers"
      summary: "Confirm a transfer from a source gift card to a target gift card."
      description: "The Transfer Confirmations endpoint registers the confirmation\
        \ of a prior transfer of a source gift card to a target gift card. Transfer\
        \ confirmations are advice type messages and should continue to be sent at\
        \ suitable intervals until a response has been received. Multiple confirmation\
        \ advices may be sent which refer to the same transfer. The net result is\
        \ that the transfer is confirmed once."
      operationId: "confirmTransfer"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "transferId"
        in: "path"
        description: "The randomly generated transferId UUID as sent in the original\
          \ transfer request."
        required: true
        type: "string"
      - name: "confirmationId"
        in: "path"
        description: "The randomly generated UUID identifying this confirmation, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The transfer confirmation information."
        required: true
        schema:
          $ref: "#/definitions/TransferConfirmation"
      responses:
        202:
          description: "Accepted"
          schema:
            $ref: "#/definitions/BasicAdvice"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /transfers/{transferId}/reversals/{reversalId}:
    post:
      tags:
      - "Transfers"
      - "Reversals"
      summary: "Simplistically, a transfer reversal undoes a transfer if the transfer\
        \ was successfully processed."
      description: "The Transfer Reversals endpoint allows a transfer between gift\
        \ cards to be reversed. If the sender of a transfer request is uncertain of\
        \ the state of a transfer request then the sender must send a transfer reversal.\
        \ Reversals should continue to be sent at suitable intervals until a response\
        \ has been received. Multiple reversals may be sent which refer to the same\
        \ transfer. The net result is that the transfer is reversed once."
      operationId: "reverseTransfer"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "transferId"
        in: "path"
        description: "The randomly generated transferId UUID as sent in the original\
          \ transfer."
        required: true
        type: "string"
      - name: "reversalId"
        in: "path"
        description: "The randomly generated UUID identifying this reversal, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The transfer reversal information."
        required: true
        schema:
          $ref: "#/definitions/TransferReversal"
      responses:
        202:
          description: "Accepted"
          schema:
            $ref: "#/definitions/BasicAdvice"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Not Found"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /voids/{voidId}:
    post:
      tags:
      - "Voids"
      summary: "Request a gift card be voided."
      description: "The Voids endpoint allows an activated giftcard to be voided.\
        \ A void is not considered complete until a void confirmation or void reversal\
        \ has been sent and acknowledged. While a gift card can only be voided once,\
        \ a void request should only be sent once and then either confirmed or reversed."
      operationId: "void"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "voidId"
        in: "path"
        description: "The randomly generated UUID identifying this void, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The void information."
        required: true
        schema:
          $ref: "#/definitions/VoidRequest"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/VoidResponse"
        201:
          description: "Created"
          schema:
            $ref: "#/definitions/VoidResponse"
          headers:
            Location:
              type: "string"
              description: "The location of the created load resource"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /voids/{voidId}/confirmations/{confirmationId}:
    post:
      tags:
      - "Confirmations"
      - "Voids"
      summary: "Confirm a void of a gift card."
      description: "The Void Confirmations endpoint registers the confirmation of\
        \ a prior void on a gift card. Void confirmations are advice type messages\
        \ and should continue to be sent at suitable intervals until a response has\
        \ been received. Multiple confirmation advices may be sent which refer to\
        \ the same void. The net result is that the void is confirmed once."
      operationId: "confirmVoid"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "voidId"
        in: "path"
        description: "The randomly generated voidId UUID as sent in the original void."
        required: true
        type: "string"
      - name: "confirmationId"
        in: "path"
        description: "The randomly generated UUID identifying this confirmation, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The void confirmation information."
        required: true
        schema:
          $ref: "#/definitions/VoidConfirmation"
      responses:
        202:
          description: "Accepted"
          schema:
            $ref: "#/definitions/BasicAdvice"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
  /voids/{voidId}/reversals/{reversalId}:
    post:
      tags:
      - "Voids"
      - "Reversals"
      summary: "Simplistically, a void reversal undoes a void if the void was successfully\
        \ processed."
      description: "The Void Reversals endpoint allows voids of a gift card to be\
        \ reversed. If the sender of a void request is uncertain of the state of a\
        \ void request then the sender must send a void reversal. Reversals should\
        \ continue to be sent at suitable intervals until a response has been received.\
        \ Multiple reversals may be sent which refer to the same void. The net result\
        \ is that the void is reversed once."
      operationId: "reverseVoid"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "voidId"
        in: "path"
        description: "The randomly generated voidId UUID as sent in the original void."
        required: true
        type: "string"
      - name: "reversalId"
        in: "path"
        description: "The randomly generated UUID identifying this reversal, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)."
        required: true
        type: "string"
      - in: "body"
        name: "body"
        description: "The void reversal information."
        required: true
        schema:
          $ref: "#/definitions/VoidReversal"
      responses:
        202:
          description: "Accepted"
          schema:
            $ref: "#/definitions/BasicAdvice"
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/ErrorDetail"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/ErrorDetail"
        500:
          description: "Internal Server Error"
          schema:
            $ref: "#/definitions/ErrorDetail"
        503:
          description: "Service Unavailable"
          schema:
            $ref: "#/definitions/ErrorDetail"
        504:
          description: "Gateway Timeout"
          schema:
            $ref: "#/definitions/ErrorDetail"
      security:
      - httpBasic: []
securityDefinitions:
  httpBasic:
    description: "All requests require HTTP basic authentication, where user name\
      \ equals the value used in
                    Originator.Institution.id and\
      \ password has been agreed with Electrum."
    type: "basic"
definitions:
  ActivationConfirmation:
    type: "object"
    required:
    - "id"
    - "requestId"
    - "tenders"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this advice, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      requestId:
        type: "string"
        description: "The UUID identifying the request that this advice relates to"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      thirdPartyIdentifiers:
        type: "array"
        description: "The unaltered thirdPartyIdentifiers array as supplied in the\
          \ related BasicResponse message. Required if thirdPartyIdentifiers field\
          \ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
          \ in the BasicResponse or no BasicResponse was received then this should\
          \ be set to the thirdPartyIdentifiers sent in the original request."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      tenders:
        type: "array"
        description: "An array of tenders used to pay for the transaction"
        items:
          $ref: "#/definitions/Tender"
    description: "Information about a gift card activation to be confirmed."
  ActivationRequest:
    type: "object"
    required:
    - "card"
    - "client"
    - "id"
    - "originator"
    - "product"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this transaction, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      originator:
        description: "Data relating to the originator of the transaction."
        $ref: "#/definitions/Originator"
      client:
        description: "Data relating to the sender of Transaction."
        $ref: "#/definitions/Institution"
      settlementEntity:
        description: "Data relating to the entity with whom the Merchant will settle\
          \ the transaction."
        $ref: "#/definitions/Institution"
      receiver:
        description: "Data relating to the entity which ultimately processes the request."
        $ref: "#/definitions/Institution"
      thirdPartyIdentifiers:
        type: "array"
        description: "An array of identifiers which each identify the transaction\
          \ within each entity's system."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      slipData:
        description: "Text to be printed on the customer receipt."
        $ref: "#/definitions/SlipData"
      basketRef:
        type: "string"
        description: "Used to group multiple transactions which would otherwise be\
          \ considered independent."
      tranType:
        type: "string"
        description: "Data relating to the type of transaction taking place (i.e.\
          \ cash withdrawal, goods and services etc.)."
        enum:
        - "GOODS_AND_SERVICES"
        - "CASH_WITHDRAWAL"
        - "DEBIT_ADJUSTMENT"
        - "GOODS_AND_SERVICES_WITH_CASH_BACK"
        - "NON_CASH"
        - "RETURNS"
        - "DEPOSIT"
        - "CREDIT_ADJUSTMENT"
        - "GENERAL_CREDIT"
        - "AVAILABLE_FUNDS_INQUIRY"
        - "BALANCE_INQUIRY"
        - "GENERAL_INQUIRY"
        - "CARD_VERIFICATION_INQUIRY"
        - "CARDHOLDER_ACCOUNTS_TRANSFER"
        - "GENERAL_TRANSFER"
        - "PAYMENT_FROM_ACCOUNT"
        - "GENERAL_PAYMENT"
        - "PAYMENT_TO_ACCOUNT"
        - "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
        - "PLACE_HOLD_ON_CARD"
        - "GENERAL_ADMIN"
        - "CHANGE_PIN"
        - "CARD_HOLDER_INQUIRY"
        - "POINTS_INQUIRY"
      srcAccType:
        type: "string"
        description: "This specifies the type of source account being used in the\
          \ transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      destAccType:
        type: "string"
        description: "This specifies the type of destination account being used in\
          \ the transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      amounts:
        description: "Specifies an amount which should be loaded onto the card as\
          \ part of the activation."
        $ref: "#/definitions/GiftcardAmounts"
      card:
        description: "Information about the gift card being activated."
        $ref: "#/definitions/Card"
      posInfo:
        description: "Information about the POS."
        $ref: "#/definitions/PosInfo"
      product:
        description: "Information about the gift card product being activated."
        $ref: "#/definitions/Product"
      cardHolder:
        description: "Information about the card holder of the gift card."
        $ref: "#/definitions/Customer"
    description: "Information about the gift card activation."
  ActivationResponse:
    type: "object"
    required:
    - "card"
    - "client"
    - "id"
    - "originator"
    - "product"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this transaction, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      originator:
        description: "Data relating to the originator of the transaction."
        $ref: "#/definitions/Originator"
      client:
        description: "Data relating to the sender of Transaction."
        $ref: "#/definitions/Institution"
      settlementEntity:
        description: "Data relating to the entity with whom the Merchant will settle\
          \ the transaction."
        $ref: "#/definitions/Institution"
      receiver:
        description: "Data relating to the entity which ultimately processes the request."
        $ref: "#/definitions/Institution"
      thirdPartyIdentifiers:
        type: "array"
        description: "An array of identifiers which each identify the transaction\
          \ within each entity's system."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      slipData:
        description: "Text to be printed on the customer receipt."
        $ref: "#/definitions/SlipData"
      basketRef:
        type: "string"
        description: "Used to group multiple transactions which would otherwise be\
          \ considered independent."
      tranType:
        type: "string"
        description: "Data relating to the type of transaction taking place (i.e.\
          \ cash withdrawal, goods and services etc.)."
        enum:
        - "GOODS_AND_SERVICES"
        - "CASH_WITHDRAWAL"
        - "DEBIT_ADJUSTMENT"
        - "GOODS_AND_SERVICES_WITH_CASH_BACK"
        - "NON_CASH"
        - "RETURNS"
        - "DEPOSIT"
        - "CREDIT_ADJUSTMENT"
        - "GENERAL_CREDIT"
        - "AVAILABLE_FUNDS_INQUIRY"
        - "BALANCE_INQUIRY"
        - "GENERAL_INQUIRY"
        - "CARD_VERIFICATION_INQUIRY"
        - "CARDHOLDER_ACCOUNTS_TRANSFER"
        - "GENERAL_TRANSFER"
        - "PAYMENT_FROM_ACCOUNT"
        - "GENERAL_PAYMENT"
        - "PAYMENT_TO_ACCOUNT"
        - "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
        - "PLACE_HOLD_ON_CARD"
        - "GENERAL_ADMIN"
        - "CHANGE_PIN"
        - "CARD_HOLDER_INQUIRY"
        - "POINTS_INQUIRY"
      srcAccType:
        type: "string"
        description: "This specifies the type of source account being used in the\
          \ transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      destAccType:
        type: "string"
        description: "This specifies the type of destination account being used in\
          \ the transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      amounts:
        description: "Indicates the amount which was requested to be loaded onto the\
          \ card during activation, the amount which was loaded and the balance of\
          \ the gift card after activation."
        $ref: "#/definitions/GiftcardAmounts"
      card:
        description: "Information about the gift card being activated."
        $ref: "#/definitions/Card"
      posInfo:
        description: "Information about the POS."
        $ref: "#/definitions/PosInfo"
      product:
        description: "Information about the gift card product being activated."
        $ref: "#/definitions/Product"
      cardHolder:
        description: "Information about the card holder of the gift card."
        $ref: "#/definitions/Customer"
    description: "Information about the result of processing the card activation."
  ActivationReversal:
    type: "object"
    required:
    - "id"
    - "requestId"
    - "reversalReason"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this advice, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      requestId:
        type: "string"
        description: "The UUID identifying the request that this advice relates to"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      thirdPartyIdentifiers:
        type: "array"
        description: "The unaltered thirdPartyIdentifiers array as supplied in the\
          \ related BasicResponse message. Required if thirdPartyIdentifiers field\
          \ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
          \ in the BasicResponse or no BasicResponse was received then this should\
          \ be set to the thirdPartyIdentifiers sent in the original request."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      reversalReason:
        type: "string"
        description: "The reason for the reversal"
        enum:
        - "TIMEOUT"
        - "CANCELLED"
        - "RESPONSE_NOT_FINAL"
    description: "Information about a gift card activation to be reversed."
  Barcode:
    type: "object"
    required:
    - "data"
    - "encoding"
    properties:
      data:
        type: "string"
        description: "Data to be encoded in the barcode"
      encoding:
        type: "string"
        description: "Specifies the encoding used in the barcode"
    description: "Used to indicate barcode information for a slip line."
  BasicAdvice:
    type: "object"
    required:
    - "id"
    - "requestId"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this advice, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      requestId:
        type: "string"
        description: "The UUID identifying the request that this advice relates to"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      thirdPartyIdentifiers:
        type: "array"
        description: "The unaltered thirdPartyIdentifiers array as supplied in the\
          \ related BasicResponse message. Required if thirdPartyIdentifiers field\
          \ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
          \ in the BasicResponse or no BasicResponse was received then this should\
          \ be set to the thirdPartyIdentifiers sent in the original request."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
    description: "The data required in all advice messages"
  Basket:
    type: "object"
    required:
    - "basketId"
    - "items"
    properties:
      basketId:
        type: "string"
        description: "An identifier for the collection of items being paid for."
        pattern: "[0-9A-Za-z]{1,20}"
      items:
        type: "array"
        description: "The items being purchased."
        items:
          $ref: "#/definitions/Item"
    description: "Information about the items paid for using the gift card."
  Card:
    type: "object"
    required:
    - "expiryDate"
    - "pan"
    properties:
      pan:
        type: "string"
        description: "Primary account number that uniquely identifies this card."
        pattern: "[0-9]{1,19}"
      expiryDate:
        type: "string"
        description: "The card expiry date, in YYMM format."
        pattern: "[0-9]{4}"
      clearPin:
        type: "string"
        description: "The pin number associated with the card unencrypted."
      encryptedPin:
        type: "string"
        description: "The encrypted pin number associated with the card in HEX format."
        pattern: "[0-9ABCDEF]+"
      rank:
        type: "string"
        description: "The rank of the card on the Giftcard system. For example: primary,\
          \ secondary, collector."
      pin:
        description: "Pin that can either be of type clear PIN or encryted PIN. This\
          \ value takes precendence overencryptedPin and clearPin fields."
        $ref: "#/definitions/Pin"
    description: "Information about a gift card; its number, rank, expiry date and\
      \ optionally the PIN either unencrypted or encrypted."
  Club:
    type: "object"
    required:
    - "marketToCustomer"
    - "member"
    - "name"
    properties:
      name:
        type: "string"
        description: "The name of this marketing attribute."
      description:
        type: "string"
        description: "The description of this marketing attribute."
      member:
        type: "boolean"
        description: "If the customer associated with this card is a member of this\
          \ marketing attribute."
        default: false
      marketToCustomer:
        type: "boolean"
        description: "Should the customer associated with card be subjected to marketing\
          \ for this specific marketing attribute."
        default: false
      products:
        type: "array"
        description: "The products for which this club is associated with."
        items:
          $ref: "#/definitions/Product"
    description: "Information about a club; its name, description, customer membership\
      \ and products."
  Customer:
    type: "object"
    properties:
      firstName:
        type: "string"
        description: "The customer's first name(s)"
        minLength: 0
        maxLength: 40
      lastName:
        type: "string"
        description: "The customer's last name"
        minLength: 0
        maxLength: 40
      address:
        type: "string"
        description: "The customer's address"
        minLength: 0
        maxLength: 80
      dateOfBirth:
        type: "string"
        format: "date-time"
        description: "The customer's date of birth"
      status:
        type: "string"
        description: "The status of this customer on the Giftcard system. For example:\
          \ active, inactive"
      msisdn:
        type: "string"
        description: "This must conform to the ITU E.164 numbering plan (https://www.itu.int/rec/T-REC-E.164/en)\
          \ e.g. 27821234567 for a South African number."
        pattern: "^\+?[1-9]\d{0,14}"
      emailAddress:
        type: "string"
        format: "email"
        description: "The customer's email address. This address must conform to RFC\
          \ 5322 3.4.1 addr-spec (https://tools.ietf.org/html/rfc5322#section-3.4.1)."
    description: "A customer who ultimately requests a transaction be performed."
  EncryptionParameters:
    type: "object"
    required:
    - "accountNumber"
    properties:
      pinBlockFormat:
        type: "string"
        description: "PIN block format that was used when encrypting the PIN. Defaults\
          \ to ISO_9564_FORMAT_0."
        default: "ISO_9564_FORMAT_0"
        enum:
        - "ISO_9564_FORMAT_0"
        - "ISO_9564_FORMAT_1"
        - "ISO_9564_FORMAT_3"
      accountNumber:
        type: "string"
        description: "12 digit account number used when encrypting the PIN. When account\
          \ number is a card number (PAN), this is the rightmost 12 digits excluding\
          \ the check digit."
        pattern: "[0-9]{12}"
      keyIndex:
        type: "integer"
        format: "int32"
        description: "Index of the key under which the PIN block is encrypted. Where\
          \ keys are exchanged in TR-31 KeyBlock format, this should be set to the\
          \ key version number field of the key used for encryption. If this field\
          \ is not populated, the most recently exchanged key will be used. Note that\
          \ omitting this field may require a higher level of synchronization during\
          \ automated key exchange in some environments."
    description: "Parameters pertaining to the generation of the PIN block. Required\
      \ if the service is to perform any operations on the encrypted PIN, such as\
      \ translation."
  ErrorDetail:
    type: "object"
    required:
    - "errorMessage"
    - "errorType"
    - "id"
    - "requestType"
    properties:
      errorType:
        type: "string"
        description: "The type of error that occurred"
        enum:
        - "DUPLICATE_RECORD"
        - "FORMAT_ERROR"
        - "FUNCTION_NOT_SUPPORTED"
        - "GENERAL_ERROR"
        - "INVALID_AMOUNT"
        - "ROUTING_ERROR"
        - "TRANSACTION_NOT_SUPPORTED"
        - "UNABLE_TO_LOCATE_RECORD"
        - "UPSTREAM_UNAVAILABLE"
        - "INVALID_PRODUCT"
        - "CARD_NOT_ACTIVATED"
        - "CARD_ACTIVATED"
        - "CARD_VOIDED"
        - "CARD_BLOCKED"
        - "CARD_DELETED"
        - "FUNCTION_BLOCKED_FOR_CARD_RANK"
        - "INSUFFICIENT_FUNDS"
        - "INVALID_CARD_NUMBER"
        - "CARD_EXPIRED"
        - "INCORRECT_PIN"
        - "TEMPORARY_FAILURE"
        - "DO_NOT_HONOUR"
        - "PIN_ATTEMPTS_EXCEEDED"
      errorMessage:
        type: "string"
        description: "A short description of the error"
        minLength: 0
        maxLength: 20
      detailMessage:
        type: "object"
        description: "A free form detailed description of a particular failure condition\
          \ may optionally be supplied"
      requestType:
        type: "string"
        description: "The type of request being processed when the error occurred."
        enum:
        - "ACTIVATION_CONFIRMATION"
        - "ACTIVATION_REQUEST"
        - "ACTIVATION_REVERSAL"
        - "LOAD_CONFIRMATION"
        - "LOAD_REQUEST"
        - "LOAD_REVERSAL"
        - "LOOKUP_REQUEST"
        - "REDEMPTION_CONFIRMATION"
        - "REDEMPTION_REQUEST"
        - "REDEMPTION_REVERSAL"
        - "REPLACE_CONFIRMATION"
        - "REPLACE_REQUEST"
        - "REPLACE_REVERSAL"
        - "TRANSFER_CONFIRMATION"
        - "TRANSFER_REQUEST"
        - "TRANSFER_REVERSAL"
        - "VOID_CONFIRMATION"
        - "VOID_REQUEST"
        - "VOID_REVERSAL"
      id:
        type: "string"
        description: "The UUID of the message for which the error occurred."
      originalId:
        type: "string"
        description: "The UUID of the original request message int he case of an error\
          \ occurring for an advice message."
    description: "Represents the outcome of a completed transaction"
  GiftcardAmounts:
    type: "object"
    properties:
      requestAmount:
        description: "The transaction amount requested by the customer to be authorised\
          \ or approved. This is the total amount the customer wishes to pay for a\
          \ service or virtual product."
        $ref: "#/definitions/LedgerAmount"
      approvedAmount:
        description: "The transaction amount which was approved by the upstream entity."
        $ref: "#/definitions/LedgerAmount"
      feeAmount:
        description: "Fees charged by the upstream entity for processing the transaction."
        $ref: "#/definitions/LedgerAmount"
      balanceAmount:
        description: "The remaining balance on the customer's account."
        $ref: "#/definitions/LedgerAmount"
      additionalAmounts:
        type: "object"
        description: "Any additional amounts that are involved in a transaction which\
          \ don't appropriately fit into the other amount fields."
        additionalProperties:
          $ref: "#/definitions/LedgerAmount"
      availableBalance:
        description: "The funds currently available on the card which may be redeemed.\
          \ This field should not include loads which must still be finalised."
        $ref: "#/definitions/LedgerAmount"
    description: "Amounts which make up the transaction. Absent amounts have zero\
      \ value."
  Institution:
    type: "object"
    required:
    - "id"
    - "name"
    properties:
      id:
        type: "string"
        description: "The institution's ID. API implementations should take care to\
          \ set this field as appropriate for the implementation."
      name:
        type: "string"
        description: "The institutions's name"
        minLength: 0
        maxLength: 40
    description: "Originating, acquiring, processing, or receiving institution details"
  Item:
    type: "object"
    properties:
      productId:
        type: "string"
        description: "An identifier for the product such as a barcode."
        pattern: "[0-9A-Za-z]{1,20}"
      productName:
        type: "string"
        description: "The name of the product."
        pattern: "[0-9A-Za-z]{1,50}"
      productType:
        type: "string"
        description: "The type of the product e.g. food, clothing etc."
        pattern: "[0-9A-Za-z]{1,30}"
      quantity:
        type: "number"
        format: "float"
        description: "The number of units of product bought. This could be whole units\
          \ if suitable for the product (e.g. tins of beans) or a fractional value\
          \ in the case of a volume or mass value."
      unit:
        type: "string"
        description: "The unit the quantity is measured in."
        enum:
        - "UNIT"
        - "LITRE"
        - "KILOGRAM"
    description: "A unique product and quantity thereof which is part of a customer's\
      \ basket. This should not be confused with the Product model which describes\
      \ a gift card product sold by retailers."
  LedgerAmount:
    type: "object"
    required:
    - "amount"
    - "currency"
    properties:
      amount:
        type: "integer"
        format: "int64"
        description: "Amount in minor denomination, e.g. R799.95 is encoded as 79995"
      currency:
        type: "string"
        description: "Three digit currency number from ISO 4217, e.g. South African\
          \ Rand is encoded as 710"
        pattern: "[0-9]{3}"
      ledgerIndicator:
        type: "string"
        description: "Indicates whether this amount is a debit or a credit. Only required\
          \ when the amount can be either a debit or a credit"
        enum:
        - "DEBIT"
        - "CREDIT"
    description: "An amount object only containing value and currency, and optionally\
      \ an indicator of DEBIT/CREDIT"
  LoadConfirmation:
    type: "object"
    required:
    - "id"
    - "requestId"
    - "tenders"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this advice, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      requestId:
        type: "string"
        description: "The UUID identifying the request that this advice relates to"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      thirdPartyIdentifiers:
        type: "array"
        description: "The unaltered thirdPartyIdentifiers array as supplied in the\
          \ related BasicResponse message. Required if thirdPartyIdentifiers field\
          \ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
          \ in the BasicResponse or no BasicResponse was received then this should\
          \ be set to the thirdPartyIdentifiers sent in the original request."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      tenders:
        type: "array"
        description: "An array of tenders used to pay for the transaction"
        items:
          $ref: "#/definitions/Tender"
    description: "Information about a gift card load to be confirmed."
  LoadRequest:
    type: "object"
    required:
    - "amounts"
    - "card"
    - "client"
    - "id"
    - "originator"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this transaction, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      originator:
        description: "Data relating to the originator of the transaction."
        $ref: "#/definitions/Originator"
      client:
        description: "Data relating to the sender of Transaction."
        $ref: "#/definitions/Institution"
      settlementEntity:
        description: "Data relating to the entity with whom the Merchant will settle\
          \ the transaction."
        $ref: "#/definitions/Institution"
      receiver:
        description: "Data relating to the entity which ultimately processes the request."
        $ref: "#/definitions/Institution"
      thirdPartyIdentifiers:
        type: "array"
        description: "An array of identifiers which each identify the transaction\
          \ within each entity's system."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      slipData:
        description: "Text to be printed on the customer receipt."
        $ref: "#/definitions/SlipData"
      basketRef:
        type: "string"
        description: "Used to group multiple transactions which would otherwise be\
          \ considered independent."
      tranType:
        type: "string"
        description: "Data relating to the type of transaction taking place (i.e.\
          \ cash withdrawal, goods and services etc.)."
        enum:
        - "GOODS_AND_SERVICES"
        - "CASH_WITHDRAWAL"
        - "DEBIT_ADJUSTMENT"
        - "GOODS_AND_SERVICES_WITH_CASH_BACK"
        - "NON_CASH"
        - "RETURNS"
        - "DEPOSIT"
        - "CREDIT_ADJUSTMENT"
        - "GENERAL_CREDIT"
        - "AVAILABLE_FUNDS_INQUIRY"
        - "BALANCE_INQUIRY"
        - "GENERAL_INQUIRY"
        - "CARD_VERIFICATION_INQUIRY"
        - "CARDHOLDER_ACCOUNTS_TRANSFER"
        - "GENERAL_TRANSFER"
        - "PAYMENT_FROM_ACCOUNT"
        - "GENERAL_PAYMENT"
        - "PAYMENT_TO_ACCOUNT"
        - "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
        - "PLACE_HOLD_ON_CARD"
        - "GENERAL_ADMIN"
        - "CHANGE_PIN"
        - "CARD_HOLDER_INQUIRY"
        - "POINTS_INQUIRY"
      srcAccType:
        type: "string"
        description: "This specifies the type of source account being used in the\
          \ transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      destAccType:
        type: "string"
        description: "This specifies the type of destination account being used in\
          \ the transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      amounts:
        description: "Specifies an amount which should be loaded onto the card."
        $ref: "#/definitions/GiftcardAmounts"
      card:
        description: "Information about the gift card being loaded."
        $ref: "#/definitions/Card"
      posInfo:
        description: "Information about the POS."
        $ref: "#/definitions/PosInfo"
      product:
        description: "Information about the gift card product being loaded."
        $ref: "#/definitions/Product"
      cardHolder:
        description: "Information about the card holder."
        $ref: "#/definitions/Customer"
    description: "Information about the load being made on the gift card."
  LoadResponse:
    type: "object"
    required:
    - "amounts"
    - "card"
    - "client"
    - "id"
    - "originator"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this transaction, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      originator:
        description: "Data relating to the originator of the transaction."
        $ref: "#/definitions/Originator"
      client:
        description: "Data relating to the sender of Transaction."
        $ref: "#/definitions/Institution"
      settlementEntity:
        description: "Data relating to the entity with whom the Merchant will settle\
          \ the transaction."
        $ref: "#/definitions/Institution"
      receiver:
        description: "Data relating to the entity which ultimately processes the request."
        $ref: "#/definitions/Institution"
      thirdPartyIdentifiers:
        type: "array"
        description: "An array of identifiers which each identify the transaction\
          \ within each entity's system."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      slipData:
        description: "Text to be printed on the customer receipt."
        $ref: "#/definitions/SlipData"
      basketRef:
        type: "string"
        description: "Used to group multiple transactions which would otherwise be\
          \ considered independent."
      tranType:
        type: "string"
        description: "Data relating to the type of transaction taking place (i.e.\
          \ cash withdrawal, goods and services etc.)."
        enum:
        - "GOODS_AND_SERVICES"
        - "CASH_WITHDRAWAL"
        - "DEBIT_ADJUSTMENT"
        - "GOODS_AND_SERVICES_WITH_CASH_BACK"
        - "NON_CASH"
        - "RETURNS"
        - "DEPOSIT"
        - "CREDIT_ADJUSTMENT"
        - "GENERAL_CREDIT"
        - "AVAILABLE_FUNDS_INQUIRY"
        - "BALANCE_INQUIRY"
        - "GENERAL_INQUIRY"
        - "CARD_VERIFICATION_INQUIRY"
        - "CARDHOLDER_ACCOUNTS_TRANSFER"
        - "GENERAL_TRANSFER"
        - "PAYMENT_FROM_ACCOUNT"
        - "GENERAL_PAYMENT"
        - "PAYMENT_TO_ACCOUNT"
        - "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
        - "PLACE_HOLD_ON_CARD"
        - "GENERAL_ADMIN"
        - "CHANGE_PIN"
        - "CARD_HOLDER_INQUIRY"
        - "POINTS_INQUIRY"
      srcAccType:
        type: "string"
        description: "This specifies the type of source account being used in the\
          \ transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      destAccType:
        type: "string"
        description: "This specifies the type of destination account being used in\
          \ the transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      amounts:
        description: "Indicates the amount which was requested to be loaded onto the\
          \ card, the amount which was loaded and the balance of the gift card after\
          \ the load."
        $ref: "#/definitions/GiftcardAmounts"
      card:
        description: "Information about the gift card being loaded."
        $ref: "#/definitions/Card"
      posInfo:
        description: "Information about the POS."
        $ref: "#/definitions/PosInfo"
      product:
        description: "Information about the gift card product being loaded."
        $ref: "#/definitions/Product"
      cardHolder:
        description: "Information about the card holder."
        $ref: "#/definitions/Customer"
    description: "Information about the load made on the gift card."
  LoadReversal:
    type: "object"
    required:
    - "id"
    - "requestId"
    - "reversalReason"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this advice, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      requestId:
        type: "string"
        description: "The UUID identifying the request that this advice relates to"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      thirdPartyIdentifiers:
        type: "array"
        description: "The unaltered thirdPartyIdentifiers array as supplied in the\
          \ related BasicResponse message. Required if thirdPartyIdentifiers field\
          \ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
          \ in the BasicResponse or no BasicResponse was received then this should\
          \ be set to the thirdPartyIdentifiers sent in the original request."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      reversalReason:
        type: "string"
        description: "The reason for the reversal"
        enum:
        - "TIMEOUT"
        - "CANCELLED"
        - "RESPONSE_NOT_FINAL"
    description: "Information about the gift card load being reversed."
  LookupRequest:
    type: "object"
    required:
    - "client"
    - "id"
    - "originator"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this transaction, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      originator:
        description: "Data relating to the originator of the transaction."
        $ref: "#/definitions/Originator"
      client:
        description: "Data relating to the sender of Transaction."
        $ref: "#/definitions/Institution"
      settlementEntity:
        description: "Data relating to the entity with whom the Merchant will settle\
          \ the transaction."
        $ref: "#/definitions/Institution"
      receiver:
        description: "Data relating to the entity which ultimately processes the request."
        $ref: "#/definitions/Institution"
      thirdPartyIdentifiers:
        type: "array"
        description: "An array of identifiers which each identify the transaction\
          \ within each entity's system."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      slipData:
        description: "Text to be printed on the customer receipt."
        $ref: "#/definitions/SlipData"
      basketRef:
        type: "string"
        description: "Used to group multiple transactions which would otherwise be\
          \ considered independent."
      tranType:
        type: "string"
        description: "Data relating to the type of transaction taking place (i.e.\
          \ cash withdrawal, goods and services etc.)."
        enum:
        - "GOODS_AND_SERVICES"
        - "CASH_WITHDRAWAL"
        - "DEBIT_ADJUSTMENT"
        - "GOODS_AND_SERVICES_WITH_CASH_BACK"
        - "NON_CASH"
        - "RETURNS"
        - "DEPOSIT"
        - "CREDIT_ADJUSTMENT"
        - "GENERAL_CREDIT"
        - "AVAILABLE_FUNDS_INQUIRY"
        - "BALANCE_INQUIRY"
        - "GENERAL_INQUIRY"
        - "CARD_VERIFICATION_INQUIRY"
        - "CARDHOLDER_ACCOUNTS_TRANSFER"
        - "GENERAL_TRANSFER"
        - "PAYMENT_FROM_ACCOUNT"
        - "GENERAL_PAYMENT"
        - "PAYMENT_TO_ACCOUNT"
        - "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
        - "PLACE_HOLD_ON_CARD"
        - "GENERAL_ADMIN"
        - "CHANGE_PIN"
        - "CARD_HOLDER_INQUIRY"
        - "POINTS_INQUIRY"
      srcAccType:
        type: "string"
        description: "This specifies the type of source account being used in the\
          \ transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      destAccType:
        type: "string"
        description: "This specifies the type of destination account being used in\
          \ the transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      card:
        description: "Information about the gift card being retrieved. Either this\
          \ field or the cardHolder field should be set."
        $ref: "#/definitions/Card"
      posInfo:
        description: "Information about the POS which captured the card details."
        $ref: "#/definitions/PosInfo"
      cardHolder:
        description: "Information about the card holder. Either this field or the\
          \ card field should be set."
        $ref: "#/definitions/Customer"
    description: "Information about a gift card to be retrieved."
  LookupResponse:
    type: "object"
    required:
    - "amounts"
    - "card"
    - "client"
    - "id"
    - "originator"
    - "posInfo"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this transaction, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      originator:
        description: "Data relating to the originator of the transaction."
        $ref: "#/definitions/Originator"
      client:
        description: "Data relating to the sender of Transaction."
        $ref: "#/definitions/Institution"
      settlementEntity:
        description: "Data relating to the entity with whom the Merchant will settle\
          \ the transaction."
        $ref: "#/definitions/Institution"
      receiver:
        description: "Data relating to the entity which ultimately processes the request."
        $ref: "#/definitions/Institution"
      thirdPartyIdentifiers:
        type: "array"
        description: "An array of identifiers which each identify the transaction\
          \ within each entity's system."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      slipData:
        description: "Text to be printed on the customer receipt."
        $ref: "#/definitions/SlipData"
      basketRef:
        type: "string"
        description: "Used to group multiple transactions which would otherwise be\
          \ considered independent."
      tranType:
        type: "string"
        description: "Data relating to the type of transaction taking place (i.e.\
          \ cash withdrawal, goods and services etc.)."
        enum:
        - "GOODS_AND_SERVICES"
        - "CASH_WITHDRAWAL"
        - "DEBIT_ADJUSTMENT"
        - "GOODS_AND_SERVICES_WITH_CASH_BACK"
        - "NON_CASH"
        - "RETURNS"
        - "DEPOSIT"
        - "CREDIT_ADJUSTMENT"
        - "GENERAL_CREDIT"
        - "AVAILABLE_FUNDS_INQUIRY"
        - "BALANCE_INQUIRY"
        - "GENERAL_INQUIRY"
        - "CARD_VERIFICATION_INQUIRY"
        - "CARDHOLDER_ACCOUNTS_TRANSFER"
        - "GENERAL_TRANSFER"
        - "PAYMENT_FROM_ACCOUNT"
        - "GENERAL_PAYMENT"
        - "PAYMENT_TO_ACCOUNT"
        - "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
        - "PLACE_HOLD_ON_CARD"
        - "GENERAL_ADMIN"
        - "CHANGE_PIN"
        - "CARD_HOLDER_INQUIRY"
        - "POINTS_INQUIRY"
      srcAccType:
        type: "string"
        description: "This specifies the type of source account being used in the\
          \ transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      destAccType:
        type: "string"
        description: "This specifies the type of destination account being used in\
          \ the transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      amounts:
        description: "Indicates the balance of the gift card at the time of the request."
        $ref: "#/definitions/GiftcardAmounts"
      card:
        description: "Information about the gift card for which information is being\
          \ requested."
        $ref: "#/definitions/Card"
      posInfo:
        description: "Information about how card details were captured at the POS."
        $ref: "#/definitions/PosInfo"
      product:
        description: "Information about the product associated with the gift card\
          \ if the gift card has been activated."
        $ref: "#/definitions/Product"
      cardHolder:
        description: "Information about the card holder of the gift card."
        $ref: "#/definitions/Customer"
      points:
        description: "Information on points associated with this card. For example:\
          \ balance, currency value."
        $ref: "#/definitions/PointAmounts"
      clubs:
        type: "array"
        description: "The clubs associated with this card."
        items:
          $ref: "#/definitions/Club"
      marketingAttributes:
        type: "array"
        description: "The marketing attributes associated with this card."
        items:
          $ref: "#/definitions/MarketingAttribute"
    description: "Information about the result of processing the gift card lookup\
      \ request."
  MarketingAttribute:
    type: "object"
    required:
    - "marketToCustomer"
    - "member"
    - "name"
    properties:
      name:
        type: "string"
        description: "The name of this marketing attribute."
      description:
        type: "string"
        description: "The description of this marketing attribute."
      member:
        type: "boolean"
        description: "If the customer associated with this card is a member of this\
          \ marketing attribute."
        default: false
      marketToCustomer:
        type: "boolean"
        description: "Should the customer associated with card be subjected to marketing\
          \ for this specific marketing attribute."
        default: false
    description: "Relevant marketing information related to the consumer."
  Merchant:
    type: "object"
    required:
    - "merchantId"
    - "merchantName"
    - "merchantType"
    properties:
      merchantType:
        type: "string"
        description: "The assigned four digit merchant category code"
        pattern: "[0-9]{4}"
      merchantId:
        type: "string"
        description: "The assigned merchant identifier. Also known as card acceptor\
          \ id"
        minLength: 15
        maxLength: 15
      merchantName:
        description: "The name of a merchant"
        $ref: "#/definitions/MerchantName"
    description: "Merchant related data. Must be included if available"
  MerchantName:
    type: "object"
    required:
    - "city"
    - "country"
    - "name"
    - "region"
    properties:
      name:
        type: "string"
        description: "The merchant or trading as name associated with the merchant"
        minLength: 0
        maxLength: 23
      city:
        type: "string"
        description: "The city where the merchant is located"
        minLength: 0
        maxLength: 13
      region:
        type: "string"
        description: "The state or region where the merchant is located"
        minLength: 0
        maxLength: 2
      country:
        type: "string"
        description: "The country where the merchant is located"
        minLength: 0
        maxLength: 2
    description: "A container object representing the Merchant Name and Location"
  Originator:
    type: "object"
    required:
    - "institution"
    - "merchant"
    - "terminalId"
    properties:
      institution:
        description: "The institution originating the request, as issued by Electrum"
        $ref: "#/definitions/Institution"
      terminalId:
        type: "string"
        description: "The ID that uniquely identifies each device or system in an\
          \ originator's institution capable of sending requests. Required for transactions\
          \ initiated from physical card entry or point-of-sale devices"
        minLength: 8
        maxLength: 8
      merchant:
        description: "Merchant data. Required if available"
        $ref: "#/definitions/Merchant"
    description: "The Originator object encapsulates data relating to the originator\
      \ of the transaction"
  Pin:
    type: "object"
    required:
    - "type"
    discriminator: "type"
    properties:
      type:
        type: "string"
        description: "Whether the PIN is communicated in the clear or encrypted."
        enum:
        - "CLEAR_PIN"
        - "ENCRYPTED_PIN"
    description: "Base model for capturing either a clear PIN or encrypted PIN"
  PinClear:
    allOf:
    - $ref: "#/definitions/Pin"
    - type: "object"
      required:
      - "pin"
      properties:
        pin:
          type: "string"
          description: "A clear PIN"
          pattern: ".{0,20}"
      description: "A clear PIN required to authorise a transaction."
  PinEncrypted:
    allOf:
    - $ref: "#/definitions/Pin"
    - type: "object"
      required:
      - "pinBlock"
      properties:
        pinBlock:
          type: "string"
          description: "Hexadecimal string representing the encrypted PIN to be used."
          pattern: "[a-fA-F0-9]{16}"
        encryptionParameters:
          description: "Parameters pertaining to the generation of the pinBlock. Required\
            \ if the service is to perform any operations on the encrypted PIN, such\
            \ as PIN translation."
          $ref: "#/definitions/EncryptionParameters"
      description: "A PIN required to authorise a transaction. EncryptionParameters\
        \ should be provided where the service will be performing operations on the\
        \ encrypted PIN, such as PIN translation. Only the PIN block need be provided\
        \ where the service is expected to forward it to a third party, where the\
        \ calling client and said third party have agreed upon encryption parameters\
        \ beforehand."
  PointAmounts:
    type: "object"
    properties:
      requestAmount:
        description: "The points amount requested by the customer to be authorised\
          \ or approved. This is the total amount the customer wishes to pay for a\
          \ service or virtual product."
        $ref: "#/definitions/PointsAmount"
      approvedAmount:
        description: "The points amount which was approved by the upstream entity."
        $ref: "#/definitions/PointsAmount"
      balanceAmount:
        description: "The remaining points balance on the customer’s account."
        $ref: "#/definitions/PointsAmount"
      availableAmount:
        description: "The points currently available on the card which may be redeemed.\
          \ This field should not include loads which must still be finalised."
        $ref: "#/definitions/PointsAmount"
    description: "Point Amounts which make up the transaction. Absent amounts have\
      \ zero value."
  PointsAmount:
    type: "object"
    required:
    - "amount"
    properties:
      amount:
        type: "integer"
        format: "int64"
        description: "The number of points."
      currencyEquivalent:
        description: "The value of the points amount in a given currency."
        $ref: "#/definitions/LedgerAmount"
      pointsDueToExpire:
        type: "integer"
        format: "int64"
        description: "Number of points due for expiry next."
      expiryDate:
        type: "string"
        format: "date-time"
        description: "The date at which the next expiry of points will occur."
    description: "Points related information. This is the description of the points\
      \ involved in a transaction."
  PosEntryMode:
    type: "object"
    required:
    - "panEntryMode"
    - "pinEntryCapability"
    properties:
      panEntryMode:
        type: "string"
        description: "Describes the method by which the PAN was captured."
        enum:
        - "UNKNOWN"
        - "MANUAL"
        - "MAGSTRIPE_NO_CVV"
        - "BARCODE"
        - "OCR"
        - "ICC_CVV"
        - "CONTACTLESS_ICC"
        - "MAGSTRIPE_CVV"
        - "CONTACTLESS_MAGSTRIPE"
        - "ICC_NO_CVV"
        - "ORIG_MODE"
        - "FALLBACK"
      pinEntryCapability:
        type: "string"
        description: "Describes whether the PIN can be entered."
        enum:
        - "UNKNOWN"
        - "CAN_ACCEPT"
        - "CANNOT_ACCEPT"
    description: "Describes how the PAN and PIN were captured by the POS."
  PosInfo:
    type: "object"
    properties:
      entryMode:
        description: "Describes the manner in which the POS captured card and PIN\
          \ data."
        $ref: "#/definitions/PosEntryMode"
      posConditionCode:
        type: "string"
        description: "Describes the circumstances of the transaciton at the POS."
        enum:
        - "NORMAL_PRESENTMENT"
        - "CUSTOMER_NOT_PRESENT"
        - "CUSTOMER_PRESENT_AND_CARD_NOT_PRESENT"
        - "CUSTOMER_IDENTITY_VERIFIED"
        - "PUBLIC_UTILITY_TERMINAL"
        - "CUSTOMER_TERMINAL"
        - "MANUAL_REVERSAL"
        - "UNATTENDED_TERMINAL_AND_CARD_CAN_BE_RETAINED"
        - "UNATTENDED_TERMINAL_AND_CARD_CANNOT_BE_RETAINED"
    description: "POS related data."
  Product:
    type: "object"
    required:
    - "id"
    properties:
      id:
        type: "string"
        description: "An identifier of the product which the gift card pertains to.\
          \ This code is sent by the originator and allows the receiver to identify\
          \ the gift card product"
        pattern: "[0-9A-Za-z]{1,100}"
      barcode:
        type: "string"
        description: "A barcode code identifying the product the gift card pertains\
          \ to."
        pattern: "[0-9A-Za-z]{1,13}"
      type:
        type: "string"
        description: "An indication of the type of product offered through the gift\
          \ card."
        pattern: ".{1,50}"
    description: "Product related data. This is the description of the gift card sold\
      \ as a product at a retailer. This should not be confused with the products\
      \ which form Items in a Basket."
  RedemptionConfirmation:
    type: "object"
    required:
    - "id"
    - "requestId"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this advice, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      requestId:
        type: "string"
        description: "The UUID identifying the request that this advice relates to"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      thirdPartyIdentifiers:
        type: "array"
        description: "The unaltered thirdPartyIdentifiers array as supplied in the\
          \ related BasicResponse message. Required if thirdPartyIdentifiers field\
          \ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
          \ in the BasicResponse or no BasicResponse was received then this should\
          \ be set to the thirdPartyIdentifiers sent in the original request."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
    description: "Information about a gift card redemption to be confirmed."
  RedemptionRequest:
    type: "object"
    required:
    - "amounts"
    - "card"
    - "client"
    - "id"
    - "originator"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this transaction, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      originator:
        description: "Data relating to the originator of the transaction."
        $ref: "#/definitions/Originator"
      client:
        description: "Data relating to the sender of Transaction."
        $ref: "#/definitions/Institution"
      settlementEntity:
        description: "Data relating to the entity with whom the Merchant will settle\
          \ the transaction."
        $ref: "#/definitions/Institution"
      receiver:
        description: "Data relating to the entity which ultimately processes the request."
        $ref: "#/definitions/Institution"
      thirdPartyIdentifiers:
        type: "array"
        description: "An array of identifiers which each identify the transaction\
          \ within each entity's system."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      slipData:
        description: "Text to be printed on the customer receipt."
        $ref: "#/definitions/SlipData"
      basketRef:
        type: "string"
        description: "Used to group multiple transactions which would otherwise be\
          \ considered independent."
      tranType:
        type: "string"
        description: "Data relating to the type of transaction taking place (i.e.\
          \ cash withdrawal, goods and services etc.)."
        enum:
        - "GOODS_AND_SERVICES"
        - "CASH_WITHDRAWAL"
        - "DEBIT_ADJUSTMENT"
        - "GOODS_AND_SERVICES_WITH_CASH_BACK"
        - "NON_CASH"
        - "RETURNS"
        - "DEPOSIT"
        - "CREDIT_ADJUSTMENT"
        - "GENERAL_CREDIT"
        - "AVAILABLE_FUNDS_INQUIRY"
        - "BALANCE_INQUIRY"
        - "GENERAL_INQUIRY"
        - "CARD_VERIFICATION_INQUIRY"
        - "CARDHOLDER_ACCOUNTS_TRANSFER"
        - "GENERAL_TRANSFER"
        - "PAYMENT_FROM_ACCOUNT"
        - "GENERAL_PAYMENT"
        - "PAYMENT_TO_ACCOUNT"
        - "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
        - "PLACE_HOLD_ON_CARD"
        - "GENERAL_ADMIN"
        - "CHANGE_PIN"
        - "CARD_HOLDER_INQUIRY"
        - "POINTS_INQUIRY"
      srcAccType:
        type: "string"
        description: "This specifies the type of source account being used in the\
          \ transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      destAccType:
        type: "string"
        description: "This specifies the type of destination account being used in\
          \ the transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      amounts:
        description: "Specifies the amount which the gift card is being redeemed against."
        $ref: "#/definitions/GiftcardAmounts"
      card:
        description: "Information about the gift card being used for redemption."
        $ref: "#/definitions/Card"
      posInfo:
        description: "Information about the POS."
        $ref: "#/definitions/PosInfo"
      product:
        description: "Information about the gift card product being used for redemption."
        $ref: "#/definitions/Product"
      basket:
        description: "The collection of products for which the gift card is being\
          \ redeemed."
        $ref: "#/definitions/Basket"
      points:
        description: "Specifies the points amount which the gift card is being redeemed\
          \ against."
        $ref: "#/definitions/PointAmounts"
      cardHolder:
        description: "Information about the card holder."
        $ref: "#/definitions/Customer"
    description: "Information about the redemption being made on the gift card."
  RedemptionResponse:
    type: "object"
    required:
    - "card"
    - "client"
    - "id"
    - "originator"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this transaction, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      originator:
        description: "Data relating to the originator of the transaction."
        $ref: "#/definitions/Originator"
      client:
        description: "Data relating to the sender of Transaction."
        $ref: "#/definitions/Institution"
      settlementEntity:
        description: "Data relating to the entity with whom the Merchant will settle\
          \ the transaction."
        $ref: "#/definitions/Institution"
      receiver:
        description: "Data relating to the entity which ultimately processes the request."
        $ref: "#/definitions/Institution"
      thirdPartyIdentifiers:
        type: "array"
        description: "An array of identifiers which each identify the transaction\
          \ within each entity's system."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      slipData:
        description: "Text to be printed on the customer receipt."
        $ref: "#/definitions/SlipData"
      basketRef:
        type: "string"
        description: "Used to group multiple transactions which would otherwise be\
          \ considered independent."
      tranType:
        type: "string"
        description: "Data relating to the type of transaction taking place (i.e.\
          \ cash withdrawal, goods and services etc.)."
        enum:
        - "GOODS_AND_SERVICES"
        - "CASH_WITHDRAWAL"
        - "DEBIT_ADJUSTMENT"
        - "GOODS_AND_SERVICES_WITH_CASH_BACK"
        - "NON_CASH"
        - "RETURNS"
        - "DEPOSIT"
        - "CREDIT_ADJUSTMENT"
        - "GENERAL_CREDIT"
        - "AVAILABLE_FUNDS_INQUIRY"
        - "BALANCE_INQUIRY"
        - "GENERAL_INQUIRY"
        - "CARD_VERIFICATION_INQUIRY"
        - "CARDHOLDER_ACCOUNTS_TRANSFER"
        - "GENERAL_TRANSFER"
        - "PAYMENT_FROM_ACCOUNT"
        - "GENERAL_PAYMENT"
        - "PAYMENT_TO_ACCOUNT"
        - "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
        - "PLACE_HOLD_ON_CARD"
        - "GENERAL_ADMIN"
        - "CHANGE_PIN"
        - "CARD_HOLDER_INQUIRY"
        - "POINTS_INQUIRY"
      srcAccType:
        type: "string"
        description: "This specifies the type of source account being used in the\
          \ transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      destAccType:
        type: "string"
        description: "This specifies the type of destination account being used in\
          \ the transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      amounts:
        description: "Indicates the amount which the gift card was being redeemed\
          \ for, the amount which was redeemed and the balance of the gift card after\
          \ redemption."
        $ref: "#/definitions/GiftcardAmounts"
      card:
        description: "Information about the gift card being redeemed."
        $ref: "#/definitions/Card"
      posInfo:
        description: "Information about the POS."
        $ref: "#/definitions/PosInfo"
      product:
        description: "Information about the gift card product being redeemed."
        $ref: "#/definitions/Product"
      basket:
        description: "The collection of products for which the gift card is being\
          \ redeemed."
        $ref: "#/definitions/Basket"
      points:
        description: "Specifies the points amount for the account the giftcard is\
          \ associated with."
        $ref: "#/definitions/PointAmounts"
      cardHolder:
        description: "Information about the card holder."
        $ref: "#/definitions/Customer"
    description: "Information about the redemption made on the gift card."
  RedemptionReversal:
    type: "object"
    required:
    - "id"
    - "requestId"
    - "reversalReason"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this advice, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      requestId:
        type: "string"
        description: "The UUID identifying the request that this advice relates to"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      thirdPartyIdentifiers:
        type: "array"
        description: "The unaltered thirdPartyIdentifiers array as supplied in the\
          \ related BasicResponse message. Required if thirdPartyIdentifiers field\
          \ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
          \ in the BasicResponse or no BasicResponse was received then this should\
          \ be set to the thirdPartyIdentifiers sent in the original request."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      reversalReason:
        type: "string"
        description: "The reason for the reversal"
        enum:
        - "TIMEOUT"
        - "CANCELLED"
        - "RESPONSE_NOT_FINAL"
    description: "Information about the gift card redemption being reversed."
  ReplaceConfirmation:
    type: "object"
    required:
    - "id"
    - "requestId"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this advice, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      requestId:
        type: "string"
        description: "The UUID identifying the request that this advice relates to"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      thirdPartyIdentifiers:
        type: "array"
        description: "The unaltered thirdPartyIdentifiers array as supplied in the\
          \ related BasicResponse message. Required if thirdPartyIdentifiers field\
          \ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
          \ in the BasicResponse or no BasicResponse was received then this should\
          \ be set to the thirdPartyIdentifiers sent in the original request."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
    description: "Information about a gift card replace request to be confirmed."
  ReplaceRequest:
    type: "object"
    required:
    - "client"
    - "id"
    - "newCard"
    - "oldCard"
    - "originator"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      card:
        $ref: "#/definitions/Card"
      targetCard:
        $ref: "#/definitions/Card"
      id:
        type: "string"
        description: "The randomly generated UUID identifying this transaction, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      originator:
        description: "Data relating to the originator of the transaction."
        $ref: "#/definitions/Originator"
      client:
        description: "Data relating to the sender of Transaction."
        $ref: "#/definitions/Institution"
      settlementEntity:
        description: "Data relating to the entity with whom the Merchant will settle\
          \ the transaction."
        $ref: "#/definitions/Institution"
      receiver:
        description: "Data relating to the entity which ultimately processes the request."
        $ref: "#/definitions/Institution"
      thirdPartyIdentifiers:
        type: "array"
        description: "An array of identifiers which each identify the transaction\
          \ within each entity's system."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      slipData:
        description: "Text to be printed on the customer receipt."
        $ref: "#/definitions/SlipData"
      basketRef:
        type: "string"
        description: "Used to group multiple transactions which would otherwise be\
          \ considered independent."
      tranType:
        type: "string"
        description: "Data relating to the type of transaction taking place (i.e.\
          \ cash withdrawal, goods and services etc.)."
        enum:
        - "GOODS_AND_SERVICES"
        - "CASH_WITHDRAWAL"
        - "DEBIT_ADJUSTMENT"
        - "GOODS_AND_SERVICES_WITH_CASH_BACK"
        - "NON_CASH"
        - "RETURNS"
        - "DEPOSIT"
        - "CREDIT_ADJUSTMENT"
        - "GENERAL_CREDIT"
        - "AVAILABLE_FUNDS_INQUIRY"
        - "BALANCE_INQUIRY"
        - "GENERAL_INQUIRY"
        - "CARD_VERIFICATION_INQUIRY"
        - "CARDHOLDER_ACCOUNTS_TRANSFER"
        - "GENERAL_TRANSFER"
        - "PAYMENT_FROM_ACCOUNT"
        - "GENERAL_PAYMENT"
        - "PAYMENT_TO_ACCOUNT"
        - "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
        - "PLACE_HOLD_ON_CARD"
        - "GENERAL_ADMIN"
        - "CHANGE_PIN"
        - "CARD_HOLDER_INQUIRY"
        - "POINTS_INQUIRY"
      srcAccType:
        type: "string"
        description: "This specifies the type of source account being used in the\
          \ transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      destAccType:
        type: "string"
        description: "This specifies the type of destination account being used in\
          \ the transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      oldCard:
        description: "Information about the gift card that is being replaced."
        $ref: "#/definitions/Card"
      newCard:
        description: "Information about the new gift card that will replace the old\
          \ card."
        $ref: "#/definitions/Card"
      posInfo:
        description: "Information about the POS."
        $ref: "#/definitions/PosInfo"
      product:
        description: "Information about the gift card product being used for the gift\
          \ card replace."
        $ref: "#/definitions/Product"
      cardHolder:
        description: "Information about the card holder."
        $ref: "#/definitions/Customer"
    description: "Information about the replace request to switch an old card with\
      \ a new card (Transfer funds out of and void old card)."
  ReplaceResponse:
    type: "object"
    required:
    - "amounts"
    - "client"
    - "id"
    - "newCard"
    - "oldCard"
    - "originator"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      card:
        $ref: "#/definitions/Card"
      targetCard:
        $ref: "#/definitions/Card"
      id:
        type: "string"
        description: "The randomly generated UUID identifying this transaction, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      originator:
        description: "Data relating to the originator of the transaction."
        $ref: "#/definitions/Originator"
      client:
        description: "Data relating to the sender of Transaction."
        $ref: "#/definitions/Institution"
      settlementEntity:
        description: "Data relating to the entity with whom the Merchant will settle\
          \ the transaction."
        $ref: "#/definitions/Institution"
      receiver:
        description: "Data relating to the entity which ultimately processes the request."
        $ref: "#/definitions/Institution"
      thirdPartyIdentifiers:
        type: "array"
        description: "An array of identifiers which each identify the transaction\
          \ within each entity's system."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      slipData:
        description: "Text to be printed on the customer receipt."
        $ref: "#/definitions/SlipData"
      basketRef:
        type: "string"
        description: "Used to group multiple transactions which would otherwise be\
          \ considered independent."
      tranType:
        type: "string"
        description: "Data relating to the type of transaction taking place (i.e.\
          \ cash withdrawal, goods and services etc.)."
        enum:
        - "GOODS_AND_SERVICES"
        - "CASH_WITHDRAWAL"
        - "DEBIT_ADJUSTMENT"
        - "GOODS_AND_SERVICES_WITH_CASH_BACK"
        - "NON_CASH"
        - "RETURNS"
        - "DEPOSIT"
        - "CREDIT_ADJUSTMENT"
        - "GENERAL_CREDIT"
        - "AVAILABLE_FUNDS_INQUIRY"
        - "BALANCE_INQUIRY"
        - "GENERAL_INQUIRY"
        - "CARD_VERIFICATION_INQUIRY"
        - "CARDHOLDER_ACCOUNTS_TRANSFER"
        - "GENERAL_TRANSFER"
        - "PAYMENT_FROM_ACCOUNT"
        - "GENERAL_PAYMENT"
        - "PAYMENT_TO_ACCOUNT"
        - "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
        - "PLACE_HOLD_ON_CARD"
        - "GENERAL_ADMIN"
        - "CHANGE_PIN"
        - "CARD_HOLDER_INQUIRY"
        - "POINTS_INQUIRY"
      srcAccType:
        type: "string"
        description: "This specifies the type of source account being used in the\
          \ transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      destAccType:
        type: "string"
        description: "This specifies the type of destination account being used in\
          \ the transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      amounts:
        description: "Indicates the balance amount which now exists in the new card\
          \ (balance from old card transferred to new card)."
        $ref: "#/definitions/GiftcardAmounts"
      oldCard:
        description: "Information about the gift card being replaced."
        $ref: "#/definitions/Card"
      newCard:
        description: "Information about the new gift card that will be used instead\
          \ of the old replaced card."
        $ref: "#/definitions/Card"
      posInfo:
        description: "Information about the POS."
        $ref: "#/definitions/PosInfo"
      product:
        description: "Information about the gift card product being used for the giftcard\
          \ replace operation."
        $ref: "#/definitions/Product"
      cardHolder:
        description: "Information about the card holder."
        $ref: "#/definitions/Customer"
    description: "Information about the replace request made to switch an old card\
      \ with a new card."
  ReplaceReversal:
    type: "object"
    required:
    - "id"
    - "requestId"
    - "reversalReason"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this advice, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      requestId:
        type: "string"
        description: "The UUID identifying the request that this advice relates to"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      thirdPartyIdentifiers:
        type: "array"
        description: "The unaltered thirdPartyIdentifiers array as supplied in the\
          \ related BasicResponse message. Required if thirdPartyIdentifiers field\
          \ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
          \ in the BasicResponse or no BasicResponse was received then this should\
          \ be set to the thirdPartyIdentifiers sent in the original request."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      reversalReason:
        type: "string"
        description: "The reason for the reversal"
        enum:
        - "TIMEOUT"
        - "CANCELLED"
        - "RESPONSE_NOT_FINAL"
    description: "Information about the gift card replace operation being reversed."
  SlipData:
    type: "object"
    properties:
      messageLines:
        type: "array"
        description: "An array of text lines and optional formatting to be printed\
          \ on the customer slip."
        items:
          $ref: "#/definitions/SlipLine"
      slipWidth:
        type: "integer"
        format: "int32"
        description: "The width of the slip in normal (unformatted) characters."
      issuerReference:
        type: "string"
        description: "An identifier that is printed on the customer slip and uniquely\
          \ identifies the payment on the service provider's system. This value is\
          \ used by the customer to request a refund when the service supports this\
          \ function, and it is thus important that this number is unique."
        pattern: "[A-Z0-9]{1,40}"
    description: "Data that may be printed on the customer slip for information purposes"
  SlipLine:
    type: "object"
    required:
    - "text"
    properties:
      barcode:
        description: "Barcode information for this line"
        $ref: "#/definitions/Barcode"
      text:
        type: "string"
        description: "Text contained on the line"
      fontWidthScaleFactor:
        type: "number"
        format: "double"
        description: "Scale factor for font width. Assume 1.0 (i.e. normal size) if\
          \ not present."
      fontHeightScaleFactor:
        type: "number"
        format: "double"
        description: "Scale factor for font height. Assume 1.0 (i.e. normal size)\
          \ if not present."
      line:
        type: "boolean"
        description: "Denotes a solid line on the slip. Assume false if not present."
        default: false
      cut:
        type: "boolean"
        description: "Indicates the slip should be cut at this line. Assume false\
          \ if not present."
        default: false
    description: "A line of text to be printed on the till slip"
  Tender:
    type: "object"
    required:
    - "amount"
    - "tenderType"
    properties:
      accountType:
        type: "string"
        description: "The type of account"
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "STORED_VALUE"
      amount:
        description: "The tendered amount"
        $ref: "#/definitions/LedgerAmount"
      cardNumber:
        type: "string"
        description: "A PCI compliant masked card number, with at least the first\
          \ 6 digits in the clear. Only applicable to card based transactions"
        pattern: "[0-9]{6}[0-9*]{0,13}"
      reference:
        type: "string"
        description: "A free text reference"
        minLength: 0
        maxLength: 40
      tenderType:
        type: "string"
        description: "The type of tender used"
        enum:
        - "CASH"
        - "CHEQUE"
        - "CREDIT_CARD"
        - "DEBIT_CARD"
        - "WALLET"
        - "ROUNDING"
        - "GIFT_CARD"
        - "LOYALTY_CARD"
        - "OTHER"
    description: "Details of the Tender used by a customer towards a payment"
  ThirdPartyIdentifier:
    type: "object"
    required:
    - "institutionId"
    - "transactionIdentifier"
    properties:
      institutionId:
        type: "string"
        description: "The entity's institution ID."
      transactionIdentifier:
        type: "string"
        description: "The identifier assigned to this transaction by the institution\
          \ represented in institutionId. This value should be unique within the institution's\
          \ system."
    description: "An identifier assigned by an entity which process the message. Identifiers\
      \ are keyed by institution ID thereby enabling any institution to recall a transaction\
      \ within the entity's own system using the entity's own identifier. Entity's\
      \ must not alter the identifier set by another entity. Once an identifier has\
      \ been set by an entity, all other entity's must send that identifier in subsequent\
      \ messages."
  TransferConfirmation:
    type: "object"
    required:
    - "id"
    - "requestId"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this advice, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      requestId:
        type: "string"
        description: "The UUID identifying the request that this advice relates to"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      thirdPartyIdentifiers:
        type: "array"
        description: "The unaltered thirdPartyIdentifiers array as supplied in the\
          \ related BasicResponse message. Required if thirdPartyIdentifiers field\
          \ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
          \ in the BasicResponse or no BasicResponse was received then this should\
          \ be set to the thirdPartyIdentifiers sent in the original request."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
    description: "Information about a gift card transfer to be confirmed."
  TransferRequest:
    type: "object"
    required:
    - "amounts"
    - "client"
    - "id"
    - "originator"
    - "sourceCard"
    - "targetCard"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      card:
        $ref: "#/definitions/Card"
      id:
        type: "string"
        description: "The randomly generated UUID identifying this transaction, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      originator:
        description: "Data relating to the originator of the transaction."
        $ref: "#/definitions/Originator"
      client:
        description: "Data relating to the sender of Transaction."
        $ref: "#/definitions/Institution"
      settlementEntity:
        description: "Data relating to the entity with whom the Merchant will settle\
          \ the transaction."
        $ref: "#/definitions/Institution"
      receiver:
        description: "Data relating to the entity which ultimately processes the request."
        $ref: "#/definitions/Institution"
      thirdPartyIdentifiers:
        type: "array"
        description: "An array of identifiers which each identify the transaction\
          \ within each entity's system."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      slipData:
        description: "Text to be printed on the customer receipt."
        $ref: "#/definitions/SlipData"
      basketRef:
        type: "string"
        description: "Used to group multiple transactions which would otherwise be\
          \ considered independent."
      tranType:
        type: "string"
        description: "Data relating to the type of transaction taking place (i.e.\
          \ cash withdrawal, goods and services etc.)."
        enum:
        - "GOODS_AND_SERVICES"
        - "CASH_WITHDRAWAL"
        - "DEBIT_ADJUSTMENT"
        - "GOODS_AND_SERVICES_WITH_CASH_BACK"
        - "NON_CASH"
        - "RETURNS"
        - "DEPOSIT"
        - "CREDIT_ADJUSTMENT"
        - "GENERAL_CREDIT"
        - "AVAILABLE_FUNDS_INQUIRY"
        - "BALANCE_INQUIRY"
        - "GENERAL_INQUIRY"
        - "CARD_VERIFICATION_INQUIRY"
        - "CARDHOLDER_ACCOUNTS_TRANSFER"
        - "GENERAL_TRANSFER"
        - "PAYMENT_FROM_ACCOUNT"
        - "GENERAL_PAYMENT"
        - "PAYMENT_TO_ACCOUNT"
        - "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
        - "PLACE_HOLD_ON_CARD"
        - "GENERAL_ADMIN"
        - "CHANGE_PIN"
        - "CARD_HOLDER_INQUIRY"
        - "POINTS_INQUIRY"
      srcAccType:
        type: "string"
        description: "This specifies the type of source account being used in the\
          \ transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      destAccType:
        type: "string"
        description: "This specifies the type of destination account being used in\
          \ the transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      amounts:
        description: "Specifies the amount which is being transferred from a source\
          \ giftcard to a target giftcard."
        $ref: "#/definitions/GiftcardAmounts"
      sourceCard:
        description: "Information about the gift card that funds are being transferred\
          \ from."
        $ref: "#/definitions/Card"
      targetCard:
        description: "Information about the gift card that funds are being transferred\
          \ to."
        $ref: "#/definitions/Card"
      posInfo:
        description: "Information about the POS."
        $ref: "#/definitions/PosInfo"
      product:
        description: "Information about the gift card product being used for the transfer."
        $ref: "#/definitions/Product"
      cardHolder:
        description: "Information about the card holder."
        $ref: "#/definitions/Customer"
    description: "Information about the transfer being from a source gift card to\
      \ a target gift card."
  TransferResponse:
    type: "object"
    required:
    - "amounts"
    - "client"
    - "id"
    - "originator"
    - "sourceCard"
    - "targetCard"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      card:
        $ref: "#/definitions/Card"
      id:
        type: "string"
        description: "The randomly generated UUID identifying this transaction, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      originator:
        description: "Data relating to the originator of the transaction."
        $ref: "#/definitions/Originator"
      client:
        description: "Data relating to the sender of Transaction."
        $ref: "#/definitions/Institution"
      settlementEntity:
        description: "Data relating to the entity with whom the Merchant will settle\
          \ the transaction."
        $ref: "#/definitions/Institution"
      receiver:
        description: "Data relating to the entity which ultimately processes the request."
        $ref: "#/definitions/Institution"
      thirdPartyIdentifiers:
        type: "array"
        description: "An array of identifiers which each identify the transaction\
          \ within each entity's system."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      slipData:
        description: "Text to be printed on the customer receipt."
        $ref: "#/definitions/SlipData"
      basketRef:
        type: "string"
        description: "Used to group multiple transactions which would otherwise be\
          \ considered independent."
      tranType:
        type: "string"
        description: "Data relating to the type of transaction taking place (i.e.\
          \ cash withdrawal, goods and services etc.)."
        enum:
        - "GOODS_AND_SERVICES"
        - "CASH_WITHDRAWAL"
        - "DEBIT_ADJUSTMENT"
        - "GOODS_AND_SERVICES_WITH_CASH_BACK"
        - "NON_CASH"
        - "RETURNS"
        - "DEPOSIT"
        - "CREDIT_ADJUSTMENT"
        - "GENERAL_CREDIT"
        - "AVAILABLE_FUNDS_INQUIRY"
        - "BALANCE_INQUIRY"
        - "GENERAL_INQUIRY"
        - "CARD_VERIFICATION_INQUIRY"
        - "CARDHOLDER_ACCOUNTS_TRANSFER"
        - "GENERAL_TRANSFER"
        - "PAYMENT_FROM_ACCOUNT"
        - "GENERAL_PAYMENT"
        - "PAYMENT_TO_ACCOUNT"
        - "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
        - "PLACE_HOLD_ON_CARD"
        - "GENERAL_ADMIN"
        - "CHANGE_PIN"
        - "CARD_HOLDER_INQUIRY"
        - "POINTS_INQUIRY"
      srcAccType:
        type: "string"
        description: "This specifies the type of source account being used in the\
          \ transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      destAccType:
        type: "string"
        description: "This specifies the type of destination account being used in\
          \ the transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      amounts:
        description: "Indicates the amount which was being transferred from a source\
          \ gift card to a target gift card, the amount which was transferred and\
          \ the balance of the source gift card after the transfer"
        $ref: "#/definitions/GiftcardAmounts"
      sourceCard:
        description: "Information about the gift card that funds are being transferred\
          \ from."
        $ref: "#/definitions/Card"
      targetCard:
        description: "Information about the gift card that funds are being transferred\
          \ to."
        $ref: "#/definitions/Card"
      posInfo:
        description: "Information about the POS."
        $ref: "#/definitions/PosInfo"
      product:
        description: "Information about the gift card product being used for the transfer."
        $ref: "#/definitions/Product"
      cardHolder:
        description: "Information about the card holder."
        $ref: "#/definitions/Customer"
    description: "Information about the transfer made from a source gift card to a\
      \ target gift card."
  TransferReversal:
    type: "object"
    required:
    - "id"
    - "requestId"
    - "reversalReason"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this advice, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      requestId:
        type: "string"
        description: "The UUID identifying the request that this advice relates to"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      thirdPartyIdentifiers:
        type: "array"
        description: "The unaltered thirdPartyIdentifiers array as supplied in the\
          \ related BasicResponse message. Required if thirdPartyIdentifiers field\
          \ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
          \ in the BasicResponse or no BasicResponse was received then this should\
          \ be set to the thirdPartyIdentifiers sent in the original request."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      reversalReason:
        type: "string"
        description: "The reason for the reversal"
        enum:
        - "TIMEOUT"
        - "CANCELLED"
        - "RESPONSE_NOT_FINAL"
    description: "Information about the gift card transfer being reversed."
  VoidConfirmation:
    type: "object"
    required:
    - "id"
    - "requestId"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this advice, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      requestId:
        type: "string"
        description: "The UUID identifying the request that this advice relates to"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      thirdPartyIdentifiers:
        type: "array"
        description: "The unaltered thirdPartyIdentifiers array as supplied in the\
          \ related BasicResponse message. Required if thirdPartyIdentifiers field\
          \ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
          \ in the BasicResponse or no BasicResponse was received then this should\
          \ be set to the thirdPartyIdentifiers sent in the original request."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
    description: "Information about a gift card void to be confirmed."
  VoidRequest:
    type: "object"
    required:
    - "card"
    - "client"
    - "id"
    - "originator"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this transaction, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      originator:
        description: "Data relating to the originator of the transaction."
        $ref: "#/definitions/Originator"
      client:
        description: "Data relating to the sender of Transaction."
        $ref: "#/definitions/Institution"
      settlementEntity:
        description: "Data relating to the entity with whom the Merchant will settle\
          \ the transaction."
        $ref: "#/definitions/Institution"
      receiver:
        description: "Data relating to the entity which ultimately processes the request."
        $ref: "#/definitions/Institution"
      thirdPartyIdentifiers:
        type: "array"
        description: "An array of identifiers which each identify the transaction\
          \ within each entity's system."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      slipData:
        description: "Text to be printed on the customer receipt."
        $ref: "#/definitions/SlipData"
      basketRef:
        type: "string"
        description: "Used to group multiple transactions which would otherwise be\
          \ considered independent."
      tranType:
        type: "string"
        description: "Data relating to the type of transaction taking place (i.e.\
          \ cash withdrawal, goods and services etc.)."
        enum:
        - "GOODS_AND_SERVICES"
        - "CASH_WITHDRAWAL"
        - "DEBIT_ADJUSTMENT"
        - "GOODS_AND_SERVICES_WITH_CASH_BACK"
        - "NON_CASH"
        - "RETURNS"
        - "DEPOSIT"
        - "CREDIT_ADJUSTMENT"
        - "GENERAL_CREDIT"
        - "AVAILABLE_FUNDS_INQUIRY"
        - "BALANCE_INQUIRY"
        - "GENERAL_INQUIRY"
        - "CARD_VERIFICATION_INQUIRY"
        - "CARDHOLDER_ACCOUNTS_TRANSFER"
        - "GENERAL_TRANSFER"
        - "PAYMENT_FROM_ACCOUNT"
        - "GENERAL_PAYMENT"
        - "PAYMENT_TO_ACCOUNT"
        - "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
        - "PLACE_HOLD_ON_CARD"
        - "GENERAL_ADMIN"
        - "CHANGE_PIN"
        - "CARD_HOLDER_INQUIRY"
        - "POINTS_INQUIRY"
      srcAccType:
        type: "string"
        description: "This specifies the type of source account being used in the\
          \ transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      destAccType:
        type: "string"
        description: "This specifies the type of destination account being used in\
          \ the transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      card:
        description: "Information about the gift card being voided."
        $ref: "#/definitions/Card"
      posInfo:
        description: "Information about the POS."
        $ref: "#/definitions/PosInfo"
      product:
        description: "Information about the gift card product being voided."
        $ref: "#/definitions/Product"
      cardHolder:
        description: "Information about the card holder."
        $ref: "#/definitions/Customer"
    description: "Information about the void of the gift card."
  VoidResponse:
    type: "object"
    required:
    - "card"
    - "client"
    - "id"
    - "originator"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this transaction, as\
          \ defined for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      originator:
        description: "Data relating to the originator of the transaction."
        $ref: "#/definitions/Originator"
      client:
        description: "Data relating to the sender of Transaction."
        $ref: "#/definitions/Institution"
      settlementEntity:
        description: "Data relating to the entity with whom the Merchant will settle\
          \ the transaction."
        $ref: "#/definitions/Institution"
      receiver:
        description: "Data relating to the entity which ultimately processes the request."
        $ref: "#/definitions/Institution"
      thirdPartyIdentifiers:
        type: "array"
        description: "An array of identifiers which each identify the transaction\
          \ within each entity's system."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      slipData:
        description: "Text to be printed on the customer receipt."
        $ref: "#/definitions/SlipData"
      basketRef:
        type: "string"
        description: "Used to group multiple transactions which would otherwise be\
          \ considered independent."
      tranType:
        type: "string"
        description: "Data relating to the type of transaction taking place (i.e.\
          \ cash withdrawal, goods and services etc.)."
        enum:
        - "GOODS_AND_SERVICES"
        - "CASH_WITHDRAWAL"
        - "DEBIT_ADJUSTMENT"
        - "GOODS_AND_SERVICES_WITH_CASH_BACK"
        - "NON_CASH"
        - "RETURNS"
        - "DEPOSIT"
        - "CREDIT_ADJUSTMENT"
        - "GENERAL_CREDIT"
        - "AVAILABLE_FUNDS_INQUIRY"
        - "BALANCE_INQUIRY"
        - "GENERAL_INQUIRY"
        - "CARD_VERIFICATION_INQUIRY"
        - "CARDHOLDER_ACCOUNTS_TRANSFER"
        - "GENERAL_TRANSFER"
        - "PAYMENT_FROM_ACCOUNT"
        - "GENERAL_PAYMENT"
        - "PAYMENT_TO_ACCOUNT"
        - "PAYMENT_FROM_ACCOUNT_TO_ACCOUNT"
        - "PLACE_HOLD_ON_CARD"
        - "GENERAL_ADMIN"
        - "CHANGE_PIN"
        - "CARD_HOLDER_INQUIRY"
        - "POINTS_INQUIRY"
      srcAccType:
        type: "string"
        description: "This specifies the type of source account being used in the\
          \ transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      destAccType:
        type: "string"
        description: "This specifies the type of destination account being used in\
          \ the transaction (i.e. cheque, savings)."
        enum:
        - "DEFAULT"
        - "SAVINGS"
        - "CHEQUE"
        - "CREDIT"
        - "UNIVERSAL"
        - "ELECTRONIC_PURSE"
        - "GIFT_CARD"
        - "STORED_VALUE"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      amounts:
        description: "Specifies the balance of the gift card when it was voided."
        $ref: "#/definitions/GiftcardAmounts"
      card:
        description: "Information about the gift card being voided."
        $ref: "#/definitions/Card"
      posInfo:
        description: "Information about the POS."
        $ref: "#/definitions/PosInfo"
      product:
        description: "Information about the gift card product being voided."
        $ref: "#/definitions/Product"
      cardHolder:
        description: "Information about the card holder."
        $ref: "#/definitions/Customer"
    description: "Information about the outcome of voiding process."
  VoidReversal:
    type: "object"
    required:
    - "id"
    - "requestId"
    - "reversalReason"
    - "thirdPartyIdentifiers"
    - "time"
    properties:
      id:
        type: "string"
        description: "The randomly generated UUID identifying this advice, as defined\
          \ for a variant 4 UUID in [RFC 4122](https://tools.ietf.org/html/rfc4122)"
      requestId:
        type: "string"
        description: "The UUID identifying the request that this advice relates to"
      time:
        type: "string"
        format: "date-time"
        description: "The date and time of the message as recorded by the sender.\
          \ The format shall be as defined for date-time in [RFC 3339 section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\
          \ It is recommended that the optional time-secfrac be included up to millisecond\
          \ precision"
      thirdPartyIdentifiers:
        type: "array"
        description: "The unaltered thirdPartyIdentifiers array as supplied in the\
          \ related BasicResponse message. Required if thirdPartyIdentifiers field\
          \ was present in the BasicResponse. If no thirdPartyIdentifiers was received\
          \ in the BasicResponse or no BasicResponse was received then this should\
          \ be set to the thirdPartyIdentifiers sent in the original request."
        items:
          $ref: "#/definitions/ThirdPartyIdentifier"
      stan:
        type: "string"
        description: "The System Trace Audit Number can be used to locate transactions\
          \ across different systems."
      rrn:
        type: "string"
        description: "This is a reference set by the original source of the transaction."
      reversalReason:
        type: "string"
        description: "The reason for the reversal"
        enum:
        - "TIMEOUT"
        - "CANCELLED"
        - "RESPONSE_NOT_FINAL"
    description: "Information about the gift card void being reversed."