object PaymentResponse
{
  "type": "object",
  "properties": {
    "respCode": {
      "type": "string",
      "nullable": true
    },
    "respDesc": {
      "type": "string",
      "nullable": true
    },
    "channelCode": {
      "type": "string",
      "nullable": true
    }
  }
}
object PaymentResponseBase
{
  "type": "object",
  "properties": {
    "respCode": {
      "type": "string",
      "nullable": true
    },
    "respDesc": {
      "type": "string",
      "nullable": true
    }
  }
}
object PaymentUserPreference
{
  "type": "object",
  "properties": {
    "preference": {
      "$ref": "#/components/schemas/UserPreference"
    },
    "paymentChannels": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PaymentChannelPreference"
      },
      "nullable": true
    }
  }
}
object PaymentUserPreferenceResponse
{
  "type": "object",
  "properties": {
    "user": {
      "$ref": "#/components/schemas/PaymentUserPreference"
    },
    "respCode": {
      "type": "string",
      "nullable": true
    },
    "respDesc": {
      "type": "string",
      "nullable": true
    },
    "paymentToken": {
      "type": "string",
      "nullable": true
    }
  }
}
object PodInfoProviderMerchantDetails
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "nullable": true
    },
    "name": {
      "type": "string",
      "nullable": true
    },
    "countryCode": {
      "type": "string",
      "nullable": true
    }
  }
}
object PodInfoProviderTransactionDetails
{
  "type": "object",
  "properties": {
    "amount": {
      "type": "number",
      "format": "double"
    },
    "invoiceNo": {
      "type": "string",
      "nullable": true
    },
    "description": {
      "type": "string",
      "nullable": true
    },
    "currencyCode": {
      "type": "string",
      "nullable": true
    }
  }
}
object Recurring
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "format": "int32"
    },
    "amount": {
      "type": "string",
      "nullable": true
    },
    "interval": {
      "type": "integer",
      "format": "int32"
    },
    "chargeOnDate": {
      "type": "string",
      "nullable": true
    },
    "chargeNextDate": {
      "type": "string",
      "nullable": true
    }
  }
}
object RedirectBackEndPostPaymentRedirectRequest
{
  "type": "object",
  "properties": {
    "isLeaveApp": {
      "type": "string"
    },
    "paymentResponse": {
      "type": "string"
    }
  }
}
object RedirectFrontEndPostPaymentRedirectRequest
{
  "type": "object",
  "properties": {
    "isLeaveApp": {
      "type": "string"
    },
    "payResponse": {
      "type": "string"
    }
  }
}
object ResponsePaymentChannel
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "format": "int32",
      "nullable": true
    },
    "code": {
      "type": "string",
      "nullable": true
    },
    "name": {
      "type": "string",
      "nullable": true
    },
    "qrType": {
      "type": "string",
      "nullable": true
    },
    "default": {
      "type": "boolean"
    },
    "iconUrl": {
      "type": "string",
      "nullable": true
    },
    "logoUrl": {
      "type": "string",
      "nullable": true
    },
    "expiration": {
      "type": "boolean"
    },
    "optionName": {
      "type": "string",
      "nullable": true
    },
    "sequenceNo": {
      "type": "integer",
      "format": "int32"
    },
    "channelCode": {
      "type": "string",
      "nullable": true
    },
    "paymentCode": {
      "type": "string",
      "nullable": true
    },
    "expirationTimer": {
      "type": "string",
      "nullable": true
    },
    "agentChannelCode": {
      "type": "string",
      "nullable": true
    },
    "expirationDescription": {
      "type": "string",
      "nullable": true
    }
  }
}
object TransactionDetails
{
  "type": "object",
  "properties": {
    "amount": {
      "type": "string",
      "nullable": true
    },
    "dateTime": {
      "type": "string",
      "nullable": true
    },
    "invoiceNo": {
      "type": "string",
      "nullable": true
    },
    "recurring": {
      "$ref": "#/components/schemas/Recurring"
    },
    "showFxRate": {
      "type": "boolean"
    },
    "description": {
      "type": "string",
      "nullable": true
    },
    "currencyCode": {
      "type": "string",
      "nullable": true
    },
    "paymentItems": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PaymentItem"
      },
      "nullable": true
    }
  }
}
object TransactionStatusAdditionalInfo
{
  "type": "object",
  "properties": {
    "merchantDetails": {
      "$ref": "#/components/schemas/TransactionStatusMerchant"
    },
    "transactionDetails": {
      "$ref": "#/components/schemas/TransactionStatusInfo"
    },
    "paymentResultDetails": {
      "$ref": "#/components/schemas/TransactionStatusPayment"
    }
  }
}
object TransactionStatusInfo
{
  "type": "object",
  "properties": {
    "data": {
      "type": "string",
      "nullable": true
    },
    "amount": {
      "type": "string",
      "nullable": true
    },
    "dateTime": {
      "type": "string",
      "nullable": true
    },
    "agentCode": {
      "type": "string",
      "nullable": true
    },
    "invoiceNo": {
      "type": "string",
      "nullable": true
    },
    "channelCode": {
      "type": "string",
      "nullable": true
    },
    "description": {
      "type": "string",
      "nullable": true
    },
    "currencyCode": {
      "type": "string",
      "nullable": true
    },
    "interestRate": {
      "type": "number",
      "format": "double",
      "nullable": true
    },
    "interestType": {
      "type": "string",
      "nullable": true
    },
    "loyaltyPoints": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TransactionStatusLoyaltyInfo"
      },
      "nullable": true
    },
    "monthlyPayment": {
      "type": "string",
      "nullable": true
    },
    "payLaterPeriod": {
      "type": "integer",
      "format": "int32",
      "nullable": true
    },
    "installmentPeriod": {
      "type": "integer",
      "format": "int32",
      "nullable": true
    },
    "ippAdditionalInfo": {
      "type": "string",
      "nullable": true
    },
    "remainderChargeMode": {
      "type": "string",
      "nullable": true
    },
    "remainderChargeAmount": {
      "type": "number",
      "format": "double",
      "nullable": true
    }
  }
}
object TransactionStatusLoyaltyInfo
{
  "type": "object",
  "properties": {
    "rewards": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TransactionStatusRewards"
      },
      "nullable": true
    },
    "redeemAmount": {
      "type": "number",
      "format": "double"
    },
    "paymentScheme": {
      "type": "string",
      "nullable": true
    }
  }
}
object TransactionStatusMerchant
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "nullable": true
    },
    "email": {
      "type": "string",
      "nullable": true
    },
    "address": {
      "type": "string",
      "nullable": true
    },
    "logoUrl": {
      "type": "string",
      "nullable": true
    }
  }
}
object TransactionStatusPayment
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "nullable": true
    },
    "description": {
      "type": "string",
      "nullable": true
    },
    "autoRedirect": {
      "type": "boolean"
    },
    "frontendReturnUrl": {
      "type": "string",
      "nullable": true
    },
    "frontendReturnData": {
      "type": "string",
      "nullable": true
    },
    "redirectImmediately": {
      "type": "boolean"
    },
    "autoRedirectionTimer": {
      "type": "integer",
      "format": "int32"
    }
  }
}
object TransactionStatusRequest
{
  "type": "object",
  "required": [
    "paymentToken"
  ],
  "properties": {
    "locale": {
      "type": "string",
      "nullable": true
    },
    "clientID": {
      "type": "string",
      "format": "uuid"
    },
    "paymentToken": {
      "type": "string"
    },
    "additionalInfo": {
      "type": "boolean"
    },
    "browserDetails": {
      "$ref": "#/components/schemas/BrowserDetails"
    }
  }
}
object TransactionStatusResponse
{
  "type": "object",
  "properties": {
    "locale": {
      "type": "string",
      "nullable": true
    },
    "respCode": {
      "type": "string",
      "nullable": true
    },
    "respDesc": {
      "type": "string",
      "nullable": true
    },
    "invoiceNo": {
      "type": "string",
      "nullable": true
    },
    "channelCode": {
      "type": "string",
      "nullable": true
    },
    "additionalInfo": {
      "$ref": "#/components/schemas/TransactionStatusAdditionalInfo"
    }
  }
}
object TransactionStatusRewards
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "nullable": true
    },
    "type": {
      "type": "string",
      "nullable": true
    },
    "price": {
      "type": "number",
      "format": "double"
    },
    "amount": {
      "type": "number",
      "format": "double"
    },
    "quantity": {
      "type": "number",
      "format": "double"
    },
    "totalPrice": {
      "type": "number",
      "format": "double"
    },
    "totalAmount": {
      "type": "number",
      "format": "double"
    }
  }
}
object UserDetails
{
  "type": "object",
  "properties": {
    "address": {
      "$ref": "#/components/schemas/CustomerAddress"
    }
  }
}
object UserPreference
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "nullable": true
    },
    "email": {
      "type": "string",
      "nullable": true
    },
    "locale": {
      "type": "string",
      "nullable": true
    },
    "mobileNo": {
      "type": "string",
      "nullable": true
    },
    "countryCode": {
      "type": "string",
      "nullable": true
    },
    "currencyCode": {
      "type": "string",
      "nullable": true
    },
    "mobileNoPrefix": {
      "type": "string",
      "nullable": true
    }
  }
}