{
  "$schema" : "http://json-schema.org/draft-04/schema#",
  "type" : "object",
  "properties" : {
    "amountOfMoney" : {
      "$ref" : "#/definitions/AmountOfMoney"
    },
    "bankAccountBban" : {
      "$ref" : "#/definitions/BankAccountBban"
    },
    "bankAccountIban" : {
      "$ref" : "#/definitions/BankAccountIban"
    },
    "bankTransferPayoutMethodSpecificInput" : {
      "$ref" : "#/definitions/BankTransferPayoutMethodSpecificInput"
    },
    "cardPayoutMethodSpecificInput" : {
      "$ref" : "#/definitions/CardPayoutMethodSpecificInput"
    },
    "customer" : {
      "$ref" : "#/definitions/PayoutCustomer"
    },
    "merchant" : {
      "$ref" : "#/definitions/PayoutMerchant"
    },
    "payoutDate" : {
      "type" : "string"
    },
    "payoutDetails" : {
      "$ref" : "#/definitions/PayoutDetails"
    },
    "payoutText" : {
      "type" : "string"
    },
    "references" : {
      "$ref" : "#/definitions/PayoutReferences"
    },
    "swiftCode" : {
      "type" : "string"
    }
  },
  "additionalProperties" : false,
  "definitions" : {
    "Address" : {
      "type" : "object",
      "properties" : {
        "additionalInfo" : {
          "type" : "string"
        },
        "city" : {
          "type" : "string"
        },
        "countryCode" : {
          "type" : "string"
        },
        "houseNumber" : {
          "type" : "string"
        },
        "state" : {
          "type" : "string"
        },
        "stateCode" : {
          "type" : "string"
        },
        "street" : {
          "type" : "string"
        },
        "zip" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "AmountOfMoney" : {
      "type" : "object",
      "properties" : {
        "amount" : {
          "type" : "integer",
          "maximum" : 9223372036854775807
        },
        "currencyCode" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "BankAccountBban" : {
      "type" : "object",
      "properties" : {
        "accountHolderName" : {
          "type" : "string"
        },
        "accountNumber" : {
          "type" : "string"
        },
        "bankCode" : {
          "type" : "string"
        },
        "bankName" : {
          "type" : "string"
        },
        "branchCode" : {
          "type" : "string"
        },
        "checkDigit" : {
          "type" : "string"
        },
        "countryCode" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "BankAccountIban" : {
      "type" : "object",
      "properties" : {
        "accountHolderName" : {
          "type" : "string"
        },
        "iban" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "BankTransferPayoutMethodSpecificInput" : {
      "type" : "object",
      "properties" : {
        "bankAccountBban" : {
          "$ref" : "#/definitions/BankAccountBban"
        },
        "bankAccountIban" : {
          "$ref" : "#/definitions/BankAccountIban"
        },
        "customer" : {
          "$ref" : "#/definitions/PayoutCustomer"
        },
        "payoutDate" : {
          "type" : "string"
        },
        "payoutText" : {
          "type" : "string"
        },
        "swiftCode" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "Card" : {
      "type" : "object",
      "properties" : {
        "cardNumber" : {
          "type" : "string"
        },
        "cardholderName" : {
          "type" : "string"
        },
        "cvv" : {
          "type" : "string"
        },
        "expiryDate" : {
          "type" : "string"
        },
        "issueNumber" : {
          "type" : "string"
        },
        "partialPin" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "CardPayoutMethodSpecificInput" : {
      "type" : "object",
      "properties" : {
        "card" : {
          "$ref" : "#/definitions/Card"
        },
        "paymentProductId" : {
          "type" : "integer",
          "maximum" : 2147483647
        },
        "recipient" : {
          "$ref" : "#/definitions/PayoutRecipient"
        },
        "token" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "CompanyInformation" : {
      "type" : "object",
      "properties" : {
        "dateOfIncorporation" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        },
        "vatNumber" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ContactDetailsBase" : {
      "type" : "object",
      "properties" : {
        "emailAddress" : {
          "type" : "string"
        },
        "emailMessageType" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "PayoutCustomer" : {
      "type" : "object",
      "properties" : {
        "address" : {
          "$ref" : "#/definitions/Address"
        },
        "companyInformation" : {
          "$ref" : "#/definitions/CompanyInformation"
        },
        "contactDetails" : {
          "$ref" : "#/definitions/ContactDetailsBase"
        },
        "merchantCustomerId" : {
          "type" : "string"
        },
        "name" : {
          "$ref" : "#/definitions/PersonalName"
        }
      },
      "additionalProperties" : false
    },
    "PayoutDetails" : {
      "type" : "object",
      "properties" : {
        "amountOfMoney" : {
          "$ref" : "#/definitions/AmountOfMoney"
        },
        "customer" : {
          "$ref" : "#/definitions/PayoutCustomer"
        },
        "references" : {
          "$ref" : "#/definitions/PayoutReferences"
        }
      },
      "additionalProperties" : false
    },
    "PayoutMerchant" : {
      "type" : "object",
      "properties" : {
        "configurationId" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "PayoutRecipient" : {
      "type" : "object",
      "properties" : {
        "firstName" : {
          "type" : "string"
        },
        "surname" : {
          "type" : "string"
        },
        "surnamePrefix" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "PayoutReferences" : {
      "type" : "object",
      "properties" : {
        "invoiceNumber" : {
          "type" : "string"
        },
        "merchantOrderId" : {
          "type" : "integer",
          "maximum" : 9223372036854775807
        },
        "merchantReference" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "PersonalName" : {
      "type" : "object",
      "properties" : {
        "firstName" : {
          "type" : "string"
        },
        "surname" : {
          "type" : "string"
        },
        "surnamePrefix" : {
          "type" : "string"
        },
        "title" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    }
  }
}
