openapi: 3.0.2 info: title: Transaction-V3 API Definition description: Transaction-V3 API for Merchant Portal version: V3.138.1 tags: - name: transaction description: endpoints used to process a transaction - name: document servers: - url: https://partner.easycredit-ratenkauf.de paths: /api/merchant/v3/documents: get: summary: Download billing documents of a merchant. description: ''' Download billing documents of a merchant. Following parameters can be given to restrict: billing date from/to, document type, webshop id and file type If no date range is given, all billing documents of the last month will be returned. ''' tags: - document security: - basicAuth: [ ] parameters: - $ref: '#/components/parameters/billingDateFrom' - $ref: '#/components/parameters/billingDateTo' - $ref: '#/components/parameters/documentType' - $ref: '#/components/parameters/fileType' responses: '200': $ref: '#/components/responses/ZipDocumentResponse' '400': $ref: '#/components/responses/ConstraintViolationError' '401': $ref: '#/components/responses/AuthenticationError' '403': $ref: '#/components/responses/ForbiddenError' /api/merchant/v3/transaction: get: summary: Find transactions of a merchant according to some search parameters. description: ''' Find transactions of a merchant according to the following search parameters: firstname, lastname, orderId, status (REPORT_CAPTURE, REPORT_CAPTURE_EXPIRING, IN_BILLING, BILLED, EXPIRED), minOrderValue, maxOrderValue. The search filter combines the search tags as follows: call /transaction?firstname=Ralf&minOrderValue=5000 -> find transactions with customers firstname Ralf and a minimum order value of 5000€ ''' tags: - transaction security: - basicAuth: [ ] parameters: - $ref: '#/components/parameters/firstname' - $ref: '#/components/parameters/lastname' - $ref: '#/components/parameters/orderId' - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/status' - $ref: '#/components/parameters/minOrderValue' - $ref: '#/components/parameters/maxOrderValue' - $ref: '#/components/parameters/tId' - $ref: '#/components/parameters/webshopIds' responses: '200': $ref: '#/components/responses/TransactionListResponse' '400': $ref: '#/components/responses/ConstraintViolationError' '401': $ref: '#/components/responses/AuthenticationError' '403': $ref: '#/components/responses/ForbiddenError' '404': $ref: '#/components/responses/NotFoundError' /api/merchant/v3/transaction/{transactionId}: get: summary: Retrieve a transaction of a merchant according to a unique functional identifier description: A single transaction is loaded according to its unique functional identifier. tags: - transaction security: - basicAuth: [ ] parameters: - $ref: '#/components/parameters/transactionId' responses: '200': $ref: '#/components/responses/TransactionResponse' '400': $ref: '#/components/responses/ConstraintViolationError' '401': $ref: '#/components/responses/AuthenticationError' '403': $ref: '#/components/responses/ForbiddenError' '404': $ref: '#/components/responses/NotFoundError' /api/merchant/v3/transaction/{transactionId}/capture: post: summary: Report a capture for a transaction according to its unique functional identifier description: Reports a capture for the specified merchant's transaction. Only one capture can be reported per transaction. tags: - transaction security: - basicAuth: [ ] parameters: - $ref: '#/components/parameters/transactionId' requestBody: $ref: '#/components/requestBodies/CaptureRequest' responses: '202': description: accepted for processing headers: Location: description: url to retrieve a transaction schema: type: string '400': $ref: '#/components/responses/ConstraintViolationError' '401': $ref: '#/components/responses/AuthenticationError' '403': $ref: '#/components/responses/ForbiddenError' '404': $ref: '#/components/responses/NotFoundError' '409': $ref: '#/components/responses/ConflictError' /api/merchant/v3/transaction/{transactionId}/refund: post: summary: Report a refund for a transaction according to its unique functional identifier description: Reports a refund for the specified merchant's transaction. There can be multiple active refunds. tags: - transaction security: - basicAuth: [ ] parameters: - $ref: '#/components/parameters/transactionId' requestBody: $ref: '#/components/requestBodies/RefundRequest' responses: '202': description: accepted for processing headers: Location: description: url to retrieve a transaction schema: type: string '400': $ref: '#/components/responses/ConstraintViolationError' '401': $ref: '#/components/responses/AuthenticationError' '403': $ref: '#/components/responses/ForbiddenError' '404': $ref: '#/components/responses/NotFoundError' components: securitySchemes: basicAuth: description: username/password -> webshop id/ratenkauf token type: http scheme: basic schemas: PaginationInfo: type: object properties: page: type: integer pageSize: type: integer count: type: integer TransactionListInfo: type: object properties: TransactionList: type: array items: $ref: '#/components/schemas/TransactionResponse' PagingDetails: $ref: '#/components/schemas/PaginationInfo' TransactionResponse: type: object properties: transactionId: description: Unique functional transaction identifier (consists of 6 characters) type: string example: EWZEN7 status: description: Status structure = _ -> Merchant-Transaction-Status are REPORT_CAPTURE (LIEFERUNG_MELDEN), REPORT_CAPTURE_EXPIRING (LIEFERUNG_MELDEN_AUSLAUFEND), IN_BILLING (IN_ABRECHNUNG), BILLED (ABGERECHNET), EXPIRED (ABGELAUFEN). Applicable Booking-Status for this scenario are FAILED, PENDING type: string example: EXPIRED enum: - REPORT_CAPTURE - REPORT_CAPTURE_EXPIRING - IN_BILLING - BILLED - EXPIRED bookings: type: array items: $ref: '#/components/schemas/Booking' customer: $ref: '#/components/schemas/Customer' creditAccountNumber: description: (= kreditKontonummer) type: string example: 5386968600 orderDetails: $ref: '#/components/schemas/OrderDetails' refundDetails: type: array items: $ref: '#/components/schemas/Refund' refundsTotalValue: description: Sum of all the refund amounts in € type: number example: 488.37 expirationDateTime: description: Expiration date for transactions in state REPORT_CAPTURE type: string format: date-time example: '2021-03-04T14:41:09.002Z' webshopId: description: Webshop Id type: string example: '1.de.1234.1' CaptureRequest: type: object properties: trackingNumber: type: string maxLength: 50 example: JJD0099999999 orderId: description: Shop transaction identifier (allows the shop to store its own reference for the transaction) type: string example: A1ZU560 pattern: "^[a-zA-Z0-9\\.:\\-_/]{0,50}$" maxLength: 50 RefundRequest: type: object properties: value: type: number format: double minimum: 0 exclusiveMinimum: true example: 200.00 bookingId: type: string maxLength: 50 required: - value Booking: discriminator: propertyName: bookingType type: object properties: uuid: type: string created: type: string format: date-time example: '2021-03-04T14:41:09.002Z' type: type: string example: REFUND enum: - REFUND - CAPTURE - NOTIFY status: type: string example: DONE enum: - DONE - FAILED - PENDING - PROCESSING message: $ref: '#/components/schemas/Message' RefundBooking: allOf: - $ref: '#/components/schemas/Booking' - type: object properties: amount: description: "the amount of the current Refund-Booking" type: number example: 356.62 bookingId: type: string maxLength: 50 Message: type: object properties: messageDE: type: string description: German error message whenever a booking (e.g REFUND/CAPTURE) related to a transaction fails messageEN: type: string description: error message whenever a booking (e.g REFUND/CAPTURE) related to a transaction fails Customer: type: object properties: firstName: type: string example: Max lastName: type: string example: Müller customerNumber: type: string example: 2810941815 OrderDetails: type: object properties: orderId: description: Order Id type: string example: ABCDE clearingDate: description: Clearing date ( = abrechnungsdatum) type: string format: date example: '2017-05-06' orderDate: description: Order date ( = bestelldatum) type: string format: date example: '2017-02-06' currentOrderValue: description: Amount in € ( = aktuellerBestellwert in €) type: number example: 356.62 originalOrderValue: description: Amount in € ( = urspruenglicherBestellwert in €) type: number example: 356.62 Refund: type: object properties: refundAmount: description: Amount in € ( = widerrufenerBetrag in €) type: number example: 120.55 refundBookingDate: description: ( = buchungsdatum) type: string format: date example: '2017-01-01' refundEntryDate: description: ( = eingabedatum) type: string format: date example: '2017-01-01' refundDate: description: ( = rueckabwicklungsdatum) type: string format: date example: '2017-01-01' reason: type: string description: Reason for refund -> REVOCATION_FULL (WIDERRUF_VOLLSTAENDIG), REVOCATION_PARTIAL (WIDERRUF_TEILWEISE), REFUND_GUARANTEE_WARRANTY (RUECKGABE_GARANTIE_GEWAEHRLEISTUNG), REDUCTION_GUARANTEE_WARRANTY (MINDERUNG_GARANTIE_GEWAEHRLEISTUNG), REVOCATION_FINANCING(WIDERRUF_FINANZIERUNG) example: REVOCATION_PARTIAL enum: - REVOCATION_FULL - REVOCATION_PARTIAL - REFUND_GUARANTEE_WARRANTY - REDUCTION_GUARANTEE_WARRANTY - REVOCATION_FINANCING ConstraintViolation: type: object properties: title: type: string violations: type: array minItems: 1 items: type: object properties: field: type: string message: type: string required: - field - message required: - title - violations ServerError: type: object properties: title: type: string detail: type: string AuthenticationError: type: object properties: title: type: string detail: type: string parameters: billingDateFrom: name: billingDateFrom description: set by default to the last month if not specified in: query schema: type: string format: date billingDateTo: name: billingDateTo description: set by default to billingDateFrom + one month if not specified in: query schema: type: string format: date documentType: name: documentType description: set by default to all options if not specified in: query schema: type: array items: type: string enum: - MONTHLY_BILL - ADVICE_OF_SETTLEMENT - LEG_BILL - DUNNING_LETTER fileType: name: fileType description: set by default to all options if not specified in: query schema: type: array items: type: string enum: - PDF - CSV - MSG transactionId: name: transactionId in: path description: Unique functional transaction identifier (consists of 6 characters) required: true example: "EWZEN7" schema: type: string firstname: name: firstname in: query example: Ralf schema: type: string lastname: name: lastname in: query example: Ratenkauf schema: type: string orderId: name: orderId in: query example: ABCDE schema: type: string pageSize: name: pageSize in: query example: 50 schema: type: integer default: 100 page: name: page in: query example: 0 schema: type: integer status: name: status in: query schema: type: array items: type: string enum: - REPORT_CAPTURE - REPORT_CAPTURE_EXPIRING - IN_BILLING - BILLED - EXPIRED minOrderValue: name: minOrderValue in: query schema: type: number example: 200 maxOrderValue: name: maxOrderValue in: query schema: type: number example: 9999.99 webshopIds: name: webshopIds in: query schema: type: array maxItems: 100 items: type: string example: '1.de.1234.1' tId: name: tId in: query description: Multiple unique functional transaction identifier (consists of 6 characters) provided through the query schema: type: array maxItems: 1000 items: type: string example: "EWZEN7" example: [ 'TKGZ67', 'TBKOP' ] requestBodies: CaptureRequest: description: Capture Request Object content: application/json: schema: $ref: '#/components/schemas/CaptureRequest' RefundRequest: description: Refund Request Object content: application/json: schema: $ref: '#/components/schemas/RefundRequest' responses: default: description: Internal server error or error from third party services content: application/problem+json: schema: $ref: '#/components/schemas/ServerError' ZipDocumentResponse: description: Billing documents wrapped into a ZIP File content: application/zip: schema: type: string format: binary TransactionResponse: description: Transaction data content: application/hal+json: schema: $ref: '#/components/schemas/TransactionResponse' TransactionListResponse: description: Transaction data of more than one transactions content: application/hal+json: schema: $ref: '#/components/schemas/TransactionListInfo' ConstraintViolationError: description: The request is invalid and has one or more constraint violations. content: application/problem+json: schema: $ref: '#/components/schemas/ConstraintViolation' AuthenticationError: description: The request has not been applied because it lacks valid authentication credentials. content: application/problem+json: schema: $ref: '#/components/schemas/AuthenticationError' ForbiddenError: description: The request could not be completed due to permanent denial of access to a resource or entity. content: application/problem+json: schema: $ref: '#/components/schemas/ConstraintViolation' NotFoundError: description: The request could not be completed due to an entity that was not found. content: application/problem+json: schema: $ref: '#/components/schemas/ConstraintViolation' ConflictError: description: The request could not be completed due to a conflict. content: application/problem+json: schema: $ref: '#/components/schemas/ConstraintViolation'