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/customerprofiles servers: - url: https://gateway.ixopay.com/api/v3 tags: - name: deleteProfile description: Deletes a customer profile - name: getProfile description: Retrieves a customer profile - name: updateProfile description: Updates a customer profile paths: /customerProfiles/{apiKey}/getProfile: post: tags: - getProfile summary: Retrieve a customer profile operationId: getProfile parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string requestBody: description: ID of customer profile to retrieve content: application/json: schema: $ref: '#/components/schemas/GetProfileRequest' examples: Example profileGuid: value: profileGuid: CP-0000-0000-0000-0000-0000-0000 Example customerIdentification: value: customerIdentification: YOUR_CUSTOMER_ID required: true responses: '200': description: Retrieve a customer profile content: application/json: schema: $ref: '#/components/schemas/GetProfileResponse' examples: Successful profile retrieval: value: success: true profileExists: true profileGuid: CP-0000-0000-0000-0000-0000-0000 customerIdentification: YOUR_CUSTOMER_ID preferredMethod: Creditcard customer: _TYPE: customerData billingAddress1: Street billingAddress2: Address billingCity: Vienna billingCountry: AT billingPhone: '123456789' billingPostcode: '1010' billingState: Vienna birthDate: '1970-01-01' company: Company Name email: john@example.com extraData: [] firstName: John gender: M ipAddress: 127.0.0.1 lastName: Smith nationalId: '1234' paymentInstruments: - _TYPE: paymentInstrument createdAt: '2018-10-25 12:52:27' method: card paymentData: _TYPE: paymentData.card brand: visa cardHolder: John Smith expiryMonth: 4 expiryYear: 2020 firstSixDigits: '411111' lastFourDigits: '1111' paymentToken: pt::12345678901234567890 isPreferred: true - _TYPE: paymentInstrument createdAt: '2018-10-25 13:02:22' method: iban paymentData: _TYPE: paymentData.iban bic: null iban: AT111111111111111111 mandateDate: '2018-10-25 00:00:00' mandateId: '123123' paymentToken: pt::12345678901234567891 isPreferred: false - _TYPE: paymentInstrument createdAt: '2018-10-28 12:00:25' method: wallet paymentData: _TYPE: paymentData.wallet walletReferenceId: B-123456789012345 walletOwner: someone@example.com walletType: paypal walletOwnerFirstName: Max, walletOwnerLastName: Mustermann, walletOwnerCountryCode: DE, walletRegistrationId: reg157ra710N1D paymentToken: pt::12345678901234567892 isPreferred: false Profile not found: value: success: false profileExists: false profileGuid: null customerIdentification: null preferredMethod: null customer: null paymentInstruments: [] default: description: Error response content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /customerProfiles/{apiKey}/updateProfile: post: tags: - updateProfile summary: Update a customer profile operationId: updateProfile parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string requestBody: description: Update a customer profile content: application/json: schema: $ref: '#/components/schemas/UpdateProfileRequest' example: customerIdentification: YOUR_CUSTOMER_ID customerData: billingAddress1: Street billingAddress2: Address billingCity: Vienna billingCountry: AT billingPhone: '123456789' billingPostcode: '1010' billingState: Vienna birthDate: '1970-01-01' company: Company Name email: john@example.com extraData: [] firstName: John gender: M ipAddress: 127.0.0.1 lastName: Smith nationalId: '1234' preferredInstrument: pt::12345678901234567890 required: true responses: '200': description: Update a customer profile content: application/json: schema: $ref: '#/components/schemas/UpdateProfileResponse' example: success: true profileGuid: CP-0000-0000-0000-0000-0000-0000 customerIdentification: YOUR_CUSTOMER_ID customer: _TYPE: customerData billingAddress1: Street billingAddress2: Address billingCity: Vienna billingCountry: AT billingPhone: '123456789' billingPostcode: '1010' billingState: Vienna birthDate: '1970-01-01' company: Company Name email: john@example.com extraData: [] firstName: John gender: M ipAddress: 127.0.0.1 lastName: Smith nationalId: '1234' changedFields: - firstName - lastName default: description: Error response content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /customerProfiles/{apiKey}/deleteProfile: post: tags: - deleteProfile summary: Delete a customer profile operationId: deleteProfile parameters: - name: apiKey in: path description: API Key of Connector required: true schema: type: string requestBody: description: Delete a customer profile content: application/json: schema: $ref: '#/components/schemas/DeleteProfileRequest' examples: Example profileGuid: value: profileGuid: CP-0000-0000-0000-0000-0000-0000 Example customerIdentification: value: customerIdentification: YOUR_CUSTOMER_ID required: true responses: '200': description: Delete a customer profile content: application/json: schema: $ref: '#/components/schemas/DeleteProfileResponse' default: description: Error response content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' components: schemas: GetProfileRequest: type: object properties: profileGuid: type: string minLength: 32 maxLength: 32 customerIdentification: type: string minLength: 1 maxLength: 36 oneOf: - required: - profileGuid - required: - customerIdentification additionalProperties: false GetProfileResponse: type: object properties: success: type: boolean profileExists: type: boolean profileGuid: type: string customerIdentification: type: string preferredMethod: type: string customer: $ref: '#/components/schemas/ResponseCustomer' paymentInstruments: type: array items: type: object properties: _TYPE: type: string createdAt: type: string method: type: string paymentData: type: object properties: _TYPE: type: string brand: type: string cardHolder: type: string expiryMonth: type: string expiryYear: type: string firstSixDigits: type: string lastFourDigits: type: string paymentToken: type: string isPreferred: type: boolean additionalProperties: false additionalProperties: false UpdateProfileRequest: type: object properties: profileGuid: type: string minLength: 32 maxLength: 32 customerIdentification: type: string minLength: 1 maxLength: 36 customerData: $ref: '#/components/schemas/Customer' preferredInstrument: type: string minLength: 24 maxLength: 24 oneOf: - required: - profileGuid - required: - customerIdentification required: - customerData additionalProperties: false UpdateProfileResponse: type: object properties: success: type: boolean profileGuid: type: string customer: $ref: '#/components/schemas/ResponseCustomer' changedFields: type: array items: type: string additionalProperties: false DeleteProfileRequest: type: object properties: profileGuid: type: string minLength: 32 maxLength: 32 customerIdentification: type: string minLength: 1 maxLength: 36 oneOf: - required: - profileGuid - required: - customerIdentification additionalProperties: false DeleteProfileResponse: type: object properties: success: type: boolean Customer: type: object properties: firstName: type: string maxLength: 50 lastName: type: string maxLength: 50 birthDate: type: string gender: type: string maxLength: 1 pattern: ^[MW]$ billingAddress1: type: string maxLength: 50 billingAddress2: type: string maxLength: 50 billingCity: type: string maxLength: 50 billingPostcode: type: string maxLength: 16 billingState: type: string maxLength: 30 billingCountry: type: string maxLength: 2 billingPhone: type: string maxLength: 20 company: type: string maxLength: 50 email: type: string maxLength: 255 ipAddress: type: string maxLength: 50 nationalId: type: string maxLength: 14 extraData: type: object additionalProperties: type: string required: - firstName ResponseCustomer: type: object properties: _TYPE: type: string billingAddress1: type: string billingAddress2: type: string billingCity: type: string billingCountry: type: string billingPhone: type: string billingPostcode: type: string billingState: type: string birthDate: type: string company: type: string email: type: string extraData: type: object additionalProperties: type: string firstName: type: string gender: type: string ipAddress: type: string lastName: type: string nationalId: type: string ErrorResponse: type: object properties: success: type: boolean errorMessage: type: string errorCode: type: integer securitySchemes: basicAuth: type: http scheme: basic security: - basicAuth: []