Xentral Payment Service Provider API
Payment Service Provider endpoints
Payment Service Provider endpoints
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