Xentral Payment Service Provider API

Payment Service Provider endpoints

OpenAPI Specification

xentral-payment-service-provider-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Xentral Account Payment Service Provider API
  version: v0.1
  description: Xentral is an ERP platform.
  contact:
    name: Xentral
    url: https://xentral.com
    email: api@xentral.com
servers:
- url: https://{xentralId}.xentral.biz
  description: Your Xentral Instance
  variables:
    xentralId:
      default: xentral
- url: https://{domain}
  description: Xentral at a custom domain
  variables:
    domain:
      default: xentral.com
security:
- BearerAuth: []
tags:
- name: Payment Service Provider
  description: Payment Service Provider endpoints
paths:
  /api/v1/paymentServiceProviders/{id}/transactions:
    get:
      tags:
      - Payment Service Provider
      operationId: paymentServiceProvider.transaction.list.v1
      summary: List payment service provider transactions
      description: Returns a collection of transactions for a specific payment service provider.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          pattern: \d+
          example: '17'
          description: Resource identifier.
        description: This is the account identifier
        example: '123'
      responses:
        '200':
          description: Operation completed successfully.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                required:
                - data
                - extra
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      additionalProperties: false
                      properties:
                        id:
                          type: string
                          pattern: \d+
                          example: '17'
                          description: Resource identifier.
                        businessAccountId:
                          type: string
                          pattern: \d+
                          example: '17'
                          description: Resource identifier.
                        externalId:
                          type: string
                          description: Unique identifier of the transaction in the payment service provider's system
                          example: txn_123
                        externalParentId:
                          type: string
                          nullable: true
                          description: Identifier of the parent transaction if this is a child transaction
                          example: parent_123
                        externalReferenceNumber:
                          type: string
                          nullable: true
                          description: Reference number associated with the transaction
                          example: ref_123
                        externalMerchantId:
                          type: string
                          nullable: true
                          description: Identifier of the merchant in the payment service provider's system
                          example: merchant_123
                        externalCreatedAt:
                          description: a atom formatted date time
                          type: string
                          format: date-time
                          example: '2023-08-13T14:45:36+02:00'
                        externalUpdatedAt:
                          description: a atom formatted date time
                          type: string
                          format: date-time
                          example: '2023-08-13T14:45:36+02:00'
                        vendorKey:
                          type: string
                          description: Key identifying the payment service provider vendor
                          enum:
                          - paypal
                          example: paypal
                        type:
                          type: string
                          description: Type of the transaction
                          example: payment
                        status:
                          type: string
                          description: Current status of the transaction
                          example: completed
                        amount:
                          description: Money object with amount and currency
                          example:
                            amount: '13.37'
                            currency: EUR
                          type: object
                          additionalProperties: false
                          properties:
                            amount:
                              description: A string representing the amount
                              type: string
                              format: float
                              example: '24.99'
                            currency:
                              type: string
                              pattern: '[A-Z]{3}'
                              enum:
                              - EUR
                              - USD
                              - JPY
                              - BGN
                              - CZK
                              - DKK
                              - GBP
                              - HUF
                              - PLN
                              - RON
                              - SEK
                              - CHF
                              - ISK
                              - NOK
                              - HRK
                              - RUB
                              - TRY
                              - AUD
                              - BRL
                              - CAD
                              - CNY
                              - HKD
                              - IDR
                              - ILS
                              - INR
                              - KRW
                              - MXN
                              - MYR
                              - NZD
                              - PHP
                              - SGD
                              - THB
                              - ZAR
                              - ARS
                              - CLP
                              - SAR
                              - AED
                              - QAR
                              description: Currency matches one of currency values as specified in ISO-4217.
                              example: PLN
                        currency:
                          type: string
                          description: Currency code of the transaction
                          example: USD
                        descriptiveText:
                          type: string
                          description: Human-readable description of the transaction
                          example: Test transaction
                        feeType:
                          type: string
                          nullable: true
                          description: Type of fee associated with the transaction
                          example: processing_fee
                        feeAmount:
                          description: Money object with amount and currency
                          example:
                            amount: '13.37'
                            currency: EUR
                          type: object
                          additionalProperties: false
                          properties:
                            amount:
                              description: A string representing the amount
                              type: string
                              format: float
                              example: '24.99'
                            currency:
                              type: string
                              pattern: '[A-Z]{3}'
                              enum:
                              - EUR
                              - USD
                              - JPY
                              - BGN
                              - CZK
                              - DKK
                              - GBP
                              - HUF
                              - PLN
                              - RON
                              - SEK
                              - CHF
                              - ISK
                              - NOK
                              - HRK
                              - RUB
                              - TRY
                              - AUD
                              - BRL
                              - CAD
                              - CNY
                              - HKD
                              - IDR
                              - ILS
                              - INR
                              - KRW
                              - MXN
                              - MYR
                              - NZD
                              - PHP
                              - SGD
                              - THB
                              - ZAR
                              - ARS
                              - CLP
                              - SAR
                              - AED
                              - QAR
                              description: Currency matches one of currency values as specified in ISO-4217.
                              example: PLN
                        paymentMethodType:
                          type: string
                          nullable: true
                          description: Type of payment method used for the transaction
                          example: credit_card
                        payoutId:
                          type: string
                          nullable: true
                          description: Identifier of the associated payout
                          example: payout_123
                        payerInfo:
                          type: object
                          nullable: true
                          description: Information about the payer of the transaction
                          example:
                            accountId: payer_123
                            email: payer@example.com
                            firstName: John
                            lastName: Doe
                            countryCode: DE
                          properties:
                            accountId:
                              type: string
                              nullable: true
                              description: Identifier of the payer's account
                              example: payer_123
                            email:
                              type: string
                              nullable: true
                              description: Email address of the payer
                              example: payer@example.com
                            firstName:
                              type: string
                              nullable: true
                              description: First name of the payer
                              example: John
                            lastName:
                              type: string
                              nullable: true
                              description: Last name of the payer
                              example: Doe
                            countryCode:
                              type: string
                              nullable: true
                              description: Country code of the payer's location
                              example: DE
                        shippingInfo:
                          type: object
                          nullable: true
                          description: Shipping information for the transaction
                          example:
                            recipientName: Jane Doe
                            addressLine1: 123 Main St
                            addressLine2: Apt 4B
                            city: Berlin
                            zipCode: '10001'
                            countryCode: DE
                          properties:
                            recipientName:
                              type: string
                              nullable: true
                              description: Name of the shipping recipient
                              example: Jane Doe
                            addressLine1:
                              type: string
                              nullable: true
                              description: First line of the shipping address
                              example: 123 Main St
                            addressLine2:
                              type: string
                              nullable: true
                              description: Second line of the shipping address
                              example: Apt 4B
                            city:
                              type: string
                              nullable: true
                              description: City of the shipping address
                              example: Berlin
                            zipCode:
                              type: string
                              nullable: true
                              description: Postal code of the shipping address
                              example: '10001'
                            countryCode:
                              type: string
                              nullable: true
                              description: Country code of the shipping address
                              example: DE
                        bankView:
                          type: object
                          nullable: true
                          description: Banking information associated with the transaction
                          example:
                            iban: DE89370400440532013000
                            accountNumber: '123456789'
                            bic: BIC12345678
                            bankName: Test Bank
                          properties:
                            iban:
                              type: string
                              nullable: true
                              description: International Bank Account Number
                              example: DE89370400440532013000
                            accountNumber:
                              type: string
                              nullable: true
                              description: Bank account number
                              example: '123456789'
                            bic:
                              type: string
                              nullable: true
                              description: Bank Identification Code (BIC)
                              example: BIC12345678
                            bankName:
                              type: string
                              nullable: true
                              description: Name of the bank
                              example: Test Bank
                        createdAt:
                          description: a atom formatted date time
                          type: string
                          format: date-time
                          example: '2023-08-13T14:45:36+02:00'
                        updatedAt:
                          description: a atom formatted date time
                          type: string
                          format: date-time
                          example: '2023-08-13T14:45:36+02:00'
                      example:
                        id: '1'
                        businessAccountId: '123'
                        externalId: txn_123
                        externalParentId: parent_123
                        externalReferenceNumber: ref_123
                        externalMerchantId: merchant_123
                        externalCreatedAt: '2023-10-05T14:30:00+01:00'
                        externalUpdatedAt: '2023-10-05T15:30:00+01:00'
                        vendorKey: paypal
                        type: payment
                        status: completed
                        amount:
                          amount: '100.50'
                          currency: USD
                        descriptiveText: Test transaction
                        feeType: processing_fee
                        feeAmount:
                          amount: '10.25'
                          currency: USD
                        paymentMethodType: credit_card
                        payoutId: payout_123
                        payerInfo:
                          accountId: payer_123
                          email: payer@example.com
                          firstName: John
                          lastName: Doe
                          countryCode: DE
                        shippingInfo:
                          recipientName: Jane Doe
                          addressLine1: 123 Main St
                          addressLine2: Apt 4B
                          city: Berlin
                          zipCode: '10001'
                          countryCode: DE
                        bankView:
                          iban: DE89370400440532013000
                          accountNumber: '123456789'
                          bic: BIC12345678
                          bankName: Test Bank
                        createdAt: '2023-10-05T14:30:00+01:00'
                        updatedAt: '2023-10-05T15:30:00+01:00'
                  extra:
                    type: object
                    required:
                    - totalCount
                    - page
                    additionalProperties: false
                    x-description-ignore: true
                    properties:
                      totalCount:
                        description: the total count of all items
                        type: integer
                        example: 1
                      page:
                        description: The pagination object containing the current page number and size
                        type: object
                        required:
                        - number
                        - size
                        additionalProperties: false
                        properties:
                          number:
                            description: The current page number
                            type: integer
                            example: 1
                          size:
                            description: The size of the pages
                            type: integer
                            example: 10
                        example:
                          number: 1
                          size: 10
                    example:
                      totalCount: 1
                      page:
                        number: 1
                        size: 10
        '400':
          description: IETF RFC 9457 Problem API compliant response
          content:
            application/problem+json:
              schema:
                oneOf:
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - violations
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/request-validation
                    title:
                      type: string
                      minLength: 1
                      example: Request payload validation failed.
                    violations:
                      oneOf:
                      - type: array
                        items:
                          type: object
                          example:
                            username:
                            - This value should not be blank.
                            email:
                            - This value is not a valid email address.
                        description: This field will be a mirrored request payload with only invalid fields and values replaced by error messages.
                      - type: object
                        example:
                          _:
                          - This value should contain at most `9` elements.
                        description: This field will be a mirrored request payload with only invalid fields and values replaced by error messages.
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - messages
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/generic-validation
                    title:
                      type: string
                      minLength: 1
                    messages:
                      type: array
                      items:
                        type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - messages
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/conflict
                    title:
                      type: string
                      minLength: 1
                    messages:
                      type: array
                      items:
                        type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - items
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/conflictItems
                    title:
                      type: string
                      minLength: 1
                    items:
                      type: array
                      items:
                        type: object
                        additionalProperties: false
                        required:
                        - id
                        - title
                        - messages
                        properties:
                          id:
                            type: integer
                          title:
                            type: string
                            minLength: 1
                          messages:
                            type: array
                            items:
                              type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - scopes
                  properties:
                    type:
                      type: string
                      enum:
                      - https://developer.xentral.com/reference/problems#token-scopes
                    title:
                      type: string
                      minLength: 1
                    scopes:
                      type: array
                      items:
                        type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - messages
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/generic-validation
                    title:
                      type: string
                      minLength: 1
                    messages:
                      type: object
                      additionalProperties:
                        type: array
                        items:
                          type: string
        '401':
          description: Unable to authenticate the client
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message explaining why the request failed.
                    example: 'Missing required scopes: customer:create.'
              example:
                message: 'Missing required scopes: customer:create.'
            text/html:
              schema:
                type: string
                example: Unauthorized
        '403':
          description: Unable to authorize the client
        '406':
          description: Requested resource representation does not exist.
        '415':
          description: Resource representation send in the request is not supported.
        '429':
          description: Too many API calls made.
    post:
      tags:
      - Payment Service Provider
      operationId: paymentServiceProvider.transaction.create.v1
      summary: Create payment service provider transactions
      description: Creates one or more transactions for a specific payment service provider.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          pattern: \d+
          example: '17'
          description: Resource identifier.
        description: This is the business account identifier
        example: '123'
      requestBody:
        description: Create payment service provider transactions
        content:
          application/json:
            schema:
              type: object
              required:
              - transactions
              properties:
                transactions:
                  type: array
                  items:
                    type: object
                    required:
                    - transaction
                    properties:
                      transaction:
                        type: object
                        required:
                        - id
                        - vendorKey
                        - type
                        - createdAt
                        - updatedAt
                        - status
                        - amount
                        - descriptiveText
                        properties:
                          id:
                            type: string
                            description: Unique identifier of the transaction
                          vendorKey:
                            type: string
                            description: Key identifying the payment service provider vendor
                            enum:
                            - paypal
                            - mollie
                            example: paypal
                          parentId:
                            type: string
                            nullable: true
                            description: Identifier of the parent transaction if this is a child transaction
                          referenceNumber:
                            type: string
                            nullable: true
                            description: Reference number associated with the transaction
                          merchantId:
                            type: string
                            nullable: true
                            description: Identifier of the merchant in the payment service provider's system
                          type:
                            type: string
                            description: Type of the transaction
                          feeType:
                            type: string
                            nullable: true
                            description: Type of fee associated with the transaction
                          createdAt:
                            type: string
                            format: date-time
                            description: Creation timestamp of the transaction
                          updatedAt:
                            type: string
                            format: date-time
                            description: Last update timestamp of the transaction
                          status:
                            type: string
                            description: Current status of the transaction
                          amount:
                            type: object
                            required:
                            - amount
                            - currency
                            properties:
                              amount:
                                type: string
                                description: Transaction amount
                              currency:
                                type: string
                                minLength: 3
                                maxLength: 3
                                description: Currency matches one of currency values as specified in ISO-4217.
                          descriptiveText:
                            type: string
                            description: Human-readable description of the transaction
                          feeAmount:
                            type: object
                            nullable: true
                            properties:
                              amount:
                                type: string
                                description: Fee amount
                              currency:
                                type: string
                                minLength: 3
                                maxLength: 3
                                description: Currency matches one of currency values as specified in ISO-4217.
                          paymentMethodType:
                            type: string
                            nullable: true
                            description: Type of payment method used for the transaction
                          payoutId:
                            type: string
                            nullable: true
                            description: Identifier of the associated payout
                          payerInfo:
                            type: object
                            nullable: true
                            properties:
                              accountId:
                                type: string
                                nullable: true
                                description: Identifier of the payer's account
                              email:
                                type: string
                                nullable: true
                                description: Email address of the payer
                              firstName:
                                type: string
                                nullable: true
                                description: First name of the payer
                              lastName:
                                type: string
                                nullable: true
                                description: Last name of the payer
                              countryCode:
                                type: string
                                nullable: true
                                description: Country code of the payer's location
                          shippingInfo:
                            type: object
                            nullable: true
                            properties:
                              recipientName:
                                type: string
                                nullable: true
                                description: Name of the shipping recipient
                              addressLine1:
                                type: string
                                nullable: true
                                description: First line of the shipping address
                              addressLine2:
                                type: string
                                nullable: true
                                description: Second line of the shipping addre

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xentral/refs/heads/main/openapi/xentral-payment-service-provider-api-openapi.yml