swagger: "2.0"
host: api-test.qualpay.com
basePath: /pg
info:
  contact:
    x-twitter: qualpay
  description: This document describes the Qualpay Payment Gateway API.
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  title: Qualpay Payment Gateway API
  version: 1.7.0
  x-apisguru-categories:
    - ecommerce
  x-logo:
    url: https://twitter.com/qualpay/profile_image?size=original
  x-origin:
    - format: swagger
      url: https://api-test.qualpay.com/pg/doc
      version: "2.0"
  x-providerName: qualpay.com
securityDefinitions:
  basicAuth:
    type: basic
tags:
  - description: Payment Gateway
    name: payment-gateway
paths:
  /ardef:
    post:
      consumes:
        - application/json
      description: Gets Card type information for Visa, Mastercard, and Discover. Useful if you prohibit or allow certain activity based on card type. For example, you may not want to allow a subscription to be created using a prepaid card.
      operationId: "Get Card Type Information "
      parameters:
        - description: Card Type Request
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/ArdefRequest"
      produces:
        - application/json
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/ArdefResponse"
        "400":
          description: Bad Request
          schema:
            $ref: "#/definitions/PGApiResponse"
        "401":
          description: Unauthorized
          schema:
            $ref: "#/definitions/PGApiResponse"
        "402":
          description: Declined
          schema:
            $ref: "#/definitions/PGApiResponse"
        "409":
          description: Conflict
          schema:
            $ref: "#/definitions/PGApiResponse"
        "500":
          description: Internal Server Error
          schema:
            $ref: "#/definitions/PGApiResponse"
        "509":
          description: Timeout
          schema:
            $ref: "#/definitions/PGApiResponse"
      security:
        - basicAuth: []
      summary: Get Card type Information for Visa, Mastercard, and Discover
      tags:
        - payment-gateway
  /auth:
    post:
      consumes:
        - application/json
      description: Authorizes a credit card for capture at a later time. An authorized transaction will continue to be open until it expires or a capture message is received. Authorizations are automatically voided if they are not captured within 28 days, although most issuing banks will release the hold after 24 hours in retail environments or 7 days in card not present environments.
      operationId: Authorization
      parameters:
        - description: Payment Gateway Authorization Request
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/PGApiTransactionRequest"
          x-display-fields:
            - amt_tran
            - card_number
            - exp_date
      produces:
        - application/json
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/PGApiTransactionResponse"
        "400":
          description: Bad Request
          schema:
            $ref: "#/definitions/PGApiBadResponse"
        "401":
          description: Unauthorized
          schema:
            $ref: "#/definitions/PGApiUnauthResponse"
        "402":
          description: Declined
          schema:
            $ref: "#/definitions/PGApiDeclineResponse"
        "500":
          description: Internal Server Error
          schema:
            $ref: "#/definitions/PGApiInternalErrorResponse"
        "509":
          description: Timeout
          schema:
            $ref: "#/definitions/PGApiTimeoutResponse"
      security:
        - basicAuth: []
      summary: Authorize Transaction
      tags:
        - payment-gateway
  /batchClose:
    post:
      consumes:
        - application/json
      description: Closes a batch. Use this request when the timing of the batch close needs to be controlled rather than relying on the once-daily automatic batch close which is 9 PM Pacific by default, and can be changed in the Qualpay Manager administration settings.
      operationId: Batch Close
      parameters:
        - description: Payment Gateway Batch Close Request
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/PGApiBatchCloseRequest"
          x-display-fields:
            - merchant_id
            - retry_attempt
            - retry_id
      produces:
        - application/json
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/PGApiBatchCloseResponse"
        "400":
          description: Bad Request
          schema:
            $ref: "#/definitions/PGApiBadResponse"
        "401":
          description: Unauthorized
          schema:
            $ref: "#/definitions/PGApiUnauthResponse"
        "402":
          description: Declined
          schema:
            $ref: "#/definitions/PGApiDeclineResponse"
        "500":
          description: Internal Server Error
          schema:
            $ref: "#/definitions/PGApiInternalErrorResponse"
        "509":
          description: Timeout
          schema:
            $ref: "#/definitions/PGApiTimeoutResponse"
      security:
        - basicAuth: []
      summary: Close Batch
      tags:
        - payment-gateway
  "/capture/{pgIdOrig}":
    post:
      consumes:
        - application/json
      description: Captures an authorized transaction for any amount up to the amount originally authorized. An authorized transaction can only be captured once.
      operationId: Capture
      parameters:
        - description: pgIdOrig
          in: path
          name: pgIdOrig
          required: true
          type: string
          x-display-fields:
            - amt_tran
            - card_number
            - exp_date
        - description: Payment Gateway Capture Request
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/PGApiCaptureRequest"
      produces:
        - application/json
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/PGApiCaptureResponse"
        "400":
          description: Bad Request
          schema:
            $ref: "#/definitions/PGApiBadResponse"
        "401":
          description: Unauthorized
          schema:
            $ref: "#/definitions/PGApiUnauthResponse"
        "402":
          description: Declined
          schema:
            $ref: "#/definitions/PGApiDeclineResponse"
        "500":
          description: Internal Server Error
          schema:
            $ref: "#/definitions/PGApiInternalErrorResponse"
        "509":
          description: Timeout
          schema:
            $ref: "#/definitions/PGApiTimeoutResponse"
      security:
        - basicAuth: []
      summary: Capture an Authorized Transaction
      tags:
        - payment-gateway
  /credit:
    post:
      consumes:
        - application/json
      description: Issues an unlinked credit. Credit requests require that the cardholder data is  provided in the request. Credits are only available during the first 30 days of account opening unless you contact Qualpay support to make other arrangements. The refund request should generally be used to return money to the cardholder, as it is a reversal of a previously captured transaction. A refund request is linked to the original transaction which is helpful for reconciliation purposes.
      operationId: Credit
      parameters:
        - description: Payment Gateway Credit Request
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/PGApiTransactionRequest"
          x-display-fields:
            - amt_tran
            - card_number
            - exp_date
            - cvv2
            - avs_zip
      produces:
        - application/json
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/PGApiTransactionResponse"
        "400":
          description: Bad Request
          schema:
            $ref: "#/definitions/PGApiBadResponse"
        "401":
          description: Unauthorized
          schema:
            $ref: "#/definitions/PGApiUnauthResponse"
        "402":
          description: Declined
          schema:
            $ref: "#/definitions/PGApiDeclineResponse"
        "500":
          description: Internal Server Error
          schema:
            $ref: "#/definitions/PGApiInternalErrorResponse"
        "509":
          description: Timeout
          schema:
            $ref: "#/definitions/PGApiTimeoutResponse"
      security:
        - basicAuth: []
      summary: Issue Credit to Cardholder
      tags:
        - payment-gateway
  "/emailReceipt/{pgId}":
    post:
      consumes:
        - application/json
      description: Sends the transaction receipt to multiple email addresses. Receipts can be sent only for successful transactions.
      operationId: Send Receipt
      parameters:
        - description: pgId
          in: path
          name: pgId
          required: true
          type: string
        - description: Payment Gateway Email Receipt Request
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/PGApiEmailReceiptRequest"
          x-display-fields:
            - email_address
            - logo_url
      produces:
        - application/json
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/PGApiEmailReceiptResponse"
        "400":
          description: Bad Request
          schema:
            $ref: "#/definitions/PGApiBadResponse"
        "401":
          description: Unauthorized
          schema:
            $ref: "#/definitions/PGApiUnauthResponse"
        "402":
          description: Declined
          schema:
            $ref: "#/definitions/PGApiDeclineResponse"
        "500":
          description: Internal Server Error
          schema:
            $ref: "#/definitions/PGApiInternalErrorResponse"
        "509":
          description: Timeout
          schema:
            $ref: "#/definitions/PGApiTimeoutResponse"
      security:
        - basicAuth: []
      summary: Send Transaction Receipt Email
      tags:
        - payment-gateway
  /expireToken:
    post:
      consumes:
        - application/json
      description: Once expired, the token (card_id) is no longer valid for use in future transactions.
      operationId: Expire
      parameters:
        - description: Payment Gateway Expire Token Request
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/PGApiExpireTokenRequest"
      produces:
        - application/json
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/PGApiExpireTokenResponse"
        "400":
          description: Bad Request
          schema:
            $ref: "#/definitions/PGApiBadResponse"
        "401":
          description: Unauthorized
          schema:
            $ref: "#/definitions/PGApiUnauthResponse"
        "402":
          description: Declined
          schema:
            $ref: "#/definitions/PGApiDeclineResponse"
        "500":
          description: Internal Server Error
          schema:
            $ref: "#/definitions/PGApiInternalErrorResponse"
        "509":
          description: Timeout
          schema:
            $ref: "#/definitions/PGApiTimeoutResponse"
      security:
        - basicAuth: []
      summary: Expire Token
      tags:
        - payment-gateway
  /force:
    post:
      consumes:
        - application/json
      description: Forces an approval, used when an online authorization request received a 'declined' reason code and you have received an authorization from a voice or automated response (ARU) system. The required fields are the same as a sale or authorization request, except that the expiration date (exp_date) is not required, and the 6-character authorization code (auth_code) is required.
      operationId: Force
      parameters:
        - description: Payment Gateway Force Request
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/PGApiTransactionRequest"
          x-display-fields:
            - merchant_id
            - auth_code
            - amt_tran
            - card_number
      produces:
        - application/json
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/PGApiTransactionResponse"
        "400":
          description: Bad Request
          schema:
            $ref: "#/definitions/PGApiBadResponse"
        "401":
          description: Unauthorized
          schema:
            $ref: "#/definitions/PGApiUnauthResponse"
        "402":
          description: Declined
          schema:
            $ref: "#/definitions/PGApiDeclineResponse"
        "500":
          description: Internal Server Error
          schema:
            $ref: "#/definitions/PGApiInternalErrorResponse"
        "509":
          description: Timeout
          schema:
            $ref: "#/definitions/PGApiTimeoutResponse"
      security:
        - basicAuth: []
      summary: Force Transaction Approval
      tags:
        - payment-gateway
  "/recharge/{pgIdOrig}":
    post:
      consumes:
        - application/json
      description: Creates a new sale transaction using the cardholder data from a previous successful transaction.
      operationId: Recharge
      parameters:
        - description: pgIdOrig
          in: path
          name: pgIdOrig
          required: true
          type: string
        - description: Payment Gateway Recharge Request
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/PGApiRechargeRequest"
          x-display-fields:
            - amt_tran
      produces:
        - application/json
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/PGApiRechargeResponse"
        "400":
          description: Bad Request
          schema:
            $ref: "#/definitions/PGApiBadResponse"
        "401":
          description: Unauthorized
          schema:
            $ref: "#/definitions/PGApiUnauthResponse"
        "402":
          description: Declined
          schema:
            $ref: "#/definitions/PGApiDeclineResponse"
        "500":
          description: Internal Server Error
          schema:
            $ref: "#/definitions/PGApiInternalErrorResponse"
        "509":
          description: Timeout
          schema:
            $ref: "#/definitions/PGApiTimeoutResponse"
      security:
        - basicAuth: []
      summary: Recharge Previously Settled Transaction
      tags:
        - payment-gateway
  "/refund/{pgIdOrig}":
    post:
      consumes:
        - application/json
      description: Returns money to the cardholder from a previously captured transaction. Multiple refunds are allowed per captured transaction, provided that the sum of all refunds does not exceed the original captured transaction amount. Authorizations that have not been captured are not eligible for a refund.
      operationId: Refund
      parameters:
        - description: pgIdOrig
          in: path
          name: pgIdOrig
          required: true
          type: string
        - description: Payment Gateway Refund Request
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/PGApiRefundRequest"
          x-display-fields:
            - amt_tran
      produces:
        - application/json
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/PGApiRefundResponse"
        "400":
          description: Bad Request
          schema:
            $ref: "#/definitions/PGApiBadResponse"
        "401":
          description: Unauthorized
          schema:
            $ref: "#/definitions/PGApiUnauthResponse"
        "402":
          description: Declined
          schema:
            $ref: "#/definitions/PGApiDeclineResponse"
        "500":
          description: Internal Server Error
          schema:
            $ref: "#/definitions/PGApiInternalErrorResponse"
        "509":
          description: Timeout
          schema:
            $ref: "#/definitions/PGApiTimeoutResponse"
      security:
        - basicAuth: []
      summary: Refund Previously Captured Transaction
      tags:
        - payment-gateway
  /sale:
    post:
      consumes:
        - application/json
      description: Requests authorization, and, if approved, will immediately capture the transaction to be included in the next batch close. This transaction type is used in card-present environments, and also card-not-present environments where no physical goods are being shipped.
      operationId: Sale
      parameters:
        - description: Payment Gateway Sale Request
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/PGApiTransactionRequest"
          x-display-fields:
            - cardholder_name
            - amt_tran
            - card_number
            - exp_date
            - avs_zip
            - moto_ecomm_ind
            - cvv2
            - developer_id
            - client_ip
      produces:
        - application/json
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/PGApiTransactionResponse"
        "400":
          description: Bad Request
          schema:
            $ref: "#/definitions/PGApiBadResponse"
        "401":
          description: Unauthorized
          schema:
            $ref: "#/definitions/PGApiUnauthResponse"
        "402":
          description: Declined
          schema:
            $ref: "#/definitions/PGApiDeclineResponse"
        "500":
          description: Internal Server Error
          schema:
            $ref: "#/definitions/PGApiInternalErrorResponse"
        "509":
          description: Timeout
          schema:
            $ref: "#/definitions/PGApiTimeoutResponse"
      security:
        - basicAuth: []
      summary: Sale (Auth + Capture)
      tags:
        - payment-gateway
  /tokenize:
    post:
      consumes:
        - application/json
      description: Once stored, a unique card_id is returned for use in future transactions. Optionally, tokenization can be requested in an authorization, verify, force, credit, or sale request by sending the tokenize field set to true.
      operationId: Tokenize
      parameters:
        - description: Payment Gateway Tokenize Request
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/PGApiTokenizeRequest"
          x-display-fields:
            - card_number
            - cvv2
            - avs_address
            - exp_date
            - avs_zip
            - email_address
      produces:
        - application/json
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/PGApiTokenizeResponse"
        "400":
          description: Bad Request
          schema:
            $ref: "#/definitions/PGApiBadResponse"
        "401":
          description: Unauthorized
          schema:
            $ref: "#/definitions/PGApiUnauthResponse"
        "402":
          description: Declined
          schema:
            $ref: "#/definitions/PGApiDeclineResponse"
        "500":
          description: Internal Server Error
          schema:
            $ref: "#/definitions/PGApiInternalErrorResponse"
        "509":
          description: Timeout
          schema:
            $ref: "#/definitions/PGApiTimeoutResponse"
      security:
        - basicAuth: []
      summary: Tokenize Card
      tags:
        - payment-gateway
  /verify:
    post:
      consumes:
        - application/json
      description: A verify request will return success if the cardholder information was verified by the issuer. If AVS or CVV data is included in the message, then the AVS or CVV result code will be returned in the response message. This is useful if you want to determine if you have been presented with a valid card, but are not ready to authorize the card.
      operationId: Verify
      parameters:
        - description: Payment Gateway Card Verify Request
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/PGApiVerifyRequest"
          x-display-fields:
            - card_number
            - merchant_id
            - exp_date
            - avs_zip
            - cvv2
            - avs_address
            - developer_id
            - client_ip
      produces:
        - application/json
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/PGApiVerifyResponse"
        "400":
          description: Bad Request
          schema:
            $ref: "#/definitions/PGApiBadResponse"
        "401":
          description: Unauthorized
          schema:
            $ref: "#/definitions/PGApiUnauthResponse"
        "402":
          description: Declined
          schema:
            $ref: "#/definitions/PGApiDeclineResponse"
        "500":
          description: Internal Server Error
          schema:
            $ref: "#/definitions/PGApiInternalErrorResponse"
        "509":
          description: Timeout
          schema:
            $ref: "#/definitions/PGApiTimeoutResponse"
      security:
        - basicAuth: []
      summary: Verify Card
      tags:
        - payment-gateway
  "/void/{pgIdOrig}":
    post:
      consumes:
        - application/json
      description: Authorizations can be voided at any time until Qualpay automatically voids them at 28 days. Captured transactions can be voided until the batch is closed. If your batch closes and you did not void the transaction in time, you may make a refund request.
      operationId: Void
      parameters:
        - description: pgIdOrig
          in: path
          name: pgIdOrig
          required: true
          type: string
        - description: Payment Gateway Void Request
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/PGApiVoidRequest"
          x-display-fields:
            - merchant_id
      produces:
        - application/json
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/PGApiVoidResponse"
        "400":
          description: Bad Request
          schema:
            $ref: "#/definitions/PGApiBadResponse"
        "401":
          description: Unauthorized
          schema:
            $ref: "#/definitions/PGApiUnauthResponse"
        "402":
          description: Declined
          schema:
            $ref: "#/definitions/PGApiDeclineResponse"
        "500":
          description: Internal Server Error
          schema:
            $ref: "#/definitions/PGApiInternalErrorResponse"
        "509":
          description: Timeout
          schema:
            $ref: "#/definitions/PGApiTimeoutResponse"
      security:
        - basicAuth: []
      summary: Void a Previously Authorized Transaction
      tags:
        - payment-gateway
