openapi: 3.0.0 info: title: IXOPAY Payment Platform description: IXOPAY Payment Platform termsOfService: https://www.ixolit.com/en/legal/terms-of-use contact: email: support@ixopay.com license: name: MIT version: 3.0.0 externalDocs: description: IXOPAY Payment Platform Documentation url: https://gateway.ixopay.com/documentation/gateway servers: - url: https://gateway.ixopay.com/api/v3 tags: - name: options description: Retrieve a list of options externalDocs: description: Find out more about the options API url: 'https://gateway.ixopay.com/documentation/apiv3#options-request' - name: schedule description: Set and manage transaction schedules externalDocs: description: Find out more about the scheduler API url: 'https://gateway.ixopay.com/documentation/gateway#scheduler' - name: status description: Retrieve the status of transactions externalDocs: description: Find out more about the status API url: 'https://gateway.ixopay.com/documentation/apiv3#status-request' - name: transaction description: Process transactions externalDocs: description: Find out more about the transaction API url: 'https://gateway.ixopay.com/documentation/apiv3' paths: '/transaction/{apiKey}/debit': post: tags: - transaction summary: Process a debit operationId: processDebit parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string requestBody: description: Data which is required to process a debit content: application/json: schema: $ref: '#/components/schemas/Debit' example: merchantTransactionId: 2019-09-02-0001 additionalId1: x0001 additionalId2: y0001 extraData: someKey: someValue otherKey: otherValue merchantMetaData: merchantRelevantData amount: '9.99' currency: EUR successUrl: 'http://example.com/success' cancelUrl: 'http://example.com/cancel' errorUrl: 'http://example.com/error' callbackUrl: 'http://example.com/callback' transactionToken: 'ix::tRaNsAcT1OnToK3N' description: Example Product customer: identification: c0001 firstName: John lastName: Doe threeDSecureData: 3dsecure: MANDATORY language: en required: true responses: '200': description: Transaction response content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' examples: finished: value: success: true uuid: abcde12345abcde12345 purchaseId: 20190927-abcde12345abcde12345 returnType: FINISHED paymentMethod: Creditcard redirect: value: success: true uuid: abcde12345abcde12345 purchaseId: 20190927-abcde12345abcde12345 returnType: REDIRECT redirectUrl: 'http://redirectComesUrlHere.com' paymentMethod: Creditcard processing error: value: success: false uuid: abcde12345abcde12345 purchaseId: 20200924-abcde12345abcde12345 returnType: ERROR paymentMethod: Dummy errors: - errorMessage: Dummy error errorCode: 1003 adapterMessage: Dummy adapter error 'general error, e.g. duplicate': value: success: false errorMessage: The transaction ID '20190823062178' already exists! errorCode: 3004 'general error, e.g. validation': value: success: false errorMessage: 'root: ''amount'' is required' errorCode: 1002 '/transaction/{apiKey}/preauthorize': post: tags: - transaction summary: 'Process a preauthorize: reserves the payment amount on the customer''s payment instrument' operationId: processPreauthorize parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string requestBody: description: Data which is required to process a preauthorize content: application/json: schema: $ref: '#/components/schemas/Preauthorize' example: merchantTransactionId: 2019-09-02-0002 extraData: someKey: someValue otherKey: otherValue merchantMetaData: merchantRelevantData amount: '9.99' currency: EUR successUrl: 'http://example.com/success' cancelUrl: 'http://example.com/cancel' errorUrl: 'http://example.com/error' callbackUrl: 'http://example.com/callback' description: Example Product customer: identification: c0001 firstName: John lastName: Doe threeDSecureData: 3dsecure: MANDATORY language: en required: true responses: '200': description: Transaction response content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' examples: finished: value: success: true uuid: abcde12345abcde12345 purchaseId: 20190927-abcde12345abcde12345 returnType: FINISHED paymentMethod: Creditcard redirect: value: success: true uuid: abcde12345abcde12345 purchaseId: 20190927-abcde12345abcde12345 returnType: REDIRECT redirectUrl: 'http://redirectComesUrlHere.com' paymentMethod: Creditcard processing error: value: success: false uuid: abcde12345abcde12345 purchaseId: 20200924-abcde12345abcde12345 returnType: ERROR paymentMethod: Dummy errors: - errorMessage: Dummy error errorCode: 1003 adapterMessage: Dummy adapter error 'general error, e.g. duplicate': value: success: false errorMessage: The transaction ID '20190823062178' already exists! errorCode: 3004 'general error, e.g. validation': value: success: false errorMessage: 'root: ''amount'' is required' errorCode: 1002 '/transaction/{apiKey}/capture': post: tags: - transaction summary: 'Process a capture: completes a payment previously authorized through Preauthorize' operationId: processCapture parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string requestBody: description: Data which is required to process a capture content: application/json: schema: $ref: '#/components/schemas/Capture' example: merchantTransactionId: 2019-09-02-0003 referenceUuid: bcdef23456bcdef23456 amount: '9.99' currency: EUR required: true responses: '200': description: Transaction response content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' examples: finished: value: success: true uuid: abcde12345abcde12345 purchaseId: 20190927-abcde12345abcde12345 returnType: FINISHED paymentMethod: Creditcard redirect: value: success: true uuid: abcde12345abcde12345 purchaseId: 20190927-abcde12345abcde12345 returnType: REDIRECT redirectUrl: 'http://redirectComesUrlHere.com' paymentMethod: Creditcard processing error: value: success: false uuid: abcde12345abcde12345 purchaseId: 20200924-abcde12345abcde12345 returnType: ERROR paymentMethod: Dummy errors: - errorMessage: Dummy error errorCode: 1003 adapterMessage: Dummy adapter error 'general error, e.g. duplicate': value: success: false errorMessage: The transaction ID '20190823062178' already exists! errorCode: 3004 'general error, e.g. validation': value: success: false errorMessage: 'root: ''amount'' is required' errorCode: 1002 '/transaction/{apiKey}/void': post: tags: - transaction summary: 'Process a void: cancels a previously authorized Preauthorize' operationId: processVoid parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string requestBody: description: Data which is required to process a void content: application/json: schema: $ref: '#/components/schemas/Void' example: merchantTransactionId: 2019-09-02-0004 referenceUuid: bcdef23456bcdef23456 required: true responses: '200': description: Transaction response content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' examples: finished: value: success: true uuid: abcde12345abcde12345 purchaseId: 20190927-abcde12345abcde12345 returnType: FINISHED paymentMethod: Creditcard redirect: value: success: true uuid: abcde12345abcde12345 purchaseId: 20190927-abcde12345abcde12345 returnType: REDIRECT redirectUrl: 'http://redirectComesUrlHere.com' paymentMethod: Creditcard processing error: value: success: false uuid: abcde12345abcde12345 purchaseId: 20200924-abcde12345abcde12345 returnType: ERROR paymentMethod: Dummy errors: - errorMessage: Dummy error errorCode: 1003 adapterMessage: Dummy adapter error 'general error, e.g. duplicate': value: success: false errorMessage: The transaction ID '20190823062178' already exists! errorCode: 3004 'general error, e.g. validation': value: success: false errorMessage: 'root: ''referenceUuid'' is required' errorCode: 1002 '/transaction/{apiKey}/register': post: tags: - transaction summary: 'Process a register: registers a customer''s payment instrument for future use (Debit or Preauthorize)' operationId: processRegister parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string requestBody: description: Data which is required to process a register content: application/json: schema: $ref: '#/components/schemas/Register' example: merchantTransactionId: 2019-09-02-0005 merchantMetaData: merchantRelevantData successUrl: 'http://example.com/success' cancelUrl: 'http://example.com/cancel' errorUrl: 'http://example.com/error' callbackUrl: 'http://example.com/callback' customer: identification: 1234 firstName: John lastName: Doe paymentData: ibanData: iban: AT11111111111111111111 bic: ABC description: This is a register language: en required: true responses: '200': description: Transaction response content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' examples: finished: value: success: true uuid: abcde12345abcde12345 purchaseId: 20190927-abcde12345abcde12345 returnType: FINISHED paymentMethod: Creditcard redirect: value: success: true uuid: abcde12345abcde12345 purchaseId: 20190927-abcde12345abcde12345 returnType: REDIRECT redirectUrl: 'http://redirectComesUrlHere.com' paymentMethod: Creditcard processing error: value: success: false uuid: abcde12345abcde12345 purchaseId: 20200924-abcde12345abcde12345 returnType: ERROR paymentMethod: Dummy errors: - errorMessage: Dummy error errorCode: 1003 adapterMessage: Dummy adapter error 'general error, e.g. duplicate': value: success: false errorMessage: The transaction ID '20190823062178' already exists! errorCode: 3004 'general error, e.g. validation': value: success: false errorMessage: 'root: ''amount'' is required' errorCode: 1002 '/transaction/{apiKey}/deregister': post: tags: - transaction summary: 'Process a deregister: deletes a previously registered payment instrument' operationId: processDeregister parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string requestBody: description: Data which is required to process a deregister content: application/json: schema: $ref: '#/components/schemas/Deregister' example: merchantTransactionId: 2019-09-02-0006 merchantMetaData: merchantRelevantData referenceUuid: bcdef23456bcdef23456 required: true responses: '200': description: Transaction response content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' examples: finished: value: success: true uuid: abcde12345abcde12345 purchaseId: 20190927-abcde12345abcde12345 returnType: FINISHED paymentMethod: Creditcard processing error: value: success: false uuid: abcde12345abcde12345 purchaseId: 20200924-abcde12345abcde12345 returnType: ERROR paymentMethod: Dummy errors: - errorMessage: Dummy error errorCode: 1003 adapterMessage: Dummy adapter error 'general error, e.g. duplicate': value: success: false errorMessage: The transaction ID '20190823062178' already exists! errorCode: 3004 'general error, e.g. validation': value: success: false errorMessage: 'root: ''referenceUuid'' is required' errorCode: 1002 '/transaction/{apiKey}/refund': post: tags: - transaction summary: Process a refund operationId: processRefund parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string requestBody: description: Data which is required to process a refund content: application/json: schema: $ref: '#/components/schemas/Refund' example: merchantTransactionId: 2019-09-02-0007 referenceUuid: bcdef23456bcdef23456 amount: '9.99' currency: EUR callbackUrl: 'http://example.com/callback' description: Refund money required: true responses: '200': description: Transaction response content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' examples: finished: value: success: true uuid: abcde12345abcde12345 purchaseId: 20190927-abcde12345abcde12345 returnType: FINISHED paymentMethod: Creditcard processing error: value: success: false uuid: abcde12345abcde12345 purchaseId: 20200924-abcde12345abcde12345 returnType: ERROR paymentMethod: Dummy errors: - errorMessage: Dummy error errorCode: 1003 adapterMessage: Dummy adapter error 'general error, e.g. duplicate': value: success: false errorMessage: The transaction ID '20190823062178' already exists! errorCode: 3004 'general error, e.g. validation': value: success: false errorMessage: 'root: ''amount'' is required' errorCode: 1002 '/transaction/{apiKey}/payout': post: tags: - transaction summary: Process a payout operationId: processPayout parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string requestBody: description: Data which is required to process a payout content: application/json: schema: $ref: '#/components/schemas/Payout' example: merchantTransactionId: 2019-09-02-0008 amount: '9.99' currency: EUR callbackUrl: 'http://example.com/callback' transactionToken: 'ix::a1A2B3b4c5C6D7d' description: Payout required: true responses: '200': description: Transaction response content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' examples: finished: value: success: true uuid: abcde12345abcde12345 purchaseId: 20190927-abcde12345abcde12345 returnType: FINISHED paymentMethod: Creditcard processing error: value: success: false uuid: abcde12345abcde12345 purchaseId: 20200924-abcde12345abcde12345 returnType: ERROR paymentMethod: Dummy errors: - errorMessage: Dummy error errorCode: 1003 adapterMessage: Dummy adapter error 'general error, e.g. duplicate': value: success: false errorMessage: The transaction ID '20190823062178' already exists! errorCode: 3004 'general error, e.g. validation': value: success: false errorMessage: 'root: ''amount'' is required' errorCode: 1002 '/schedule/{apiKey}/start': post: tags: - schedule summary: Start a schedule. Requires the registrationId of an existing transaction of type Register / Debit-with-register / Preauthorize-with-register operationId: startSchedule parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string requestBody: description: Start a schedule on the given registration transaction content: application/json: schema: $ref: '#/components/schemas/StartSchedule' example: registrationUuid: abcde01234abcde01234 amount: '9.99' currency: EUR periodLength: 6 periodUnit: MONTH startDateTime: '2019-09-30T01:00:00+00:00' required: true responses: '200': description: Schedule response content: application/json: schema: $ref: '#/components/schemas/ScheduleResponse' examples: success: value: success: true scheduleId: SC-1234-1234-1234-1234-1234-1234 registrationUuid: abcde01234abcde01234 oldStatus: NON-EXISTING newStatus: ACTIVE scheduledAt: '2019-09-30T12:00:00+00:00' error: value: success: false errorMessage: The scheduleId is not valid or does not match to the connector errorCode: 7040 '/schedule/{apiKey}/{scheduleId}/update': post: tags: - schedule summary: Update a schedule. Requires the registrationId of an existing transaction of type Register / Debit-with-register / Preauthorize-with-register operationId: updateSchedule parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string - name: scheduleId in: path description: ID of the schedule required: true schema: type: string requestBody: description: Update a schedule with given parameters content: application/json: schema: $ref: '#/components/schemas/UpdateSchedule' example: amount: '9.99' required: true responses: '200': description: Schedule response content: application/json: schema: $ref: '#/components/schemas/ScheduleResponse' examples: success: value: success: true scheduleId: SC-1234-1234-1234-1234-1234-1234 registrationUuid: abcde01234abcde01234 oldStatus: NON-EXISTING newStatus: ACTIVE scheduledAt: '2019-09-30T12:00:00+00:00' error: value: success: false errorMessage: The scheduleId is not valid or does not match to the connector errorCode: 7040 '/schedule/{apiKey}/{scheduleId}/get': get: tags: - schedule summary: Retrieve a schedule. Requires the UUID of an existing transaction of type Register / Debit-with-register / Preuathorize-with-register operationId: getSchedule parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string - name: scheduleId in: path description: ID of the schedule required: true schema: type: string responses: '200': description: Schedule response content: application/json: schema: $ref: '#/components/schemas/ScheduleResponse' examples: success: value: success: true scheduleId: SC-1234-1234-1234-1234-1234-1234 registrationUuid: abcde01234abcde01234 oldStatus: ACTIVE newStatus: ACTIVE scheduledAt: '2019-09-30T12:00:00+00:00' error: value: success: false errorMessage: The scheduleId is not valid or does not match to the connector errorCode: 7040 '/schedule/{apiKey}/{scheduleId}/pause': post: tags: - schedule summary: Pause a schedule. Requires the registrationId of an existing transaction of type Register / Debit-with-register / Preuathorize-with-register operationId: pauseSchedule parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string - name: scheduleId in: path description: ID of the schedule required: true schema: type: string requestBody: description: Pause a schedule content: application/json: schema: $ref: '#/components/schemas/PauseSchedule' required: true responses: '200': description: Schedule response content: application/json: schema: $ref: '#/components/schemas/ScheduleResponse' examples: success: value: success: true scheduleId: SC-1234-1234-1234-1234-1234-1234 oldStatus: ACTIVE newStatus: PAUSED error: value: success: false scheduleId: SC-1234-1234-1234-1234-1234-1234 oldStatus: PAUSED newStatus: PAUSED errorMessage: The status of the schedule is not valid for the requested operation errorCode: 7070 '/schedule/{apiKey}/{scheduleId}/continue': post: tags: - schedule summary: Continue a schedule which has been paused. Requires the registrationId of an existing transaction of type Register / Debit-with-register / Preuathorize-with-register operationId: continueSchedule parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string - name: scheduleId in: path description: ID of the schedule required: true schema: type: string requestBody: description: Continue a given schedule on given date and time content: application/json: schema: $ref: '#/components/schemas/ContinueSchedule' example: continueDateTime: '2019-09-30T01:00:00+00:00' required: true responses: '200': description: Schedule response content: application/json: schema: $ref: '#/components/schemas/ScheduleResponse' examples: success: value: success: true scheduleId: SC-1234-1234-1234-1234-1234-1234 oldStatus: PAUSED newStatus: ACTIVE scheduledAt: '2019-10-05T14:26:11+00:00' error: value: success: false scheduleId: SC-1234-1234-1234-1234-1234-1234 oldStatus: ACTIVE newStatus: ACTIVE errorMessage: The status of the schedule is not valid for the requested operation errorCode: 7070 '/schedule/{apiKey}/{scheduleId}/cancel': post: tags: - schedule summary: Cancel a schedule. Requires the registrationId of an existing transaction of type Register / Debit-with-register / Preuathorize-with-register operationId: cancelSchedule parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string - name: scheduleId in: path description: ID of the schedule required: true schema: type: string requestBody: description: Cancel a schedule content: application/json: schema: $ref: '#/components/schemas/CancelSchedule' required: true responses: '200': description: Schedule response content: application/json: schema: $ref: '#/components/schemas/ScheduleResponse' examples: success: value: success: true scheduleId: SC-1234-1234-1234-1234-1234-1234 oldStatus: ACTIVE newStatus: CANCELLED error: value: success: false scheduleId: SC-1234-1234-1234-1234-1234-1234 oldStatus: CANCELLED newStatus: CANCELLED errorMessage: The status of the schedule is not valid for the requested operation errorCode: 7070 '/status/{apiKey}/getByUuid/{uuid}': get: tags: - status summary: Retrieve status of a transaction operationId: transactionStatusByUuid parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string - name: uuid in: path description: UUID of transaction required: true schema: type: string responses: '200': description: Status response content: application/json: schema: $ref: '#/components/schemas/StatusResponse' examples: success: value: success: true transactionStatus: SUCCESS uuid: abcde12345abcde12345 merchantTransactionId: 2019-09-02-0001 purchaseId: 20190902-abcde12345abcde12345 transactionType: debit paymentMethod: Creditcard amount: '9.99' currency: EUR customer: firstName: John lastName: Doe company: ACME Corp. emailVerified: true extraData: someKey: someValue otherKey: otherValue returnData: _TYPE: cardData type: visa cardHolder: John Doe expiryMonth: 12 expiryYear: 2030 firstSixDigits: '123456' lastFourDigits: '4321' threeDSecure: 'OFF' binBrand: VISA binBank: SOME BIG BANK binCountry: US error: value: success: false errorMessage: Transaction not found errorCode: 8001 '/status/{apiKey}/getByMerchantTransactionId/{merchantTransactionId}': get: tags: - status summary: Retrieve status of a transaction operationId: transactionStatusByMerchantTransactionId parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string - name: merchantTransactionId in: path description: ID of merchant transaction required: true schema: type: string responses: '200': description: Status response content: application/json: schema: $ref: '#/components/schemas/StatusResponse' examples: success: value: success: true transactionStatus: SUCCESS uuid: abcde12345abcde12345 merchantTransactionId: 2019-09-02-0001 purchaseId: 20190902-abcde12345abcde12345 transactionType: debit paymentMethod: Creditcard amount: '9.99' currency: EUR customer: firstName: John lastName: Doe company: ACME Corp. emailVerified: true extraData: someKey: someValue otherKey: otherValue returnData: _TYPE: cardData type: visa cardHolder: John Doe expiryMonth: 12 expiryYear: 2030 firstSixDigits: '123456' lastFourDigits: '4321' threeDSecure: 'OFF' binBrand: VISA binBank: SOME BIG BANK binCountry: US error: value: success: false errorMessage: Transaction not found errorCode: 8001 '/options/{apiKey}/{optionsName}': post: tags: - options summary: Retrieve an options list based on given option name operationId: options security: [] parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string - name: optionsName in: path description: Options identifier of the appropriate adapter required: true schema: type: string requestBody: description: Parameters may be required dependent on the adapter content: application/json: schema: $ref: '#/components/schemas/OptionsRequest' example: parameters: firstParam: firstValue secondParam: secondValue required: true responses: '200': description: Options response content: application/json: schema: $ref: '#/components/schemas/OptionsResponse' examples: success: value: success: true options: bank1: Bank One bank2: Bank Two bank3: Bank Three bank4: Bank Four error: value: success: false errorMessage: Given identifier 'someIdentifier' is invalid. components: schemas: Debit: type: object required: - merchantTransactionId - amount - currency properties: merchantTransactionId: type: string minLength: 1 maxLength: 50 additionalId1: type: string minLength: 1 maxLength: 50 additionalId2: type: string minLength: 1 maxLength: 50 extraData: $ref: '#/components/schemas/ExtraData' merchantMetaData: type: string maxLength: 255 referenceUuid: type: string minLength: 1 maxLength: 50 amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' successUrl: type: string maxLength: 512 cancelUrl: type: string maxLength: 512 errorUrl: type: string maxLength: 512 callbackUrl: type: string maxLength: 512 transactionToken: type: string description: type: string maxLength: 255 items: $ref: '#/components/schemas/Items' withRegister: type: boolean transactionIndicator: type: string enum: - SINGLE - INITIAL - RECURRING - CARDONFILE - CARDONFILE-MERCHANT-INITIATED - MOTO customer: $ref: '#/components/schemas/Customer' schedule: $ref: '#/components/schemas/Schedule' customerProfileData: $ref: '#/components/schemas/CustomerProfileData' threeDSecureData: $ref: '#/components/schemas/ThreeDSecureData' language: type: string minLength: 2 maxLength: 2 additionalProperties: false Preauthorize: type: object required: - merchantTransactionId - amount - currency properties: merchantTransactionId: type: string minLength: 1 maxLength: 50 additionalId1: type: string minLength: 1 maxLength: 50 additionalId2: type: string minLength: 1 maxLength: 50 extraData: $ref: '#/components/schemas/ExtraData' merchantMetaData: type: string maxLength: 255 referenceUuid: type: string minLength: 1 maxLength: 50 amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' successUrl: type: string maxLength: 512 cancelUrl: type: string maxLength: 512 errorUrl: type: string maxLength: 512 callbackUrl: type: string maxLength: 512 transactionToken: type: string description: type: string maxLength: 255 items: $ref: '#/components/schemas/Items' withRegister: type: boolean transactionIndicator: type: string enum: - SINGLE - INITIAL - RECURRING - CARDONFILE - CARDONFILE-MERCHANT-INITIATED - MOTO customer: $ref: '#/components/schemas/Customer' schedule: $ref: '#/components/schemas/Schedule' customerProfileData: $ref: '#/components/schemas/CustomerProfileData' threeDSecureData: $ref: '#/components/schemas/ThreeDSecureData' language: type: string minLength: 2 maxLength: 2 additionalProperties: false Capture: type: object required: - merchantTransactionId - amount - currency - referenceUuid properties: merchantTransactionId: type: string minLength: 1 maxLength: 50 additionalId1: type: string minLength: 1 maxLength: 50 additionalId2: type: string minLength: 1 maxLength: 50 extraData: $ref: '#/components/schemas/ExtraData' merchantMetaData: type: string maxLength: 255 referenceUuid: type: string minLength: 1 maxLength: 50 amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' items: $ref: '#/components/schemas/Items' additionalProperties: false Void: type: object required: - merchantTransactionId - referenceUuid properties: merchantTransactionId: type: string minLength: 1 maxLength: 50 additionalId1: type: string minLength: 1 maxLength: 50 additionalId2: type: string minLength: 1 maxLength: 50 extraData: $ref: '#/components/schemas/ExtraData' merchantMetaData: type: string maxLength: 255 referenceUuid: type: string minLength: 1 maxLength: 50 additionalProperties: false Register: type: object required: - merchantTransactionId properties: merchantTransactionId: type: string minLength: 1 maxLength: 50 additionalId1: type: string minLength: 1 maxLength: 50 additionalId2: type: string minLength: 1 maxLength: 50 extraData: $ref: '#/components/schemas/ExtraData' merchantMetaData: type: string maxLength: 255 successUrl: type: string maxLength: 512 cancelUrl: type: string maxLength: 512 errorUrl: type: string maxLength: 512 callbackUrl: type: string maxLength: 512 transactionToken: type: string description: type: string maxLength: 255 customer: $ref: '#/components/schemas/Customer' schedule: $ref: '#/components/schemas/Schedule' customerProfileData: $ref: '#/components/schemas/CustomerProfileData' threeDSecureData: $ref: '#/components/schemas/ThreeDSecureData' language: type: string minLength: 2 maxLength: 2 additionalProperties: false Deregister: type: object required: - merchantTransactionId - referenceUuid properties: merchantTransactionId: type: string minLength: 1 maxLength: 50 additionalId1: type: string minLength: 1 maxLength: 50 additionalId2: type: string minLength: 1 maxLength: 50 extraData: $ref: '#/components/schemas/ExtraData' merchantMetaData: type: string maxLength: 255 referenceUuid: type: string minLength: 1 maxLength: 50 additionalProperties: false Refund: type: object required: - merchantTransactionId - amount - currency - referenceUuid properties: merchantTransactionId: type: string minLength: 1 maxLength: 50 additionalId1: type: string minLength: 1 maxLength: 50 additionalId2: type: string minLength: 1 maxLength: 50 extraData: $ref: '#/components/schemas/ExtraData' merchantMetaData: type: string maxLength: 255 referenceUuid: type: string minLength: 1 maxLength: 50 amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' callbackUrl: type: string maxLength: 255 transactionToken: type: string description: type: string maxLength: 255 items: $ref: '#/components/schemas/Items' additionalProperties: false Payout: type: object required: - merchantTransactionId - amount - currency properties: merchantTransactionId: type: string minLength: 1 maxLength: 50 additionalId1: type: string minLength: 1 maxLength: 50 additionalId2: type: string minLength: 1 maxLength: 50 extraData: $ref: '#/components/schemas/ExtraData' merchantMetaData: type: string maxLength: 255 referenceUuid: type: string minLength: 1 maxLength: 50 amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' successUrl: type: string maxLength: 512 cancelUrl: type: string maxLength: 512 errorUrl: type: string maxLength: 512 callbackUrl: type: string maxLength: 512 transactionToken: type: string description: type: string maxLength: 255 items: $ref: '#/components/schemas/Items' customer: $ref: '#/components/schemas/Customer' language: type: string minLength: 2 maxLength: 2 additionalProperties: false StartSchedule: type: object required: - registrationUuid properties: registrationUuid: type: string amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' periodLength: type: number minimum: 0 periodUnit: type: string enum: - DAY - WEEK - MONTH - YEAR startDateTime: $ref: '#/components/schemas/DateTimeZone' additionalProperties: false UpdateSchedule: type: object properties: registrationUuid: type: string amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' periodLength: type: number minimum: 0 periodUnit: type: string enum: - DAY - WEEK - MONTH - YEAR startDateTime: $ref: '#/components/schemas/DateTimeZone' additionalProperties: false PauseSchedule: type: object maxProperties: 0 ContinueSchedule: type: object required: - continueDateTime properties: continueDateTime: $ref: '#/components/schemas/DateTimeZone' additionalProperties: false CancelSchedule: type: object maxProperties: 0 OptionsRequest: type: object properties: parameters: type: object additionalProperties: false Amount: type: string pattern: '^(([0-9]+)|([0-9]+\.[0-9]{1,3}))$' Currency: type: string pattern: '^[A-Z]{3}$' Country: type: string pattern: '^[A-Z]{2}$' DateTimeZone: type: string pattern: '^[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))\T(([0-1][0-9])|([2][0-3])):([0-5][0-9]):([0-5][0-9])\+[0-9]{2}\:[0-9]{2}$' DateTime: type: string pattern: '^[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1])) (([0-1][0-9])|([2][0-3])):([0-5][0-9])$' Date: type: string pattern: '^[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))$' ExtraData: type: object additionalProperties: type: string Items: type: array items: type: object properties: identification: type: string name: type: string description: type: string quantity: type: number price: type: number currency: $ref: '#/components/schemas/Currency' extraData: $ref: '#/components/schemas/ExtraData' additionalProperties: false PaymentData: oneOf: - $ref: '#/components/schemas/IbanData' - $ref: '#/components/schemas/WalletData' IbanData: type: object properties: ibanData: type: object properties: iban: type: string maxLength: 34 bic: type: string maxLength: 11 mandateId: type: string maxLength: 50 mandateDate: $ref: '#/components/schemas/Date' additionalProperties: false additionalProperties: false WalletData: type: object properties: walletData: type: object properties: walletReferenceId: type: string maxLength: 255 walletOwner: type: string maxLength: 255 walletType: type: string maxLength: 255 additionalProperties: false additionalProperties: false ThreeDSecureData: type: object properties: 3dsecure: type: string enum: - 'OFF' - OPTIONAL - MANDATORY channel: type: string enum: - '01' - '02' - '03' authenticationIndicator: type: string enum: - '01' - '02' - '03' - '04' - '05' - '06' cardholderAuthenticationMethod: type: string enum: - '01' - '02' - '03' - '04' - '05' - '06' cardholderAuthenticationDateTime: $ref: '#/components/schemas/DateTime' cardHolderAuthenticationData: type: string challengeIndicator: type: string enum: - '01' - '02' - '03' - '04' priorReference: type: string priorAuthenticationMethod: type: string enum: - '01' - '02' - '03' - '04' priorAuthenticationDateTime: $ref: '#/components/schemas/DateTime' priorAuthenticationData: type: string cardholderAccountType: type: string enum: - '01' - '02' - '03' - '04' cardholderAccountDate: $ref: '#/components/schemas/Date' cardholderAccountChangeIndicator: type: string enum: - '01' - '02' - '03' - '04' cardholderAccountLastChange: $ref: '#/components/schemas/Date' cardholderAccountPasswordChangeIndicator: type: string enum: - '01' - '02' - '03' - '04' - '05' cardholderAccountLastPasswordChange: $ref: '#/components/schemas/Date' shippingAddressUsageIndicator: type: string enum: - '01' - '02' - '03' - '04' shippingAddressFirstUsage: $ref: '#/components/schemas/Date' transactionActivityDay: type: number transactionActivityYear: type: number addCardAttemptsDay: type: number purchaseCountSixMonths: type: number suspiciousAccountActivityIndicator: type: string enum: - '01' - '02' shippingNameEqualIndicator: type: string enum: - '01' - '02' paymentAccountAgeIndicator: type: string enum: - '01' - '02' - '03' - '04' - '05' paymentAccountAgeDate: $ref: '#/components/schemas/Date' billingAddressLine3: type: string shippingAddressLine3: type: string billingShippingAddressMatch: type: string enum: - 'Y' - 'N' homePhoneCountryPrefix: type: string minLength: 1 maxLength: 3 homePhoneNumber: type: string maxLength: 15 mobilePhoneCountryPrefix: type: string minLength: 1 maxLength: 3 mobilePhoneNumber: type: string maxLength: 15 workPhoneCountryPrefix: type: string minLength: 1 maxLength: 3 workPhoneNumber: type: string maxLength: 15 purchaseInstalData: type: number minimum: 1 maximum: 999 shipIndicator: type: string enum: - '01' - '02' - '03' - '04' - '05' - '06' - '07' deliveryTimeframe: type: string enum: - '01' - '02' - '03' - '04' deliveryEmailAddress: type: string reorderItemsIndicator: type: string enum: - '01' - '02' preOrderPurchaseIndicator: type: string enum: - '01' - '02' preOrderDate: $ref: '#/components/schemas/Date' giftCardAmount: type: number giftCardCurrency: $ref: '#/components/schemas/Currency' giftCardCount: type: number minimum: 1 maximum: 99 purchaseDate: $ref: '#/components/schemas/DateTime' recurringExpiry: $ref: '#/components/schemas/Date' recurringFrequency: type: number minimum: 0 maximum: 9999 transType: type: string enum: - '01' - '03' - '10' - '11' - '28' exemptionIndicator: type: string enum: - '01' - '02' - '03' - '04' - '05' - '06' - '07' browserChallengeWindowSize: type: string enum: - '01' - '02' - '03' - '04' - '05' browserAcceptHeader: type: string browserIpAddress: type: string browserJavaEnabled: type: boolean browserLanguage: type: string minLength: 1 maxLength: 8 browserColorDepth: type: string enum: - '1' - '4' - '8' - '15' - '16' - '24' - '30' - '32' - '48' browserScreenHeight: type: number browserScreenWidth: type: number browserTimezone: type: number minimum: -9999 maximum: 9999 browserUserAgent: type: string maxLength: 2048 sdkInterface: type: string enum: - '01' - '02' - '03' sdkUiType: type: string pattern: '^(0[1-5]( *, *0[0-5])*)?$' sdkAppID: type: string sdkEncData: type: string sdkEphemPubKey: type: string sdkMaxTimeout: type: number minimum: 5 sdkReferenceNumber: type: string sdkTransID: type: string additionalProperties: false ChargebackData: type: object properties: originalUuid: type: string originalMerchantTransactionId: type: string minLength: 1 maxLength: 50 amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' reason: type: string chargebackDateTime: $ref: '#/components/schemas/DateTimeZone' additionalProperties: false ChargebackReversalData: type: object properties: originalUuid: type: string originalMerchantTransactionId: type: string minLength: 1 maxLength: 50 chargebackUuid: type: string amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' reason: type: string reversalDateTime: $ref: '#/components/schemas/DateTimeZone' additionalProperties: false Schedule: type: object required: - amount - currency - periodLength - periodUnit properties: amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' periodLength: type: integer minimum: 0 periodUnit: type: string enum: - DAY - WEEK - MONTH - YEAR startDateTime: $ref: '#/components/schemas/DateTimeZone' additionalProperties: false ScheduleData: type: object properties: scheduleId: type: string scheduleStatus: $ref: '#/components/schemas/ScheduleStatus' scheduledAt: $ref: '#/components/schemas/DateTimeZone' additionalProperties: false ScheduleStatus: type: string enum: - ACTIVE - PAUSED - CANCELLED - ERROR - CREATE-PENDING Customer: type: object properties: identification: type: string maxLength: 36 firstName: type: string maxLength: 50 lastName: type: string maxLength: 50 birthDate: $ref: '#/components/schemas/Date' gender: type: string enum: - M - F billingAddress1: type: string maxLength: 50 billingAddress2: type: string maxLength: 50 billingCity: type: string maxLength: 30 billingPostcode: type: string maxLength: 8 billingState: type: string maxLength: 30 billingCountry: $ref: '#/components/schemas/Country' billingPhone: type: string maxLength: 20 shippingFirstName: type: string maxLength: 50 shippingLastName: type: string maxLength: 50 shippingCompany: type: string maxLength: 50 shippingAddress1: type: string maxLength: 50 shippingAddress2: type: string maxLength: 50 shippingCity: type: string maxLength: 30 shippingPostcode: type: string maxLength: 8 shippingState: type: string maxLength: 30 shippingCountry: $ref: '#/components/schemas/Country' shippingPhone: type: string maxLength: 20 company: type: string maxLength: 50 email: type: string format: email emailVerified: type: boolean ipAddress: type: string maxLength: 50 nationalId: type: string maxLength: 20 extraData: $ref: '#/components/schemas/ExtraData' paymentData: $ref: '#/components/schemas/PaymentData' additionalProperties: false CustomerProfileData: type: object properties: profileGuid: type: string customerIdentification: type: string markAsPreferred: type: boolean additionalProperties: false TransactionResponse: type: object properties: success: type: boolean uuid: type: string purchaseId: type: string returnType: type: string enum: - FINISHED - REDIRECT - HTML - PENDING - ERROR redirectType: type: string enum: - iframe - fullpage - 3ds redirectUrl: type: string maxLength: 255 htmlContent: type: string paymentDescriptor: type: string paymentMethod: type: string returnData: $ref: '#/components/schemas/ReturnData' scheduleData: $ref: '#/components/schemas/ScheduleData' customerProfileData: $ref: '#/components/schemas/CustomerProfileData' riskCheckData: type: object properties: riskCheckResult: type: string enum: - APPROVED - DECLINED - REVIEW riskScore: type: number threeDSecureRequired: type: boolean additionalProperties: false errors: type: array items: type: object properties: errorMessage: type: string errorCode: type: integer format: int32 adapterMessage: type: string adapterCode: type: string additionalProperties: false adapterMessage: type: string adapterCode: type: string extraData: $ref: '#/components/schemas/ExtraData' additionalProperties: false ScheduleResponse: type: object properties: success: type: boolean scheduleId: type: string registrationId: type: string oldStatus: $ref: '#/components/schemas/ScheduleStatus' newStatus: $ref: '#/components/schemas/ScheduleStatus' scheduledAt: $ref: '#/components/schemas/DateTimeZone' additionalProperties: false StatusResponse: type: object properties: success: type: boolean transactionStatus: $ref: '#/components/schemas/TransactionStatus' uuid: type: string merchantTransactionId: type: string minLength: 1 maxLength: 50 purchaseId: type: string transactionType: $ref: '#/components/schemas/TransactionType' paymentMethod: type: string amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' schedules: type: object additionalProperties: $ref: '#/components/schemas/ScheduleData' errors: $ref: '#/components/schemas/TransactionErrors' chargebackData: $ref: '#/components/schemas/ChargebackData' chargebackReversalData: $ref: '#/components/schemas/ChargebackReversalData' extraData: $ref: '#/components/schemas/ExtraData' merchantMetaData: type: string returnData: $ref: '#/components/schemas/ReturnData' customer: $ref: '#/components/schemas/Customer' customerProfileData: $ref: '#/components/schemas/CustomerProfileData' additionalProperties: false OptionsResponse: type: object properties: success: type: boolean options: type: array items: type: object properties: key: type: string value: type: string additionalProperties: false error: type: string additionalProperties: false ReturnData: oneOf: - $ref: '#/components/schemas/ReturnCardData' - $ref: '#/components/schemas/ReturnPhoneData' - $ref: '#/components/schemas/ReturnIbanData' - $ref: '#/components/schemas/ReturnWalletData' ReturnCardData: type: object properties: _TYPE: type: string enum: - cardData type: type: string firstName: type: string lastName: type: string country: $ref: '#/components/schemas/Country' cardHolder: type: string expiryMonth: type: string pattern: '^((0[1-9])|(1[0-2]))$' expiryYear: type: string pattern: '^[0-9]{4}$' firstSixDigits: type: string pattern: '^[0-9]{6}$' lastFourDigits: type: string pattern: '^[0-9]{4}$' fingerprint: type: string binBrand: type: string binBank: type: string binType: type: string binLevel: type: string binCountry: type: string threeDSecure: type: string eci: type: string additionalProperties: false ReturnPhoneData: type: object properties: _TYPE: type: string enum: - phoneData phoneNumber: type: string country: $ref: '#/components/schemas/Country' operator: type: string additionalProperties: false ReturnIbanData: type: object properties: _TYPE: type: string enum: - ibanData accountOwner: type: string iban: type: string bic: type: string bankName: type: string country: $ref: '#/components/schemas/Country' additionalProperties: false ReturnWalletData: type: object properties: _TYPE: type: string enum: - walletData walletReferenceId: type: string walletOwner: type: string walletType: type: string additionalProperties: false TransactionErrors: type: array items: $ref: '#/components/schemas/TransactionError' TransactionError: type: object properties: message: type: string code: type: integer format: int32 adapterMessage: type: string adapterCode: type: string additionalProperties: false TransactionStatus: type: string enum: - SUCCESS - PENDING - REDIRECT - CANCELLED - ERROR TransactionType: type: string enum: - DEBIT - CAPTURE - DEREGISTER - PREAUTHORIZE - REFUND - REGISTER - VOID - CHARGEBACK - CHARGEBACK-REVERSAL - PAYOUT Callback: type: object properties: result: type: string enum: - OK - PENDING - ERROR uuid: type: string merchantTransactionId: type: string minLength: 1 maxLength: 50 purchaseId: type: string maxLength: 50 transactionType: $ref: '#/components/schemas/TransactionType' paymentMethod: type: string amount: $ref: '#/components/schemas/Amount' currency: $ref: '#/components/schemas/Currency' scheduleData: $ref: '#/components/schemas/ScheduleData' customerProfileData: $ref: '#/components/schemas/CustomerProfileData' errorMessage: type: string errorCode: type: integer format: int32 adapterMessage: type: string adapterCode: type: string chargebackData: $ref: '#/components/schemas/ChargebackData' chargebackReversalData: $ref: '#/components/schemas/ChargebackReversalData' extraData: $ref: '#/components/schemas/ExtraData' merchantMetaData: type: string returnData: $ref: '#/components/schemas/ReturnData' customer: $ref: '#/components/schemas/Customer' additionalProperties: false securitySchemes: basicAuth: type: http scheme: basic security: - basicAuth: []