definitions:
  ArdefRequest:
    properties:
      card_number:
        description: "<strong>Format: </strong>Variable length, up to 19 N<br><strong>Description: </strong>Cardholder's card number."
        example: "4111111111111111"
        type: string
      merchant_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Unique identifier on the Qualpay system."
        example: <Provide merchant id that links to API Key>
        format: int64
        type: integer
    required:
      - card_number
      - merchant_id
    type: object
  ArdefResponse:
    properties:
      funding_source:
        description: "<strong>Format: </strong>Fixed length, 1 AN<br><strong>Description: </strong>Funding type for a card type request submitted.<ul><li> C - Credit</li><li> D - Debit</li><li>P - Prepaid</li></ul>"
        example: C
        readOnly: true
        type: string
      ind_comm_level2:
        description: "<strong>Format: </strong>Fixed length, 1 AN<br><strong>Description: </strong>This field will be set to Y for Level 2 purchasing cards."
        example: Y
        readOnly: true
        type: string
      ind_comm_level3:
        description: "<strong>Format: </strong>Fixed length, 1 AN<br><strong>Description: </strong>This field will be set to Y for Level 3 purchasing cards."
        example: Y
        readOnly: true
        type: string
      issuer_country:
        description: "<strong>Format: </strong>Fixed length, 2 AN<br><strong>Description: </strong>Issuer Country for a card type request submitted."
        example: US
        readOnly: true
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "000"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: Approved T37500
        readOnly: true
        type: string
    type: object
  Customer:
    properties:
      billing_addr1:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Customer billing address street."
        example: 123 Main Street
        type: string
      billing_addr2:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Customer billing address, line 2."
        example: "Suite #1234"
        type: string
      billing_city:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Customer billing city."
        example: San Mateo
        type: string
      billing_country:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Customer billing country."
        example: USA
        type: string
      billing_country_code:
        description: '<strong>Format: </strong>Fixed length, 3 N<br><strong>Description: </strong>ISO numeric country code for the billing address. Refer to <a href="/developer/api/reference#country-codes"target="_blank">Country Codes</a> for a list of country codes.'
        example: "840"
        type: string
      billing_state:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Customer billing state (abbreviated)."
        example: CA
        type: string
      billing_zip:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Customer billing zip code."
        example: "94402"
        type: string
      billing_zip4:
        description: "<strong>Format: </strong>Fixed length, 4 N<br><strong>Description: </strong>Customer billing zip+4 code if applicable."
        example: "1234"
        type: string
      customer_email:
        description: "<strong>Format: </strong>Variable length, up to 64 AN<br><strong>Description: </strong>Customer e-mail address."
        example: jsmith@somewhere.com
        type: string
      customer_firm_name:
        description: "<strong>Format: </strong>Variable length, up to 64 AN<br><strong>Description: </strong>Customer Business name if applicable.<br><strong>Conditional Requirement: </strong>Either customer first and last name or firm name is required. "
        example: Qualpay
        type: string
      customer_first_name:
        description: "<strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Customer first name.<br><strong>Conditional Requirement: </strong>Either customer first and last name or firm name is required. "
        example: Joe
        type: string
      customer_last_name:
        description: "<strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Customer last name.<br><strong>Conditional Requirement: </strong>Either customer first and last name or firm name is required. "
        example: Smith
        type: string
      customer_phone:
        description: "<strong>Format: </strong>Variable length, up to 16 N<br><strong>Description: </strong>Customer phone number."
        example: "6503885200"
        type: string
      shipping_addresses:
        description: List of shipping addresses for customer.
        items:
          $ref: "#/definitions/ShippingAddress"
        type: array
    type: object
  PGApiBadResponse:
    properties:
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Data that was provided in echo_fields in the request."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        readOnly: true
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "102"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: Invalid PG Identifier
        readOnly: true
        type: string
    type: object
  PGApiBatchCloseRequest:
    properties:
      developer_id:
        description: |
          <strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Use to indicate which company developed the integration to Qualpay or the name of the payment solution that is connected to Qualpay.  Suggested usage is softwareABCv1.0 or companyXYZv2.0.
        example: QualpayV1.2
        type: string
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be echoed back in the response message."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        type: string
      loc_id:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>When a merchant has more than one location using the same currency, this value is used to specify the specific location for this request."
        example: "0001"
        type: string
      merchant_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Unique identifier on the Qualpay system."
        example: <Provide merchant id that links to API Key>
        format: int64
        type: integer
      profile_id:
        description: "<strong>Format: </strong>Fixed length, 20 N<br><strong>Description: </strong>Explicitly identifies which Payment Gateway profile should be used for the request."
        example: "21200001000300000978"
        type: string
      report_data:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be included with the transaction data reported in Qualpay Manager."
        example: '[ {"shipping address" : "123 Main St."},{"shipping city, state zip" : "San Mateo, CA 94402"} ]'
        type: string
      retry_attempt:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>This field contains a number greater than zero (0). When the value is one (1), the payment gateway treats the message as a new message. If the value is greater than one (1), then the payment gateway will return the result of the original message. If the original message did not complete, the payment gateway treats the message as a new message.<br><strong>Conditional Requirement: </strong>This field is required when the retry_id is present in the request message."
        example: 1
        format: int64
        type: integer
      retry_id:
        description: "<strong>Format: </strong>Variable length, up to 15 N<br><strong>Description: </strong>This field contains a merchant generated number used to identify the request. This value must be unique within the last 24 hours. When present, the payment gateway will use the retry_attempt to determine whether the message is new or a retry of a previous message."
        example: 1234
        format: int64
        type: integer
      session_id:
        description: INTERNAL USE ONLY.
        type: string
      tran_currency:
        description: '<strong>Format: </strong>Variable length, up to 3 N<br><strong>Default: </strong>840<br><strong>Description: </strong>ISO numeric currency code for the transaction. Refer to <a href="/developer/api/reference#country-codes"target="_blank">Country Codes</a> for a list of currency codes.'
        example: 840
        format: int32
        type: integer
      user_id:
        description: INTERNAL USE ONLY.
        format: int64
        type: integer
    required:
      - merchant_id
    type: object
  PGApiBatchCloseResponse:
    properties:
      batch_info:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>JSON array of JSON objects containing the batch close results by currency and location."
        example: '[{"profile_id":"97100001000300000978","comment":"batch close failure; please try again"},{"profile_id":"97100001000300000124","batch _number":11, "cnt_total":12,"amt_total":- 588.15, "tran_currency":"124"}]'
        readOnly: true
        type: string
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Data that was provided in echo_fields in the request."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        readOnly: true
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "000"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: Approved T37500
        readOnly: true
        type: string
    type: object
  PGApiCaptureRequest:
    properties:
      amt_tran:
        description: "<strong>Format: </strong>Variable length, up to 12,2 N<br><strong>Description: </strong>Total amount to capture. The amount must be less than or equal to the authorized amount."
        example: 1193.5
        format: double
        type: number
      developer_id:
        description: |
          <strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Use to indicate which company developed the integration to Qualpay or the name of the payment solution that is connected to Qualpay.  Suggested usage is softwareABCv1.0 or companyXYZv2.0.
        example: QualpayV1.2
        type: string
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be echoed back in the response message."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        type: string
      loc_id:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>When a merchant has more than one location using the same currency, this value is used to specify the specific location for this request."
        example: "0001"
        type: string
      merchant_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Unique identifier on the Qualpay system."
        example: <Provide merchant id that links to API Key>
        format: int64
        type: integer
      profile_id:
        description: "<strong>Format: </strong>Fixed length, 20 N<br><strong>Description: </strong>Explicitly identifies which Payment Gateway profile should be used for the request."
        example: "21200001000300000978"
        type: string
      report_data:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be included with the transaction data reported in Qualpay Manager."
        example: '[ {"shipping address" : "123 Main St."},{"shipping city, state zip" : "San Mateo, CA 94402"} ]'
        type: string
      retry_attempt:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>This field contains a number greater than zero (0). When the value is one (1), the payment gateway treats the message as a new message. If the value is greater than one (1), then the payment gateway will return the result of the original message. If the original message did not complete, the payment gateway treats the message as a new message.<br><strong>Conditional Requirement: </strong>This field is required when the retry_id is present in the request message."
        example: 1
        format: int64
        type: integer
      retry_id:
        description: "<strong>Format: </strong>Variable length, up to 15 N<br><strong>Description: </strong>This field contains a merchant generated number used to identify the request. This value must be unique within the last 24 hours. When present, the payment gateway will use the retry_attempt to determine whether the message is new or a retry of a previous message."
        example: 1234
        format: int64
        type: integer
      session_id:
        description: INTERNAL USE ONLY.
        type: string
      user_id:
        description: INTERNAL USE ONLY.
        format: int64
        type: integer
      vendor_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Identifies the vendor to which this capture request applies."
        example: 212100026512
        format: int64
        type: integer
    required:
      - amt_tran
      - merchant_id
    type: object
  PGApiCaptureResponse:
    properties:
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Data that was provided in echo_fields in the request."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        readOnly: true
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "000"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: Capture request accepted
        readOnly: true
        type: string
    type: object
  PGApiDeclineResponse:
    properties:
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Data that was provided in echo_fields in the request."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        readOnly: true
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "005"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: Decline
        readOnly: true
        type: string
    type: object
  PGApiEmailReceiptRequest:
    properties:
      developer_id:
        description: |
          <strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Use to indicate which company developed the integration to Qualpay or the name of the payment solution that is connected to Qualpay.  Suggested usage is softwareABCv1.0 or companyXYZv2.0.
        example: QualpayV1.2
        type: string
      email_address:
        description: " AN<br><strong>Description: </strong>An array of email addresses to which the transaction receipt should be sent to. "
        example:
          - jdoe@qualpay.com
          - john.doe@qualpay.com
        items:
          type: string
        type: array
      logo_url:
        description: " AN<br><strong>Description: </strong>A link to the logo image that will be included in the transaction receipt. "
        example: https://app.qualpay.com/shared/images/qp-icon.png
        type: string
      merchant_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Unique identifier on the Qualpay system."
        example: <Provide merchant id that links to API Key>
        format: int64
        type: integer
      vendor_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Identifies the vendor to which this email receipt request applies."
        example: 212100026512
        format: int64
        type: integer
    required:
      - email_address
      - merchant_id
    type: object
  PGApiEmailReceiptResponse:
    properties:
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "000"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: Transaction Receipt sent
        readOnly: true
        type: string
    type: object
  PGApiExpireTokenRequest:
    properties:
      card_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>Card ID received from a tokenization request."
        example: 86e1b00d9b0811e68df3069d8f743581
        type: string
      developer_id:
        description: |
          <strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Use to indicate which company developed the integration to Qualpay or the name of the payment solution that is connected to Qualpay.  Suggested usage is softwareABCv1.0 or companyXYZv2.0.
        example: QualpayV1.2
        type: string
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be echoed back in the response message."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        type: string
      loc_id:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>When a merchant has more than one location using the same currency, this value is used to specify the specific location for this request."
        example: "0001"
        type: string
      merchant_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Unique identifier on the Qualpay system."
        example: <Provide merchant id that links to API Key>
        format: int64
        type: integer
      profile_id:
        description: "<strong>Format: </strong>Fixed length, 20 N<br><strong>Description: </strong>Explicitly identifies which Payment Gateway profile should be used for the request."
        example: "21200001000300000978"
        type: string
      report_data:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be included with the transaction data reported in Qualpay Manager."
        example: '[ {"shipping address" : "123 Main St."},{"shipping city, state zip" : "San Mateo, CA 94402"} ]'
        type: string
      retry_attempt:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>This field contains a number greater than zero (0). When the value is one (1), the payment gateway treats the message as a new message. If the value is greater than one (1), then the payment gateway will return the result of the original message. If the original message did not complete, the payment gateway treats the message as a new message.<br><strong>Conditional Requirement: </strong>This field is required when the retry_id is present in the request message."
        example: 1
        format: int64
        type: integer
      retry_id:
        description: "<strong>Format: </strong>Variable length, up to 15 N<br><strong>Description: </strong>This field contains a merchant generated number used to identify the request. This value must be unique within the last 24 hours. When present, the payment gateway will use the retry_attempt to determine whether the message is new or a retry of a previous message."
        example: 1234
        format: int64
        type: integer
      session_id:
        description: INTERNAL USE ONLY.
        type: string
      user_id:
        description: INTERNAL USE ONLY.
        format: int64
        type: integer
      vendor_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Identifies the vendor to which this expire token request applies."
        example: 212100026512
        format: int64
        type: integer
    required:
      - card_id
      - merchant_id
    type: object
  PGApiExpireTokenResponse:
    properties:
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Data that was provided in echo_fields in the request."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        readOnly: true
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "000"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: Token removed
        readOnly: true
        type: string
    type: object
  PGApiInternalErrorResponse:
    properties:
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Data that was provided in echo_fields in the request."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        readOnly: true
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "999"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: Internal Error
        readOnly: true
        type: string
    type: object
  PGApiRechargeRequest:
    properties:
      amt_tran:
        description: "<strong>Format: </strong>Variable length, up to 12,2 N<br><strong>Description: </strong>Amount to recharge using the payment data from a previous transaction."
        example: 1139.5
        format: double
        type: number
      developer_id:
        description: |
          <strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Use to indicate which company developed the integration to Qualpay or the name of the payment solution that is connected to Qualpay.  Suggested usage is softwareABCv1.0 or companyXYZv2.0.
        example: QualpayV1.2
        type: string
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be echoed back in the response message."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        type: string
      loc_id:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>When a merchant has more than one location using the same currency, this value is used to specify the specific location for this request."
        example: "0001"
        type: string
      merchant_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Unique identifier on the Qualpay system."
        example: <Provide merchant id that links to API Key>
        format: int64
        type: integer
      profile_id:
        description: "<strong>Format: </strong>Fixed length, 20 N<br><strong>Description: </strong>Explicitly identifies which Payment Gateway profile should be used for the request."
        example: "21200001000300000978"
        type: string
      report_data:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be included with the transaction data reported in Qualpay Manager."
        example: '[ {"shipping address" : "123 Main St."},{"shipping city, state zip" : "San Mateo, CA 94402"} ]'
        type: string
      retry_attempt:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>This field contains a number greater than zero (0). When the value is one (1), the payment gateway treats the message as a new message. If the value is greater than one (1), then the payment gateway will return the result of the original message. If the original message did not complete, the payment gateway treats the message as a new message.<br><strong>Conditional Requirement: </strong>This field is required when the retry_id is present in the request message."
        example: 1
        format: int64
        type: integer
      retry_id:
        description: "<strong>Format: </strong>Variable length, up to 15 N<br><strong>Description: </strong>This field contains a merchant generated number used to identify the request. This value must be unique within the last 24 hours. When present, the payment gateway will use the retry_attempt to determine whether the message is new or a retry of a previous message."
        example: 1234
        format: int64
        type: integer
      session_id:
        description: INTERNAL USE ONLY.
        type: string
      user_id:
        description: INTERNAL USE ONLY.
        format: int64
        type: integer
    required:
      - amt_tran
      - merchant_id
    type: object
  PGApiRechargeResponse:
    properties:
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Data that was provided in echo_fields in the request."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        readOnly: true
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "000"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: Approved T25388
        readOnly: true
        type: string
    type: object
  PGApiRefundRequest:
    properties:
      amt_tran:
        description: "<strong>Format: </strong>Variable length, up to 12,2 N<br><strong>Description: </strong>Total amount to refund. Partial refunds are allowed by providing an amount in this field that is less than the total original transaction amount."
        example: 1193.5
        format: double
        type: number
      developer_id:
        description: |
          <strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Use to indicate which company developed the integration to Qualpay or the name of the payment solution that is connected to Qualpay.  Suggested usage is softwareABCv1.0 or companyXYZv2.0.
        example: QualpayV1.2
        type: string
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be echoed back in the response message."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        type: string
      loc_id:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>When a merchant has more than one location using the same currency, this value is used to specify the specific location for this request."
        example: "0001"
        type: string
      merchant_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Unique identifier on the Qualpay system."
        example: <Provide merchant id that links to API Key>
        format: int64
        type: integer
      profile_id:
        description: "<strong>Format: </strong>Fixed length, 20 N<br><strong>Description: </strong>Explicitly identifies which Payment Gateway profile should be used for the request."
        example: "21200001000300000978"
        type: string
      report_data:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be included with the transaction data reported in Qualpay Manager."
        example: '[ {"shipping address" : "123 Main St."},{"shipping city, state zip" : "San Mateo, CA 94402"} ]'
        type: string
      retry_attempt:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>This field contains a number greater than zero (0). When the value is one (1), the payment gateway treats the message as a new message. If the value is greater than one (1), then the payment gateway will return the result of the original message. If the original message did not complete, the payment gateway treats the message as a new message.<br><strong>Conditional Requirement: </strong>This field is required when the retry_id is present in the request message."
        example: 1
        format: int64
        type: integer
      retry_id:
        description: "<strong>Format: </strong>Variable length, up to 15 N<br><strong>Description: </strong>This field contains a merchant generated number used to identify the request. This value must be unique within the last 24 hours. When present, the payment gateway will use the retry_attempt to determine whether the message is new or a retry of a previous message."
        example: 1234
        format: int64
        type: integer
      session_id:
        description: INTERNAL USE ONLY.
        type: string
      user_id:
        description: INTERNAL USE ONLY.
        format: int64
        type: integer
      vendor_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Identifies the vendor to which this refund request applies."
        example: 212100026512
        format: int64
        type: integer
    required:
      - amt_tran
      - merchant_id
    type: object
  PGApiRefundResponse:
    properties:
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Data that was provided in echo_fields in the request."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        readOnly: true
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "000"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: Refund request accepted
        readOnly: true
        type: string
    type: object
  PGApiResponse:
    properties:
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Data that was provided in echo_fields in the request."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        readOnly: true
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "000"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: Approved T37500
        readOnly: true
        type: string
    type: object
  PGApiTimeoutResponse:
    properties:
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Data that was provided in echo_fields in the request."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        readOnly: true
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "998"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: Timeout
        readOnly: true
        type: string
    type: object
  PGApiTokenizeRequest:
    properties:
      avs_address:
        description: "<strong>Format: </strong>Variable length, up to 20 AN<br><strong>Description: </strong>Street address of the cardholder. If present, it will be included in the authorization request sent to the issuing bank."
        example: 123 Main St
        type: string
      avs_zip:
        description: "<strong>Format: </strong>Variable length, up to 9 N<br><strong>Description: </strong>Zip code of the cardholder. If present, it will be included in the authorization request sent to the issuing bank.<br><strong>Conditional Requirement: </strong>This field is required if avs_address is present."
        example: "94402"
        type: string
      card_id:
        description: '<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>Card ID received from a tokenization request. The card_id may be used in place of a card number in requests requiring cardholder account data.<br><strong>Conditional Requirement: </strong>Refer to <a href="/developer/api/reference#card-source-conditional-requirements"target="_blank">Card or Bank Account Data Sources and Conditional Requirements</a>'
        example: 86e1b00d9b0811e68df3069d8f743581
        type: string
      card_number:
        description: "<strong>Format: </strong>Variable length, up to 19 N<br><strong>Description: </strong>Cardholder's card number.<br><strong>Conditional Requirement: </strong>Refer to <a href=\"/developer/api/reference#card-source-conditional-requirements\"target=\"_blank\">Card or Bank Account Data Sources and Conditional Requirements</a>"
        example: "4111111111111111"
        type: string
      card_swipe:
        description: '<strong>Format: </strong>Variable length, up to 79<br><strong>Description: </strong>Contains either track 1 or track 2 magnetic stripe data. If the magnetic stripe reader provides both track 1 and track 2 data in a single read, it is the responsibility of the implementer to send data for only one of the two tracks.<br><strong>Conditional Requirement: </strong>Refer to <a href="/developer/api/reference#card-source-conditional-requirements"target="_blank">Card or Bank Account Data Sources and Conditional Requirements</a>'
        example: ;4111111111111111=08051010912345678901?8
        type: string
      cardholder_name:
        description: "<strong>Format: </strong>Variable length, up to 64 AN<br><strong>Description: </strong>When provided in a tokenize request, the cardholder name will be stored in the Card Vault along with the cardholder card number and expiration date."
        example: JOHN CUSTOMER
        type: string
      client_ip:
        description: "<strong>Format: </strong>Variable length AN<br><strong>Description: </strong>Client IP address."
        example: 10.1.1.4
        type: string
      cvv2:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>CVV2 or CID value from the signature panel on the back of the cardholder's card. If present during a request that requires authorization, the value will be sent to the issuer for validation."
        example: "152"
        type: string
      dda_number:
        description: "<strong>Format: </strong>Variable length, up to 17 N<br><strong>Description: </strong>Owner's account number at the bank. Applicable for ACH payments.<br><strong>Conditional Requirement: </strong>Refer to <a href=\"/developer/api/reference#card-source-conditional-requirements\"target=\"_blank\">Card or Bank Account Data Sources and Conditional Requirements</a>"
        example: "3456776866"
        type: string
      developer_id:
        description: |
          <strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Use to indicate which company developed the integration to Qualpay or the name of the payment solution that is connected to Qualpay.  Suggested usage is softwareABCv1.0 or companyXYZv2.0.
        example: QualpayV1.2
        type: string
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be echoed back in the response message."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        type: string
      email_address:
        description: " AN<br><strong>Description: </strong>An array of account holder email addresses."
        example:
          - jdoe@qualpay.com
          - john.doe@qualpay.com
        items:
          type: string
        type: array
      exp_date:
        description: '<strong>Format: </strong>Fixed length, 4 N(MMYY format)<br><strong>Description: </strong>Expiration date of cardholder card number. When card_id or customer_id is present in the request this field may also be present; if it is not, then the expiration date from the Card Vault will be used.<br><strong>Conditional Requirement: </strong>Refer to <a href="/developer/api/reference#card-source-conditional-requirements"target="_blank">Card or Bank Account Data Sources and Conditional Requirements</a>'
        example: "0921"
        type: string
      loc_id:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>When a merchant has more than one location using the same currency, this value is used to specify the specific location for this request."
        example: "0001"
        type: string
      merchant_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Unique identifier on the Qualpay system."
        example: <Provide merchant id that links to API Key>
        format: int64
        type: integer
      payload_apple_pay:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Apple Pay payload"
        example: xxxxxxx
        type: string
      payload_google_pay:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Google Pay payload"
        example: xxxxxxx
        type: string
      profile_id:
        description: "<strong>Format: </strong>Fixed length, 20 N<br><strong>Description: </strong>Explicitly identifies which Payment Gateway profile should be used for the request."
        example: "21200001000300000978"
        type: string
      report_data:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be included with the transaction data reported in Qualpay Manager."
        example: '[ {"shipping address" : "123 Main St."},{"shipping city, state zip" : "San Mateo, CA 94402"} ]'
        type: string
      retry_attempt:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>This field contains a number greater than zero (0). When the value is one (1), the payment gateway treats the message as a new message. If the value is greater than one (1), then the payment gateway will return the result of the original message. If the original message did not complete, the payment gateway treats the message as a new message.<br><strong>Conditional Requirement: </strong>This field is required when the retry_id is present in the request message."
        example: 1
        format: int64
        type: integer
      retry_id:
        description: "<strong>Format: </strong>Variable length, up to 15 N<br><strong>Description: </strong>This field contains a merchant generated number used to identify the request. This value must be unique within the last 24 hours. When present, the payment gateway will use the retry_attempt to determine whether the message is new or a retry of a previous message."
        example: 1234
        format: int64
        type: integer
      session_id:
        description: INTERNAL USE ONLY.
        type: string
      single_use:
        description: '<br><strong>Default: </strong>false<br><strong>Description: </strong>In a tokenize request, setting the single_use field to "true" will cause a single-use token to be generated. This token will expire in 10 minutes or when first used.'
        example: true
        type: boolean
      tr_number:
        description: '<strong>Format: </strong>Fixed length, 9 N<br><strong>Description: </strong>Bank transit/routing number. Applicable for ACH payments.<br><strong>Conditional Requirement: </strong>Refer to <a href="/developer/api/reference#card-source-conditional-requirements"target="_blank">Card or Bank Account Data Sources and Conditional Requirements</a>'
        example: "011111111"
        type: string
      type_id:
        description: "<strong>Format: </strong>Fixed length, 1 AN<br><strong>Default: </strong>C<br><strong>Description: </strong>Bank Account Type. Applicable for ACH payments. Possible values are: <ul><li>C = Personal checking account</li><li>S = Personal savings account</li><li>K = Business checking account</li><li>V = Business savings account</li></ul>"
        example: S
        type: string
      user_id:
        description: INTERNAL USE ONLY.
        format: int64
        type: integer
      vendor_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Identifies the vendor to which this tokenize request applies."
        example: 212100026512
        format: int64
        type: integer
    required:
      - exp_date
      - merchant_id
    type: object
  PGApiTokenizeResponse:
    properties:
      card_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte value returned after successful tokenize request or when an authorization or sale transaction requests tokenization of the cardholder data."
        example: 86e1b00d9b0811e68df3069d8f743581
        readOnly: true
        type: string
      card_number:
        description: "<strong>Format: </strong>Variable length, up to 16 AN<br><strong>Description: </strong>Cardholder's card number (truncated)."
        example: 4111xxxxxx111111
        type: string
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Data that was provided in echo_fields in the request."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        readOnly: true
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "000"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: Token request complete
        readOnly: true
        type: string
    type: object
  PGApiTransactionRequest:
    properties:
      amt_convenience_fee:
        description: "<strong>Format: </strong>Variable length, up to 8,2 N<br><strong>Description: </strong>Amount of convenience fee. A convenience fee is a fee charged to your customer for the \"convenience\" of being able to pay using an alternative payment channel outside your merchant's customary payment channel. Must be a flat/fixed fee amount per transaction. This field tracks the convenience fee amount for display purposes, but the amount of the fee must be included in amt_tran."
        example: 2
        format: double
        type: number
      amt_fbo:
        description: '<strong>Format: </strong>Variable length, up to 12,2 N<br><strong>Description: </strong>Total amount of transaction to be transferred to the "for benefit of" (FBO) account.'
        example: 1.5
        format: double
        type: number
      amt_tax:
        description: "<strong>Format: </strong>Variable length, up to 12,2 N<br><strong>Description: </strong>Amount of sales tax included in the total transaction amount. This field tracks the tax amount for display and interchange purposes, but the amount of the tax must be included in amt_tran.<br><strong>Conditional Requirement: </strong>Required for Level 2 and Level 3 interchange qualification."
        example: 93.5
        format: double
        type: number
      amt_tran:
        description: "<strong>Format: </strong>Variable length, up to 12,2 N<br><strong>Description: </strong>Total amount of transaction including sales tax (amt_tax), convenience fee (amt_convenience_fee), and/or surcharge (amt_tran_fee) if applicable."
        example: 1193.5
        format: double
        type: number
      amt_tran_fee:
        description: '<strong>Format: </strong>Variable length, up to 8,2 N<br><strong>Description: </strong>Amount of transaction surcharge fee. A surcharge is a fee added to the cost of a purchase for the "privilege" of using a credit card instead of another form of payment, and can be a percentage of the transaction amount or fixed amount of up to 4% of amt_tran. This field tracks the surcharge amount of the transaction for display purposes, but the amount of the fee must be included in amt_tran.'
        example: 2.35
        format: double
        type: number
      auth_code:
        description: "<strong>Format: </strong>Fixed length, 6 AN<br><strong>Description: </strong>This field should contain the 6-character authorization code that was received during a voice or Automated Response Unit(ARU) authorization for force request type. This is field is applicable to only force request type.<br><strong>Conditional Requirement: </strong>This field is required in force request type."
        example: "620376"
        type: string
      avs_address:
        description: "<strong>Format: </strong>Variable length, up to 20 AN<br><strong>Description: </strong>Street address of the cardholder. If present, it will be included in the authorization request sent to the issuing bank."
        example: 123 Main St
        type: string
      avs_zip:
        description: "<strong>Format: </strong>Variable length, up to 9 AN<br><strong>Description: </strong>Zip code of the cardholder. If present, it will be included in the authorization request sent to the issuing bank.<br><strong>Conditional Requirement: </strong>This field is required if avs_address is present."
        example: "94402"
        type: string
      card_id:
        description: '<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>Card ID received from a tokenization request. The card_id may be used in place of a card number or card swipe.<br><strong>Conditional Requirement: </strong>Refer to <a href="/developer/api/reference#card-source-conditional-requirements"target="_blank">Card or Bank Account Data Sources and Conditional Requirements</a>'
        example: 86e1b00d9b0811e68df3069d8f743581
        type: string
      card_number:
        description: "<strong>Format: </strong>Variable length, up to 19 N<br><strong>Description: </strong>Cardholder's card number.<br><strong>Conditional Requirement: </strong>Refer to <a href=\"/developer/api/reference#card-source-conditional-requirements\"target=\"_blank\">Card or Bank Account Data Sources and Conditional Requirements</a>"
        example: "4111111111111111"
        type: string
      card_swipe:
        description: '<strong>Format: </strong>Variable length, up to 79 AN<br><strong>Description: </strong>Contains either track 1 or track 2 magnetic stripe data. If the magnetic stripe reader provides both track 1 and track 2 data in a single read, it is the responsibility of the implementer to send data for only one of the two tracks.<br><strong>Conditional Requirement: </strong>Refer to <a href="/developer/api/reference#card-source-conditional-requirements"target="_blank">Card or Bank Account Data Sources and Conditional Requirements</a>'
        example: ;4111111111111111=08051010912345678901?8
        type: string
      cardholder_name:
        description: "<strong>Format: </strong>Variable length, up to 64 AN<br><strong>Description: </strong>When provided in a tokenize request, the cardholder name will be stored in the Card Vault along with the cardholder card number and expiration date."
        example: JOHN CUSTOMER
        type: string
      cavv_3ds:
        description: "<strong>Format: </strong>Fixed length, 28 AN<br><strong>Description: </strong>Base 64 encoded CAVV returned from the merchant’s third-party 3-D Secure Merchant Plug-in (MPI). Use for Visa 3D Secure transactions."
        example: ASNFZ4kBI0VniQEjRWeJASNFZ4k=
        type: string
      client_ip:
        description: "<strong>Format: </strong>Variable length AN<br><strong>Description: </strong>Client IP address."
        example: 10.1.1.4
        type: string
      customer:
        $ref: "#/definitions/Customer"
        description: "<br><strong>Description: </strong>In an authorization, credit, force, sale or verify message the merchant can send tokenize (set to true), either card_number or card_swipe, the desired customer_id, and the customer field and the payment gateway will create the customer data in the vault. Cannot be used to update an existing customer_id."
      customer_code:
        description: "<strong>Format: </strong>Variable length, up to 17 AN<br><strong>Description: </strong>Reference code supplied by the cardholder to the merchant."
        example: "PO # abc123"
        type: string
      customer_email:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong><strong>[Deprecated use email_address]</strong> Comma-separated list of e-mail addresses to which a receipt should be sent."
        example: testme@qualpay.com
        type: string
      customer_id:
        description: '<strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Customer ID value established by the merchant. The customer_id may be used in place of a card number in requests requiring cardholder account data. When used with a card_id or card_number or card_swipe, the request will be tied to the customer_id in Qualpay reporting. <br><strong>Conditional Requirement: </strong>Refer to <a href="/developer/api/reference#card-source-conditional-requirements"target="_blank">Card or Bank Account Data Sources and Conditional Requirements</a>'
        example: JOECUSTOMER_12
        type: string
      cvv2:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>CVV2 or CID value from the signature panel on the back of the cardholder's card. If present during a request that requires authorization, the value will be sent to the issuer for validation."
        example: "152"
        type: string
      dba_name:
        description: "<strong>Format: </strong>Variable length, up to 21 AN<br><strong>Description: </strong>When the merchant has been authorized to send dynamic DBA information, this field will contain the DBA name used by Qulapay in the authorization and clearing messages.<br>Note: the payment gateway will automatically add a prefix plus an asterisk (*) to the dba_name value. For example, if the prefix is ABC and the dba_name value is SHOE CO, the DBA name will show as \"ABC*SHOE CO\" on the cardholder's credit card statement."
        example: SHOE CO
        type: string
      dba_suffix:
        description: "<strong>Format: </strong>Fixed length, 9 AN<br><strong>Description: </strong>For use by merchants using negative option marketing.  This field must be used in the first transaction at the conclusion of the free or reduced trial. This suffix will be appended to the end of your DBA and the result will appear on the cardholder statement. (If your DBA and suffix contain more that 25 characters, your DBA will be truncated.) Possible values are: <ul><li>END DSCNT</li><li>END OFFER</li><li>END PROMO</li><li>END TRIAL</li></ul>"
        example: END PROMO
        type: string
      dda_number:
        description: "<strong>Format: </strong>Variable length, up to 17 N<br><strong>Description: </strong>Owner's account number at the bank. Applicable for ACH payments.<br><strong>Conditional Requirement: </strong>Refer to <a href=\"/developer/api/reference#card-source-conditional-requirements\"target=\"_blank\">Card or Bank Account Data Sources and Conditional Requirements</a>"
        example: "3456776866"
        type: string
      developer_id:
        description: |
          <strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Use to indicate which company developed the integration to Qualpay or the name of the payment solution that is connected to Qualpay.  Suggested usage is softwareABCv1.0 or companyXYZv2.0.
        example: QualpayV1.2
        type: string
      duplicate_seconds:
        description: "<strong>Format: </strong>Variable length, up to 5 N<br><strong>Description: </strong>Duplicate transaction window in seconds. Qualpay will reject any transactions after a successful transaction within the duplicate_seconds window with a duplicate Account Number and optionally Purchase ID or, and, Merchant Reference Number. This value overrides any value set for a merchant on Qualpay Manager."
        example: 300
        format: int64
        type: integer
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be echoed back in the response message."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        type: string
      email_address:
        description: " AN<br><strong>Description: </strong>An array of email addresses to which the transaction receipt should be sent to. "
        example:
          - jdoe@qualpay.com
          - john.doe@qualpay.com
        items:
          type: string
        type: array
      email_receipt:
        description: "<br><strong>Default: </strong>false<br><strong>Description: </strong>When this field is provided and set to true, a customer_email must also be provided. When these two fields are provided, a transaction receipt will be sent via e-mail to the address(es) provided in the customer_email field."
        example: true
        type: boolean
      emv_tran_id:
        description: "<strong>Format: </strong>Variable length, up to 36 AN<br><strong>Description: </strong>Base64 encoded MasterCard UCAF Transaction ID returned from the merchant’s third-party 3D Secure Merchant Plug-in (MPI). Use for MasterCard 3-D Secure transactions."
        example: ASNFZ4nwEjR1We3I85BI70V9nifASNFZ4jwHyL0U=
        type: string
      exp_date:
        description: '<strong>Format: </strong>Fixed length, 4 N, MMYY format<br><strong>Description: </strong>Expiration date of cardholder card number.  When card_id or customer_id is present in the request this field may also be present; if it is not, then the expiration date from the Card Vault will be used.<br><strong>Conditional Requirement: </strong>Refer to <a href="/developer/api/reference#card-source-conditional-requirements"target="_blank">Card or Bank Account Data Sources and Conditional Requirements</a>'
        example: "0921"
        type: string
      fbo_id:
        description: "<strong>Format: </strong>Variable length, up to 16 N<br><strong>Description: </strong>For Benefit Of (FBO) merchant account identifier on the Qualpay system. Contact Qualpay customer support to obtain your FBO information."
        example: 999000000001
        format: int64
        type: integer
      line_items:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>JSON array of JSON objects. Each object represents a single line item detail element related to the transaction. Each detail element has required subfields: <br>quantity (7N)<br> description (26AN)<br> unit_of_measure (12AN)<br> product_code (12AN) - cannot be all zeroes<br> debit_credit_ind (1 AN)<br> unit_cost (12,2N)<br> Optional subfields: <br>type_of_supply (2AN) - visa only<br>commodity_code - visa only(12AN)<br><strong>Conditional Requirement: </strong> This field is required for Level 3 interchange qualification."
        example: '[{"quantity": "1","description": "Traffic Cones", "unit_of_measure": "each", "product_code": "SKU-123", "debit_credit_ind": "D", "unit_cost": "14.99"},{"quantity": "3", "description": "Spray Paint", "unit_of_measure": "EA", "product_code": "SKU-456", "debit_credit_ind": "D", "unit_cost": "5.00"}]'
        type: string
      loc_id:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>When a merchant has more than one location using the same currency, this value is used to specify the specific location for this request."
        example: "0001"
        type: string
      mc_ucaf_data:
        description: "<strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Base64 encoded MasterCard UCAF Field Data returned from the merchant’s third-party 3D Secure Merchant Plug-in (MPI). Use for MasterCard 3-D Secure transactions."
        example: ASNFZ4nwEjRWeI8BI0VnifASNFZ4jwHyL0U=
        type: string
      mc_ucaf_ind:
        description: "<strong>Format: </strong>Fixed length, 1 AN<br><strong>Description: </strong>MasterCard UCAF Collection Indicator returned from the merchant’s third-party 3-D Secure Merchant Plug-in (MPI). Use for MasterCard 3-D Secure transactions."
        example: "2"
        type: string
      merch_ref_num:
        description: "<strong>Format: </strong>Variable length, up to 128 AN<br><strong>Description: </strong>Merchant provided reference value that will be stored with the transaction data and included with transaction data in reports within Qualpay Manager. This value will also be attached to any lifecycle transactions (e.g. retrieval requests and chargebacks) that may occur."
        example: ITEM 16126 Purchased 12-15-2016
        type: string
      merchant_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Unique identifier on the Qualpay system."
        example: <Provide merchant id that links to API Key>
        format: int64
        type: integer
      moto_ecomm_ind:
        description: "<strong>Format: </strong>Fixed length, 1 N<br><strong>Default: </strong>7<br><strong>Description: </strong>Indicates type of MOTO transaction: <ul><li>0 = Card Present (not MOTO/e-Commerce)</li><li> 1 = One Time MOTO transaction</li><li>2 = Recurring </li><li>3 = Installment </li><li>5 = Full 3D-Secure transaction</li><li>6 = Merchant 3D-Secure transaction</li><li>7 = e-Commerce Channel Encrypted (SSL)</li></ul>"
        example: "1"
        type: string
      partial_auth:
        description: "<br><strong>Default: </strong>false<br><strong>Description: </strong>This field must be present and set to a value of 'true' in order for the request to allow for approval of a partial amount. This would be used to allow a merchant to accept a partial payment from pre-paid or debit cards. When only part of the requested amount is available, the response code will be 010 and the amt_tran field in the response will contain the amount that was approved. A second sale request  on a different card is needed  to capture the remaining amount. Applicable to auth and sale request types."
        example: true
        type: boolean
      payload_apple_pay:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Apple Pay payload"
        example: xxxxxxx
        type: string
      payload_google_pay:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Google Pay payload"
        example: xxxxxxx
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>PG ID of previously authorized transaction. This field is required when sending a capture, refund, or void request."
        example: d24ac6189b0b11e6966ca68d5edbef41
        type: string
      profile_id:
        description: "<strong>Format: </strong>Fixed length, 20 N<br><strong>Description: </strong>Explicitly identifies which Payment Gateway profile should be used for the request."
        example: "21200001000300000978"
        type: string
      purchase_id:
        description: "<strong>Format: </strong>Variable length, up to 25 AN<br><strong>Description: </strong>Purchase Identifier (also referred to as the invoice number generated by the merchant).<br><strong>Conditional Requirement: </strong> This field is required for Level 2 and Level 3 interchange qualification."
        example: 55-1212
        type: string
      report_data:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be included with the transaction data reported in Qualpay Manager."
        example: '[ {"shipping address" : "123 Main St."},{"shipping city, state zip" : "San Mateo, CA 94402"} ]'
        type: string
      retry_attempt:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>This field contains a number greater than zero (0). When the value is one (1), the payment gateway treats the message as a new message. If the value is greater than one (1), then the payment gateway will return the result of the original message. If the original message did not complete, the payment gateway treats the message as a new message.<br><strong>Conditional Requirement: </strong>This field is required when the retry_id is present in the request message."
        example: 1
        format: int64
        type: integer
      retry_id:
        description: "<strong>Format: </strong>Variable length, up to 15 N<br><strong>Description: </strong>This field contains a merchant generated number used to identify the request. This value must be unique within the last 24 hours. When present, the payment gateway will use the retry_attempt to determine whether the message is new or a retry of a previous message."
        example: 1234
        format: int64
        type: integer
      session_id:
        description: INTERNAL USE ONLY.
        type: string
      subscription_id:
        description: "<strong>Format: </strong>Variable length, up to 10 N<br><strong>Description: </strong>Identifies the recurring subscription that applies to this transaction."
        example: 1234
        format: int64
        type: integer
      tokenize:
        description: '<br><strong>Default: </strong>false<br><strong>Description: </strong>In an authorization, credit, force, sale, or verify request the merchant can set tokenize to "true" and the payment gateway will store the cardholder data in the Card Vault and provide a card_id in the response. If the card_number or card_id in the request is already in the Card Vault, this flag instructs the payment gateway to update the associated data (e.g. avs_address, avs_zip, exp_date) if present.<br><strong>Conditional Requirement: </strong>Refer to <a href="/developer/api/reference#card-source-conditional-requirements"target="_blank">Card or Bank Account Data Sources and Conditional Requirements</a>'
        example: true
        type: boolean
      tr_number:
        description: '<strong>Format: </strong>Fixed length, 9 N<br><strong>Description: </strong>Bank transit/routing number. Applicable for ACH payments.<br><strong>Conditional Requirement: </strong>Refer to <a href="/developer/api/reference#card-source-conditional-requirements"target="_blank">Card or Bank Account Data Sources and Conditional Requirements</a>'
        example: "011111111"
        type: string
      tran_currency:
        description: '<strong>Format: </strong>Fixed length, 3 N<br><strong>Default: </strong>840<br><strong>Description: </strong>ISO numeric currency code for the transaction. Refer to <a href="/developer/api/reference#country-codes"target="_blank">Country Codes</a> for a list of currency codes.'
        example: 840
        format: int32
        type: integer
      type_id:
        description: "<strong>Format: </strong>Fixed length, 1 AN<br><strong>Default: </strong>C<br><strong>Description: </strong>Bank Account Type. Applicable for ACH payments. Possible values are: <ul><li>C = Personal checking account</li><li>S = Personal savings account</li><li>K = Business checking account</li><li>V = Business savings account</li></ul>"
        example: S
        type: string
      user_id:
        description: INTERNAL USE ONLY.
        format: int64
        type: integer
      vendor_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Identifies the vendor to which this capture request applies."
        example: 212100026512
        format: int64
        type: integer
      xid_3ds:
        description: "<strong>Format: </strong>Fixed length, 28 AN<br><strong>Description: </strong>Base64 encoded transaction ID (XID) returned from the merchant’s third-party 3D Secure Merchant Plug-in (MPI). Use for Visa 3-D Secure transactions."
        example: ASNFZ4kBI0VniQEjRWeJASNFZ4k=
        type: string
    required:
      - merchant_id
    type: object
  PGApiTransactionResponse:
    properties:
      amt_tran:
        description: "<strong>Format: </strong>Variable length, up to 12,2 N<br><strong>Description: </strong>Transaction amount, returned only on partial approvals."
        example: 62.87
        format: double
        readOnly: true
        type: number
      auth_avs_result:
        description: '<strong>Format: </strong>Fixed length, 1 AN<br><strong>Description: </strong>AVS result from card issuer (if avs_zip and optionally avs_address were provided in the request). Refer to <a href="/developer/api/reference#avs-result-codes"target="_blank">Payment Result Codes for AVS</a> for possible values.'
        example: X
        readOnly: true
        type: string
      auth_code:
        description: "<strong>Format: </strong>Fixed length, 6 AN<br><strong>Description: </strong>Card issuer authorization code returned on successful authorization request."
        example: T37500
        readOnly: true
        type: string
      auth_cvv2_result:
        description: '<strong>Format: </strong>Fixed length, 1 AN<br><strong>Description: </strong>CVV2 result from card issuer (if CVV2 data was sent in the request). Refer to <a href="/developer/api/reference#cvv2-result-codes"target="_blank">Payment Result Codes for CVV2</a> for possible values.'
        example: M
        readOnly: true
        type: string
      card_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte value returned after successful tokenize request or when an authorization or sale transaction requests tokenization of the cardholder data."
        example: 86e1b00d9b0811e68df3069d8f743581
        readOnly: true
        type: string
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Data that was provided in echo_fields in the request."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        readOnly: true
        type: string
      merchant_advice_code:
        description: "<strong>Format: </strong>Fixed length, 4 AN<br><strong>Description: </strong>Recurring transaction advice for MasterCard authorizations.<ul><li>M001 = New account information available</li><li>M002 = Try again later</li><li>M003 = Do not try again for recurring payments transaction</li><li>M004 = Token requirements not fulfilled for this token type</li><li>M021 = Recurring payment cancellation</li></ul>"
        example: M001
        readOnly: true
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "000"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: Approved T37500
        readOnly: true
        type: string
    type: object
  PGApiUnauthResponse:
    properties:
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Data that was provided in echo_fields in the request."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        readOnly: true
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "101"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: Invalid id or key
        readOnly: true
        type: string
    type: object
  PGApiVerifyRequest:
    properties:
      avs_address:
        description: "<strong>Format: </strong>Variable length, up to 20 AN<br><strong>Description: </strong>Street address of the cardholder. If present, it will be included in the authorization request sent to the issuing bank."
        example: 123 Main St
        type: string
      avs_zip:
        description: "<strong>Format: </strong>Variable length, up to 9 N<br><strong>Description: </strong>Zip code of the cardholder. If present, it will be included in the authorization request sent to the issuing bank.<br><strong>Conditional Requirement: </strong>This field is required if avs_address is present."
        example: "94402"
        type: string
      card_id:
        description: '<strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Card ID received from a tokenization request. The card_id may be used in place of a card number or card swipe.<br><strong>Conditional Requirement: </strong>Refer to <a href="/developer/api/reference#card-source-conditional-requirements"target="_blank">Card or Bank Account Data Sources and Conditional Requirements</a>'
        example: 86e1b00d9b0811e68df3069d8f743581
        type: string
      card_number:
        description: "<strong>Format: </strong>Variable length, up to 19 N<br><strong>Description: </strong>Cardholder's card number. <br><strong>Conditional Requirement: </strong>Refer to <a href=\"/developer/api/reference#card-source-conditional-requirements\"target=\"_blank\">Card or Bank Account Data Sources and Conditional Requirements</a>"
        example: "4111111111111111"
        type: string
      card_swipe:
        description: '<strong>Format: </strong>Variable length, up to 79 AN<br><strong>Description: </strong>Contains either track 1 or track 2 data magnetic stripe data. If the magnetic stripe reader provides both track 1 and track 2 data in a single read, it is the responsibility of the implementer to send data for only one of the two tracks.<br><strong>Conditional Requirement: </strong>Refer to <a href="/developer/api/reference#card-source-conditional-requirements"target="_blank">Card or Bank Account Data Sources and Conditional Requirements</a>'
        example: ;4111111111111111=08051010912345678901?8
        type: string
      cardholder_name:
        description: "<strong>Format: </strong>Variable length, up to 64 AN<br><strong>Description: </strong>When provided in a tokenize request, the cardholder name will be stored in the Card Vault along with the cardholder card number and expiration date."
        example: JOHN CUSTOMER
        type: string
      client_ip:
        description: "<strong>Format: </strong>Variable length AN<br><strong>Description: </strong>Client IP address."
        example: 10.1.1.4
        type: string
      customer:
        $ref: "#/definitions/Customer"
        description: "<br><strong>Description: </strong>In an authorization, credit, force, sale or verify message the merchant can send tokenize (set to true), either card_number or card_swipe, the desired customer_id, and the customer field and the payment gateway will create the customer data in the vault. Cannot be used to update an existing customer_id"
      customer_code:
        description: "<strong>Format: </strong>Variable length, up to 17 AN<br><strong>Description: </strong>Reference code supplied by the cardholder to the merchant."
        example: "PO # abc123"
        type: string
      cvv2:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>CVV2 or CID value from the signature panel on the back of the cardholder's card. If present during a request that requires authorization, the value will be sent to the issuer for validation."
        example: "152"
        type: string
      dda_number:
        description: "<strong>Format: </strong>Variable length, up to 17 N<br><strong>Description: </strong>Owner's account number at the bank. Applicable for ACH payments.<br><strong>Conditional Requirement: </strong>Refer to <a href=\"/developer/api/reference#card-source-conditional-requirements\"target=\"_blank\">Card or Bank Account Data Sources and Conditional Requirements</a>"
        example: "3456776866"
        type: string
      developer_id:
        description: |
          <strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Use to indicate which company developed the integration to Qualpay or the name of the payment solution that is connected to Qualpay.  Suggested usage is softwareABCv1.0 or companyXYZv2.0.
        example: QualpayV1.2
        type: string
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be echoed back in the response message."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        type: string
      email_address:
        description: " AN<br><strong>Description: </strong>An array of account holder email addresses."
        example:
          - jdoe@qualpay.com
          - john.doe@qualpay.com
        items:
          type: string
        type: array
      exp_date:
        description: '<strong>Format: </strong>Fixed length, 4 N, MMYY format<br><strong>Description: </strong>Expiration date of cardholder card number. Required when the field card_number is present. If card_swipe is present in the request, this field must NOT be present. When card_id or customer_id is present in the request this field may also be present; if it is not, then the expiration date from the Card Vault will be used.<br><strong>Conditional Requirement: </strong>Refer to <a href="/developer/api/reference#card-source-conditional-requirements"target="_blank">Card or Bank Account Data Sources and Conditional Requirements</a>'
        example: "0921"
        type: string
      loc_id:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>When a merchant has more than one location using the same currency, this value is used to specify the specific location for this request."
        example: "0001"
        type: string
      merch_ref_num:
        description: "<strong>Format: </strong>Variable length, up to 128 AN<br><strong>Description: </strong>Merchant provided reference value that will be stored with the transaction data and included with transaction data in reports within Qualpay Manager. This value will also be attached to any lifecycle transactions (e.g. retrieval requests and chargebacks) that may occur."
        example: ITEM 16126 Purchased 12-15-2016
        type: string
      merchant_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Unique identifier on the Qualpay system."
        example: <Provide merchant id that links to API Key>
        format: int64
        type: integer
      moto_ecomm_ind:
        description: "<strong>Format: </strong>Fixed length, 1 N<br><strong>Default: </strong>7<br><strong>Description: </strong>Indicates type of MOTO transaction: <ul><li>0 = Card Present (not MOTO/e-Commerce)</li><li> 1 = One Time MOTO transaction</li><li>2 = Recurring </li><li>3 = Installment </li><li>5 = Full 3D-Secure transaction</li><li>6 = Merchant 3D-Secure transaction</li><li>7 = e-Commerce Channel Encrypted (SSL)</li></ul>"
        example: "1"
        type: string
      payload_apple_pay:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Apple Pay payload"
        example: xxxxxxx
        type: string
      payload_google_pay:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Google Pay payload"
        example: xxxxxxx
        type: string
      profile_id:
        description: "<strong>Format: </strong>Fixed length, 20 N<br><strong>Description: </strong>Explicitly identifies which Payment Gateway profile should be used for the request."
        example: "21200001000300000978"
        type: string
      report_data:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be included with the transaction data reported in Qualpay Manager."
        example: '[ {"shipping address" : "123 Main St."},{"shipping city, state zip" : "San Mateo, CA 94402"} ]'
        type: string
      retry_attempt:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>This field contains a number greater than zero (0). When the value is one (1), the payment gateway treats the message as a new message. If the value is greater than one (1), then the payment gateway will return the result of the original message. If the original message did not complete, the payment gateway treats the message as a new message.<br><strong>Conditional Requirement: </strong>This field is required when the retry_id is present in the request message."
        example: 1
        format: int64
        type: integer
      retry_id:
        description: "<strong>Format: </strong>Variable length, up to 15 N<br><strong>Description: </strong>This field contains a merchant generated number used to identify the request. This value must be unique within the last 24 hours. When present, the payment gateway will use the retry_attempt to determine whether the message is new or a retry of a previous message."
        example: 1234
        format: int64
        type: integer
      session_id:
        description: INTERNAL USE ONLY.
        type: string
      tokenize:
        description: '<br><strong>Default: </strong>false<br><strong>Description: </strong>In an authorization, credit, force, sale, or verify request the merchant can set tokenize to "true" and the payment gateway will store the cardholder data in the Card Vault and provide a card_id in the response. If the card_number or card_id in the request is already in the Card Vault, this flag instructs the payment gateway to update the associated data (e.g. avs_address, avs_zip, exp_date) if present.'
        example: true
        type: boolean
      tr_number:
        description: '<strong>Format: </strong>Fixed length, 9 N<br><strong>Description: </strong>Bank transit/routing number. Applicable for ACH payments.<br><strong>Conditional Requirement: </strong>Refer to <a href="/developer/api/reference#card-source-conditional-requirements"target="_blank">Card or Bank Account Data Sources and Conditional Requirements</a>'
        example: "011111111"
        type: string
      type_id:
        description: "<strong>Format: </strong>Fixed length, 1 AN<br><strong>Default: </strong>C<br><strong>Description: </strong>Bank Account Type. Applicable for ACH payments. Possible values are: <ul><li>C = Personal checking account</li><li>S = Personal savings account</li><li>K = Business checking account</li><li>V = Business savings account</li></ul>"
        example: S
        type: string
      user_id:
        description: INTERNAL USE ONLY.
        format: int64
        type: integer
    required:
      - card_number
      - merchant_id
    type: object
  PGApiVerifyResponse:
    properties:
      auth_avs_result:
        description: '<strong>Format: </strong>Fixed length, 1 AN<br><strong>Description: </strong>AVS result from card issuer (if avs_zip and optionally avs_address were provided in the request). Refer to <a href="/developer/api/reference#avs-result-codes"target="_blank">Payment Result Codes for AVS</a> for possible values.'
        example: X
        readOnly: true
        type: string
      auth_code:
        description: "<strong>Format: </strong>Fixed length, 6 AN<br><strong>Description: </strong>Card issuer authorization code returned on successful authorization request."
        example: T37500
        readOnly: true
        type: string
      auth_cvv2_result:
        description: '<strong>Format: </strong>Fixed length, 1 AN<br><strong>Description: </strong>CVV2 result from card issuer (if CVV2 data was sent in the request). Refer to <a href="/developer/api/reference#cvv2-result-codes"target="_blank">Payment Result Codes for CVV2</a> for possible values.'
        example: M
        readOnly: true
        type: string
      card_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte value returned after successful tokenize request or when an authorization or sale transaction requests tokenization of the cardholder data."
        example: 86e1b00d9b0811e68df3069d8f743581
        readOnly: true
        type: string
      card_number:
        description: "<strong>Format: </strong>Variable length, up to 16 AN<br><strong>Description: </strong>Cardholder's card number (truncated)."
        example: 4111xxxxxx111111
        type: string
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Data that was provided in echo_fields in the request."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        readOnly: true
        type: string
      merchant_advice_code:
        description: "<strong>Format: </strong>Fixed length 4 AN<br><strong>Description: </strong>Recurring transaction advice for MasterCard authorizations.<ul><li>M001 = New account information available</li><li>M002 = Try again later</li><li>M003 = Do not try again for recurring payments transaction</li><li>M004 = Token requirements not fulfilled for this token type</li><li>M021 = Recurring payment cancellation</li></ul>"
        example: M001
        readOnly: true
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "000"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: No reason to decline T86456
        readOnly: true
        type: string
    type: object
  PGApiVoidRequest:
    properties:
      developer_id:
        description: |
          <strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Use to indicate which company developed the integration to Qualpay or the name of the payment solution that is connected to Qualpay.  Suggested usage is softwareABCv1.0 or companyXYZv2.0.
        example: QualpayV1.2
        type: string
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be echoed back in the response message."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        type: string
      loc_id:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>When a merchant has more than one location using the same currency, this value is used to specify the specific location for this request."
        example: "0001"
        type: string
      merchant_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Unique identifier on the Qualpay system."
        example: <Provide merchant id that links to API Key>
        format: int64
        type: integer
      profile_id:
        description: "<strong>Format: </strong>Fixed length, 20 N<br><strong>Description: </strong>Explicitly identifies which Payment Gateway profile should be used for the request."
        example: "21200001000300000978"
        type: string
      report_data:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>This field contains a JSON array of field data that will be included with the transaction data reported in Qualpay Manager."
        example: '[ {"shipping address" : "123 Main St."},{"shipping city, state zip" : "San Mateo, CA 94402"} ]'
        type: string
      retry_attempt:
        description: "<strong>Format: </strong>Variable length, up to 4 N<br><strong>Description: </strong>This field contains a number greater than zero (0). When the value is one (1), the payment gateway treats the message as a new message. If the value is greater than one (1), then the payment gateway will return the result of the original message. If the original message did not complete, the payment gateway treats the message as a new message.<br><strong>Conditional Requirement: </strong>This field is required when the retry_id is present in the request message."
        example: 1
        format: int64
        type: integer
      retry_id:
        description: "<strong>Format: </strong>Variable length, up to 15 N<br><strong>Description: </strong>This field contains a merchant generated number used to identify the request. This value must be unique within the last 24 hours. When present, the payment gateway will use the retry_attempt to determine whether the message is new or a retry of a previous message."
        example: 1234
        format: int64
        type: integer
      session_id:
        description: INTERNAL USE ONLY.
        type: string
      user_id:
        description: INTERNAL USE ONLY.
        format: int64
        type: integer
      vendor_id:
        description: "<strong>Format: </strong>Variable length, up to 12 N<br><strong>Description: </strong>Identifies the vendor to which this void request applies."
        example: 212100026512
        format: int64
        type: integer
    required:
      - merchant_id
    type: object
  PGApiVoidResponse:
    properties:
      echo_fields:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Data that was provided in echo_fields in the request."
        example: '[ {"product" : "lawnmower"},{"purchase" : "1 yr maintenance"} ]'
        readOnly: true
        type: string
      pg_id:
        description: "<strong>Format: </strong>Fixed length, 32 AN<br><strong>Description: </strong>32-byte unique identifier generated by the payment gateway, returned in all valid responses."
        example: d24ac6189b0b11e6966ca68d5edbef41
        readOnly: true
        type: string
      rcode:
        description: '<strong>Format: </strong>Fixed length, 3 AN<br><strong>Description: </strong>Response code from the payment gateway. "000" indicates success. Refer to <a href="/developer/api/reference#api-response-codes"target="_blank">Platform API Response Codes</a> for entire list of Payment Gateway Response Codes.'
        example: "000"
        readOnly: true
        type: string
      rmsg:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Response text from the payment gateway."
        example: Transaction Voided
        readOnly: true
        type: string
    type: object
  ShippingAddress:
    properties:
      primary:
        description: "<br><strong>Default: </strong>false<br><strong>Description: </strong>Identifies the primary shipping address where there are multiple shipping addresses."
        example: true
        type: boolean
      shipping_addr1:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Customer street and number, P.O. box, c/o."
        example: 1234 Main Street
        type: string
      shipping_addr2:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Customer apartment, suite, unit, building, floor, etc."
        example: Ste 123
        type: string
      shipping_city:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Customer shipping city."
        example: San Mateo
        type: string
      shipping_country:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Customer shipping country."
        example: USA
        type: string
      shipping_country_code:
        description: '<strong>Format: </strong>Fixed length, 3 N<br><strong>Description: </strong>ISO numeric country code for the shipping address. Refer to <a href="/developer/api/reference#country-codes"target="_blank">Country Codes</a> for a list of country codes. If the country code is provided, the shipping_country will be updated to match the country code. '
        example: "840"
        type: string
      shipping_firm_name:
        description: "<strong>Format: </strong>Variable length, up to 64 AN<br><strong>Description: </strong>Business name if applicable. "
        example: Qualpay
        type: string
      shipping_first_name:
        description: "<strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Customer shipping first name."
        example: Joe
        type: string
      shipping_last_name:
        description: "<strong>Format: </strong>Variable length, up to 32 AN<br><strong>Description: </strong>Customer shipping last name."
        example: Smith
        type: string
      shipping_state:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Customer shipping state (abbreviated)."
        example: CA
        type: string
      shipping_zip:
        description: "<strong>Format: </strong>Variable length<br><strong>Description: </strong>Customer shipping zip code."
        example: "94402"
        type: string
      shipping_zip4:
        description: "<strong>Format: </strong>Fixed length, 4 N<br><strong>Description: </strong>Customer shipping zip+4 code if applicable."
        example: "1234"
        type: string
    required:
      - shipping_addr1
      - shipping_city
      - shipping_first_name
      - shipping_last_name
      - shipping_state
      - shipping_zip
    type: object
