openapi: 3.0.1
info:
title: DN Payment Initiation API
description: 'Public Payment Initiation API (PI-API) of Diebold Nixdorf to access the
Transaction Middleware.
'
version: 1.9.11
contact:
email: ronald.schmieder@dieboldnixdorf.com
tags:
- name: Payment Initiation API
description: 'Public Payment Initiation API (PI-API) of DieboldNixdorf to access the
Transaction Middleware.
'
externalDocs:
description: Find out more
url: https://dieboldnixdorf.com
externalDocs:
description: Find out more about Swagger
url: https://swagger.io
paths:
/pay/{merchantId}/initiateSession:
post:
summary: Initiate a payment session for token based payments like Google Pay or Apple Pay.
description: 'Retrive the payment session object.
Please see https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_js_api/requesting_an_apple_pay_payment_session
'
operationId: initiateSession
parameters:
- $ref: '#/components/parameters/PI-API-Merchant-ID'
- $ref: '#/components/parameters/X-Request-ID-Param'
- $ref: '#/components/parameters/TimestampParam'
- $ref: '#/components/parameters/PSU-IP-AddressParam'
- $ref: '#/components/parameters/PSU-User-AgentParam'
- $ref: '#/components/parameters/PSU-GEO-LocationParam'
- $ref: '#/components/parameters/SessionKeyParam'
- $ref: '#/components/parameters/CredentialsTypeParam'
- $ref: '#/components/parameters/CredentialsParam'
- $ref: '#/components/parameters/StoreIdParam'
- $ref: '#/components/parameters/CashierIdParam'
- $ref: '#/components/parameters/PaymentProviderParam'
- $ref: '#/components/parameters/TerminalIdParam'
- $ref: '#/components/parameters/RetailUnitParam'
tags:
- Payment Initiation API
requestBody:
description: The request. It contains only the validation URL, if there is any
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/InitiateMerchantSessionRequest'
responses:
'200':
description: 'Returns the opaque payment session object.
'
content:
application/json:
schema:
$ref: '#/components/schemas/InitiateMerchantSessionResponse'
'500':
$ref: '#/components/responses/InternalServerError500'
/pay/{merchantId}/creditBalance:
post:
tags:
- Payment Initiation API
summary: The creditBalance API call returns the credit balance of a payer in case of success.
description: 'The creditBalanceRequest is used to return the payer''s credit balance.
If the amount is insufficient, the call returns a 401 http status code.
'
operationId: creditBalance
parameters:
- $ref: '#/components/parameters/PI-API-Merchant-ID'
- $ref: '#/components/parameters/X-Request-ID-Param'
- $ref: '#/components/parameters/TimestampParam'
- $ref: '#/components/parameters/PSU-IP-AddressParam'
- $ref: '#/components/parameters/PSU-User-AgentParam'
- $ref: '#/components/parameters/PSU-GEO-LocationParam'
- $ref: '#/components/parameters/SessionKeyParam'
- $ref: '#/components/parameters/CredentialsTypeParam'
- $ref: '#/components/parameters/CredentialsParam'
- $ref: '#/components/parameters/StoreIdParam'
- $ref: '#/components/parameters/CashierIdParam'
- $ref: '#/components/parameters/PaymentProviderParam'
- $ref: '#/components/parameters/TerminalIdParam'
- $ref: '#/components/parameters/RetailUnitParam'
responses:
'200':
description: 'In case of a successful call, a PI-API returns the credit a creditBalanceResponse.
'
content:
application/json:
schema:
$ref: '#/components/schemas/CreditBalanceResponse'
'401':
$ref: '#/components/responses/Unauthorized401'
'404':
$ref: '#/components/responses/NotFound404'
'409':
$ref: '#/components/responses/Conflict409'
'500':
$ref: '#/components/responses/InternalServerError500'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreditBalanceRequest'
description: The payment request
required: true
/pay/{merchantId}/authorize:
post:
tags:
- Payment Initiation API
summary: Authorizes a later cardless payment transaction.
description: 'Used to authorize a later payment transaction, using a credit or debit
card, without transferingt any money.
'
operationId: authorizeCardlessPayment
parameters:
- $ref: '#/components/parameters/PI-API-Merchant-ID'
- $ref: '#/components/parameters/X-Request-ID-Param'
- $ref: '#/components/parameters/TimestampParam'
- $ref: '#/components/parameters/PSU-IP-AddressParam'
- $ref: '#/components/parameters/PSU-User-AgentParam'
- $ref: '#/components/parameters/PSU-GEO-LocationParam'
- $ref: '#/components/parameters/SessionKeyParam'
- $ref: '#/components/parameters/CredentialsTypeParam'
- $ref: '#/components/parameters/CredentialsParam'
- $ref: '#/components/parameters/StoreIdParam'
- $ref: '#/components/parameters/CashierIdParam'
- $ref: '#/components/parameters/PaymentProviderParam'
- $ref: '#/components/parameters/TerminalIdParam'
- $ref: '#/components/parameters/RetailUnitParam'
responses:
'200':
description: 'In case of a successful call, a http response code 200 is returned.
'
'401':
$ref: '#/components/responses/Unauthorized401'
'404':
$ref: '#/components/responses/NotFound404'
'409':
$ref: '#/components/responses/Conflict409'
'500':
$ref: '#/components/responses/InternalServerError500'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AuthorizePaymentRequest'
description: The payment request
required: true
/pay/{merchantId}/cardless:
post:
tags:
- Payment Initiation API
summary: Initiate a cardless payment transaction.
description: 'Used to initiate a payment transaction without using a credit or debit
card.
'
operationId: cardlessPayment
parameters:
- $ref: '#/components/parameters/PI-API-Merchant-ID'
- $ref: '#/components/parameters/X-Request-ID-Param'
- $ref: '#/components/parameters/TimestampParam'
- $ref: '#/components/parameters/PSU-IP-AddressParam'
- $ref: '#/components/parameters/PSU-User-AgentParam'
- $ref: '#/components/parameters/PSU-GEO-LocationParam'
- $ref: '#/components/parameters/SessionKeyParam'
- $ref: '#/components/parameters/CredentialsTypeParam'
- $ref: '#/components/parameters/CredentialsParam'
- $ref: '#/components/parameters/StoreIdParam'
- $ref: '#/components/parameters/CashierIdParam'
- $ref: '#/components/parameters/PaymentProviderParam'
- $ref: '#/components/parameters/TerminalIdParam'
- $ref: '#/components/parameters/RetailUnitParam'
responses:
'201':
description: 'In case of a successful call, a PI-API transactionId is returned.
This transactionId can be used in further request.
'
content:
application/json:
schema:
$ref: '#/components/schemas/InitiatePaymentResponse'
'401':
$ref: '#/components/responses/Unauthorized401'
'404':
$ref: '#/components/responses/NotFound404'
'500':
$ref: '#/components/responses/InternalServerError500'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/InitiateCardlessPaymentRequest'
description: The payment request
required: true
/pay/{merchantId}/cardbased/{cardBasedTransactionType}:
post:
tags:
- Payment Initiation API
summary: Initiate a card based payment transaction.
description: 'Used to initiate a credit or debit card payment or money transfer transaction. '
operationId: cardbasedPayment
parameters:
- $ref: '#/components/parameters/PI-API-Merchant-ID'
- $ref: '#/components/parameters/CardBasedTransactionType'
- $ref: '#/components/parameters/X-Request-ID-Param'
- $ref: '#/components/parameters/TimestampParam'
- $ref: '#/components/parameters/PSU-IP-AddressParam'
- $ref: '#/components/parameters/PSU-User-AgentParam'
- $ref: '#/components/parameters/PSU-GEO-LocationParam'
- $ref: '#/components/parameters/SessionKeyParam'
- $ref: '#/components/parameters/CredentialsTypeParam'
- $ref: '#/components/parameters/CredentialsParam'
- $ref: '#/components/parameters/StoreIdParam'
- $ref: '#/components/parameters/CashierIdParam'
- $ref: '#/components/parameters/PaymentProviderParam'
- $ref: '#/components/parameters/TerminalIdParam'
- $ref: '#/components/parameters/RetailUnitParam'
responses:
'200':
description: 'In case of a successful call, a PI-API transactionId is returned.
This transactionId can be used in further request.
'
content:
application/json:
schema:
$ref: '#/components/schemas/InitiateCardBasedPaymentResponse'
'500':
$ref: '#/components/responses/CardBasedInternalServerError500'
'503':
description: Service Unavailable
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/InitiateCardBasedPaymentRequest'
description: The payment request
required: true
/pay/{merchantId}/confirm/{transactionId}:
put:
summary: Confirm a payment transaction
description: Used to confirm a payment transaction approved by payment provider
operationId: confirmPayment
tags:
- Payment Initiation API
parameters:
- $ref: '#/components/parameters/PI-API-Merchant-ID'
- $ref: '#/components/parameters/PI-API-Transaction-ID'
- $ref: '#/components/parameters/X-Request-ID-Param'
- $ref: '#/components/parameters/TimestampParam'
- $ref: '#/components/parameters/PSU-IP-AddressParam'
- $ref: '#/components/parameters/PSU-User-AgentParam'
- $ref: '#/components/parameters/PSU-GEO-LocationParam'
- $ref: '#/components/parameters/SessionKeyParam'
- $ref: '#/components/parameters/CredentialsTypeParam'
- $ref: '#/components/parameters/CredentialsParam'
- $ref: '#/components/parameters/StoreIdParam'
- $ref: '#/components/parameters/CashierIdParam'
- $ref: '#/components/parameters/PaymentProviderParam'
- $ref: '#/components/parameters/TerminalIdParam'
- $ref: '#/components/parameters/RetailUnitParam'
responses:
'200':
description: No further data are returned in case of a successful call.
content:
application/json:
schema:
$ref: '#/components/schemas/ConfirmResponse'
'401':
$ref: '#/components/responses/Unauthorized401'
'404':
$ref: '#/components/responses/NotFound404'
'405':
$ref: '#/components/responses/MethodNotAllowed405'
'500':
$ref: '#/components/responses/InternalServerError500'
/{merchantId}/payments:
get:
summary: Retrive a set of payment transactions.
description: Used to retrive the state of a payment transaction.
operationId: transactions
tags:
- Payment Initiation API
parameters:
- $ref: '#/components/parameters/PI-API-Merchant-ID'
- $ref: '#/components/parameters/X-Request-ID-Param'
- $ref: '#/components/parameters/TimestampParam'
- $ref: '#/components/parameters/PSU-IP-AddressParam'
- $ref: '#/components/parameters/PSU-User-AgentParam'
- $ref: '#/components/parameters/PSU-GEO-LocationParam'
- $ref: '#/components/parameters/SessionKeyParam'
- $ref: '#/components/parameters/CredentialsTypeParam'
- $ref: '#/components/parameters/CredentialsParam'
- $ref: '#/components/parameters/StoreIdParam'
- $ref: '#/components/parameters/CashierIdParam'
- $ref: '#/components/parameters/TerminalIdParam'
- $ref: '#/components/parameters/RetailUnitParam'
- name: fromDateTime
in: query
required: false
description: '
Start of the time interval for which the transactions are requested. Default value fromDateTime
= (now - 1h)
A timestamp containing date and a time as defined by RFC3339
time.
Please see: Date and Time on the Internet: Timestamps
'
schema:
type: string
format: date-time
example: '2018-04-28T06:00:00.000Z'
- name: toDateTime
in: query
required: false
description: 'End of the time interval for which the transactions are requested. Default value toDateTime
= (fromDateTime + 1h)
A timestamp containing date and a time as defined by RFC3339
time.
Please see: Date and Time on the Internet: Timestamps
'
schema:
type: string
format: date-time
example: 2018-04-28T012:00:00.000Z
- name: paymentProvider
in: query
required: false
description: 'The identifier of the payment provider for which the transactions are requested.
'
schema:
$ref: '#/components/schemas/PaymentProvider'
example: VISADIRECT
- name: status
in: query
required: false
description: 'Transaction status in which the transactions are requested.
'
schema:
$ref: '#/components/schemas/TransactionStatus'
example: PENDING
responses:
'200':
description: 'Returns an array of transactions for the specified selection parameters.
'
content:
application/json:
schema:
type: array
items:
oneOf:
- $ref: '#/components/schemas/ExtendedTransactionData'
- $ref: '#/components/schemas/CardbasedDetailsResponse'
'400':
$ref: '#/components/responses/BadRequest400'
'401':
$ref: '#/components/responses/Unauthorized401'
'500':
$ref: '#/components/responses/InternalServerError500'
/payments/{merchantId}/{transactionId}:
delete:
tags:
- Payment Initiation API
summary: Cancel a payment transaction.
description: 'Used to cancel an already initiated payment transaction. Idempotence
key: transactionId
'
operationId: cancel
parameters:
- $ref: '#/components/parameters/PI-API-Merchant-ID'
- $ref: '#/components/parameters/PI-API-Transaction-ID'
- $ref: '#/components/parameters/X-Request-ID-Param'
- $ref: '#/components/parameters/TimestampParam'
- $ref: '#/components/parameters/PSU-IP-AddressParam'
- $ref: '#/components/parameters/PSU-User-AgentParam'
- $ref: '#/components/parameters/PSU-GEO-LocationParam'
- $ref: '#/components/parameters/SessionKeyParam'
- $ref: '#/components/parameters/CredentialsTypeParam'
- $ref: '#/components/parameters/CredentialsParam'
- $ref: '#/components/parameters/StoreIdParam'
- $ref: '#/components/parameters/CashierIdParam'
- $ref: '#/components/parameters/PaymentProviderParam'
- $ref: '#/components/parameters/TerminalIdParam'
- $ref: '#/components/parameters/RetailUnitParam'
responses:
'200':
description: Only the 'retryFlag' is returned after a successful call.
content:
application/json:
schema:
$ref: '#/components/schemas/CancelResponse'
'401':
$ref: '#/components/responses/Unauthorized401'
'404':
$ref: '#/components/responses/NotFound404'
'405':
$ref: '#/components/responses/MethodNotAllowed405'
'500':
$ref: '#/components/responses/InternalServerError500'
put:
tags:
- Payment Initiation API
summary: Refund a payment transaction.
description: 'Used to refund an already initiated payment transaction. Idempotence
key: transactionId
'
operationId: refund
parameters:
- $ref: '#/components/parameters/PI-API-Merchant-ID'
- $ref: '#/components/parameters/PI-API-Transaction-ID'
- $ref: '#/components/parameters/X-Request-ID-Param'
- $ref: '#/components/parameters/TimestampParam'
- $ref: '#/components/parameters/PSU-IP-AddressParam'
- $ref: '#/components/parameters/PSU-User-AgentParam'
- $ref: '#/components/parameters/PSU-GEO-LocationParam'
- $ref: '#/components/parameters/SessionKeyParam'
- $ref: '#/components/parameters/CredentialsTypeParam'
- $ref: '#/components/parameters/CredentialsParam'
- $ref: '#/components/parameters/StoreIdParam'
- $ref: '#/components/parameters/CashierIdParam'
- $ref: '#/components/parameters/PaymentProviderParam'
- $ref: '#/components/parameters/TerminalIdParam'
- $ref: '#/components/parameters/RetailUnitParam'
responses:
'200':
description: No further data are returned in case of a successful call.
content:
application/json:
schema:
$ref: '#/components/schemas/RefundResponse'
'401':
$ref: '#/components/responses/Unauthorized401'
'404':
$ref: '#/components/responses/NotFound404'
'405':
$ref: '#/components/responses/MethodNotAllowed405'
'500':
$ref: '#/components/responses/InternalServerError500'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RefundRequest'
description: The refund payment request
required: true
get:
summary: Retrive the details and state of a certain payment transaction.
description: 'Retrive the details and state of a certain payment transaction.
Idempotence key: transactionId
'
operationId: transactionDetails
tags:
- Payment Initiation API
parameters:
- $ref: '#/components/parameters/PI-API-Merchant-ID'
- $ref: '#/components/parameters/PI-API-Transaction-ID'
- $ref: '#/components/parameters/X-Request-ID-Param'
- $ref: '#/components/parameters/TimestampParam'
- $ref: '#/components/parameters/PSU-IP-AddressParam'
- $ref: '#/components/parameters/PSU-User-AgentParam'
- $ref: '#/components/parameters/PSU-GEO-LocationParam'
- $ref: '#/components/parameters/SessionKeyParam'
- $ref: '#/components/parameters/CredentialsTypeParam'
- $ref: '#/components/parameters/CredentialsParam'
- $ref: '#/components/parameters/StoreIdParam'
- $ref: '#/components/parameters/CashierIdParam'
- $ref: '#/components/parameters/PaymentProviderParam'
- $ref: '#/components/parameters/TerminalIdParam'
- $ref: '#/components/parameters/RetailUnitParam'
- name: refresh
in: query
required: false
description: 'Indicates if the payment provider should be called to refresh the
transaction status in the TM database or not. If set to "true", the payment provider''s system is called; otherwise,
the last known transaction status is loaded from the TM database.
Default value is "true".
'
schema:
type: boolean
example: true
responses:
'200':
description: 'Returns an array of transactions if there are some in the given time
frame.
'
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/TransactionDetailsResponse'
- $ref: '#/components/schemas/CardbasedDetailsResponse'
'401':
$ref: '#/components/responses/Unauthorized401'
'404':
$ref: '#/components/responses/NotFound404'
'500':
$ref: '#/components/responses/InternalServerError500'
/pkiKey:
get:
summary: Retrive the public (RSA) key of the server system.
description: 'Retrive the a public (RSA) key, which is used later on to encrypt
session keys.
'
operationId: pki
tags:
- Accessibility API
responses:
'200':
description: 'Returns apublic (RSA) key, which is used later on to encrypt session
keys.
'
content:
application/json:
schema:
$ref: '#/components/schemas/PKIKeyResponse'
'500':
$ref: '#/components/responses/InternalServerError500'
/{merchantId}/devices:
get:
tags:
- Device API
operationId: getDevices
summary: Get all devices of a certain merchant.
description: 'Used to retrieve all payment devices of a certain merchant.
'
parameters:
- $ref: '#/components/parameters/PI-API-Merchant-ID'
- $ref: '#/components/parameters/X-Request-ID-Param'
- $ref: '#/components/parameters/TimestampParam'
- $ref: '#/components/parameters/PSU-IP-AddressParam'
- $ref: '#/components/parameters/PSU-User-AgentParam'
- $ref: '#/components/parameters/PSU-GEO-LocationParam'
- $ref: '#/components/parameters/SessionKeyParam'
- $ref: '#/components/parameters/CredentialsTypeParam'
- $ref: '#/components/parameters/CredentialsParam'
- $ref: '#/components/parameters/RetailUnitParam'
responses:
'200':
description: 'In case of a successful call, the PI-API device data are returned.
'
content:
application/json:
schema:
$ref: '#/components/schemas/DevicesResponse'
'401':
$ref: '#/components/responses/Unauthorized401'
'404':
$ref: '#/components/responses/NotFound404'
'500':
$ref: '#/components/responses/InternalServerError500'
/device/{merchantId}/{terminalId}:
post:
tags:
- Device API
summary: Create a payment device such as a POS terminal or a mobile device.
description: 'Used to create and/or initialize a payment device.
'
operationId: initializeDevice
parameters:
- $ref: '#/components/parameters/PI-API-Merchant-ID'
- $ref: '#/components/parameters/Terminal-ID'
- $ref: '#/components/parameters/X-Request-ID-Param'
- $ref: '#/components/parameters/TimestampParam'
- $ref: '#/components/parameters/PSU-IP-AddressParam'
- $ref: '#/components/parameters/PSU-User-AgentParam'
- $ref: '#/components/parameters/PSU-GEO-LocationParam'
- $ref: '#/components/parameters/SessionKeyParam'
- $ref: '#/components/parameters/CredentialsTypeParam'
- $ref: '#/components/parameters/CredentialsParam'
- $ref: '#/components/parameters/StoreIdParam'
- $ref: '#/components/parameters/CashierIdParam'
- $ref: '#/components/parameters/PaymentProviderParam'
- $ref: '#/components/parameters/RetailUnitParam'
responses:
'201':
description: 'In case of a successful call, a PI-API a http status code 201 is returned.
'
'401':
$ref: '#/components/responses/Unauthorized401'
'404':
$ref: '#/components/responses/NotFound404'
'500':
$ref: '#/components/responses/InternalServerError500'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateDeviceRequest'
description: The request
required: true
put:
tags:
- Device API
operationId: updateDevice
summary: Update a payment device such as a POS terminal or a mobile device.
description: 'Used to get, update or delete a payment device.
'
parameters:
- $ref: '#/components/parameters/PI-API-Merchant-ID'
- $ref: '#/components/parameters/Terminal-ID'
- $ref: '#/components/parameters/X-Request-ID-Param'
- $ref: '#/components/parameters/TimestampParam'
- $ref: '#/components/parameters/PSU-IP-AddressParam'
- $ref: '#/components/parameters/PSU-User-AgentParam'
- $ref: '#/components/parameters/PSU-GEO-LocationParam'
- $ref: '#/components/parameters/SessionKeyParam'
- $ref: '#/components/parameters/CredentialsTypeParam'
- $ref: '#/components/parameters/CredentialsParam'
- $ref: '#/components/parameters/StoreIdParam'
- $ref: '#/components/parameters/CashierIdParam'
- $ref: '#/components/parameters/PaymentProviderParam'
- $ref: '#/components/parameters/RetailUnitParam'
responses:
'200':
description: 'In case of a successful call, a http status code 200 is returned.
'
'401':
$ref: '#/components/responses/Unauthorized401'
'404':
$ref: '#/components/responses/NotFound404'
'500':
$ref: '#/components/responses/InternalServerError500'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateDeviceRequest'
description: The request
required: true
get:
tags:
- Device API
operationId: getDevice
summary: Get device info of a payment device such as a POS terminal or a mobile device.
description: 'Used to create and/or initialize a payment device.
'
parameters:
- $ref: '#/components/parameters/PI-API-Merchant-ID'
- $ref: '#/components/parameters/Terminal-ID'
- $ref: '#/components/parameters/X-Request-ID-Param'
- $ref: '#/components/parameters/TimestampParam'
- $ref: '#/components/parameters/PSU-IP-AddressParam'
- $ref: '#/components/parameters/PSU-User-AgentParam'
- $ref: '#/components/parameters/PSU-GEO-LocationParam'
- $ref: '#/components/parameters/SessionKeyParam'
- $ref: '#/components/parameters/CredentialsTypeParam'
- $ref: '#/components/parameters/CredentialsParam'
- $ref: '#/components/parameters/StoreIdParam'
- $ref: '#/components/parameters/CashierIdParam'
- $ref: '#/components/parameters/PaymentProviderParam'
- $ref: '#/components/parameters/RetailUnitParam'
responses:
'200':
description: 'In case of a successful call, the PI-API device data are returned.
'
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceInfoResponse'
'401':
$ref: '#/components/responses/Unauthorized401'
'404':
$ref: '#/components/responses/NotFound404'
'500':
$ref: '#/components/responses/InternalServerError500'
delete:
tags:
- Device API
operationId: deleteDevice
summary: Delete a payment device such as a POS terminal or a mobile device.
description: 'Used to create and/or initialize a payment device.
'
parameters:
- $ref: '#/components/parameters/PI-API-Merchant-ID'
- $ref: '#/components/parameters/Terminal-ID'
- $ref: '#/components/parameters/X-Request-ID-Param'
- $ref: '#/components/parameters/TimestampParam'
- $ref: '#/components/parameters/PSU-IP-AddressParam'
- $ref: '#/components/parameters/PSU-User-AgentParam'
- $ref: '#/components/parameters/PSU-GEO-LocationParam'
- $ref: '#/components/parameters/SessionKeyParam'
- $ref: '#/components/parameters/CredentialsTypeParam'
- $ref: '#/components/parameters/CredentialsParam'
- $ref: '#/components/parameters/StoreIdParam'
- $ref: '#/components/parameters/CashierIdParam'
- $ref: '#/components/parameters/PaymentProviderParam'
- $ref: '#/components/parameters/RetailUnitParam'
responses:
'200':
description: 'In case of a successful call, a http status code 200 is returned.
'
'401':
$ref: '#/components/responses/Unauthorized401'
'404':
$ref: '#/components/responses/NotFound404'
'500':
$ref: '#/components/responses/InternalServerError500'
servers:
- url: http://localhost:8080/pi-api/v1
- url: https://localhost:8080/pi-api/v1
components:
securitySchemes:
bearerAuth:
type: http
description: 'When using the bearer authentication method an access token has to be provided in the HTTP authorization
header
'
scheme: bearer
openId:
type: openIdConnect
openIdConnectUrl: https://login.microsoftonline.com/52846f0f-bc96-4a36-939b-f4d04bb473a0/v2.0/.well-known/openid-configuration
responses:
BadRequest400:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized401:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound404:
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
MethodNotAllowed405:
description: Method Not Allowed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Conflict409:
description: Conflict; The authorization has failed.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
InternalServerError500:
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
CardBasedInternalServerError500:
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/CardBasedError'
parameters:
PI-API-Merchant-ID:
name: merchantId
in: path
required: true
description: 'ID of the merchant in the PI API.
'
schema:
type: string
minLength: 1
maxLength: 64
example: TM-Merchant-ID
CardBasedTransactionType:
name: cardBasedTransactionType
in: path
required: true
schema:
$ref: '#/components/schemas/CardbasedTransactionTypes'
example: moneyTransferCredit
Terminal-ID:
name: terminalId
in: path
required: true
schema:
type: string
minLength: 1
maxLength: 64
description: 'UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available.
UUID identifies either a device or a device dependant application installation.
In case of an installation identification this ID need to be unaltered until removal from device.
'
example: terminal1
PI-API-Transaction-ID:
name: transactionId
in: path
required: true
description: 'A unique identifier of a transaction in the PI-API backend domain.
This transaction number must not be confused with the merchantTransactionId. This PI-API transaction number is
generated by the PI-API server and is unique within the whole PI-API
server domain.
'
schema:
type: string
minLength: 6
maxLength: 40
example: '843409084374847833'
X-Request-ID-Param:
name: X-Request-ID
in: header
required: true
description: 'ID of the request, unique to the call, as determined by the
initiating party.
he X-Request-ID is used to identify a certain
PI-API call uniquely.
'
schema:
type: string
minLength: 6
maxLength: 40
example: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
TimestampParam:
name: Timestamp
in: header
required: true
description: 'The timestamp when the PI-API call was initiated by the PI-API client.
The format is defined by RFC3339 date-time.
Please see:
Date and Time on the Internet: Timestamps
'
schema:
type: string
format: date-time
example: '2017-10-02T15:34:12.345Z'
SessionKeyParam:
name: SessionKey
in: header
required: true
description: "The SessionKey parameter contains an base64 encoded AES-128bit\n(AES128) key, which is used\
\ to encrypt the AuthorizationType and\nAuthorizationToken.
\n\nMoreover, where appropriate,\
\ other parts of the request and/or response message are encrypted too, such as\n'buyerIdentityToken' in the 'UserAuthorizationData'\
\ of a\nInitiateCardlessPayment request.
\n\nIf the SessionKey is an empty string (with a zero\
\ length), it is assumed, that the\nAuthorizationType and AuthorizationToken are transmitted\nunencrypted, which is by no means recommended and -\nwhenever possible - should be avoided.
\n\
\nIf a part of a request or response message is or can be encrypted, this is explicitly\nindicated in the description.
\
\ \n\nThe key is separated from the InitializationVector using a '-' (Minus sign/Separator) like 'AESKey InitializationVector'.\n"
schema:
type: string
example: QmFzZTY0IGVuY29kaW5nIHNjaGVtZXMgYXJlIGNvbW1vbmx5VGhlIHBhcnRpY3VsYXIgY2hvaWNlIA==
CredentialsTypeParam:
name: AuthorizationType
in: header
required: true
description: 'AuthorizationType describes the kind of CredentialsParam. Based on
the AuthorizationType the AuthorizationToken is evaluated and
checked.
'
schema:
type: string
enum:
- OAUTH
- USERNAME_PASSWORD
example: USERNAME_PASSWORD
CredentialsParam:
name: AuthorizationToken
in: header
required: true
description: "
The contents and usage of the AuthorizationToken header field\ndepends on the authentication\
\ type as defined by the\nAuthorizationType header field.
\n\nWhen using the OAUTH approach,\
\ consequent API requests are being authorized using the\nrespective OAuth Access Token. The access token is sent\
\ to the API using the AuthorizationToken header\nfield and the BEARER authentication schema as defined in RFC 6750.\n\
Example: 'Bearer SlAV32hkKG'
\n\nIf USERNAME_PASSWORD is used as AuthorizationType a JSON\
\ object\nlike: { 'username': 'Tester', 'password': 'thePassword' } is expected.\nThe given user must have the an\
\ appropriate group to access the system\nusing the CHANNEL_REST. Please see the TM documentation how to create\n\
and assign right, roles and groups to user.
\n"
schema:
type: string
minLength: 4
maxLength: 256
PaymentProviderParam:
name: PaymentProvider
in: header
required: true
schema:
$ref: '#/components/schemas/PaymentProvider'
example: HUMM
StoreIdParam:
name: StoreId
in: header
required: true
description: 'An unique identifier of store within the merchant''s eco-system.
'
schema:
type: string
minLength: 4
maxLength: 256
example: '1234'
CashierIdParam:
name: CashierId
in: header
required: true
description: "An unique identifier of a cashier - a natural person - within the\nmerchant's eco-system.
\n"
schema:
type: string
minLength: 4
maxLength: 256
example: cashier1
TerminalIdParam:
name: TerminalId
in: header
schema:
type: string
minLength: 1
maxLength: 64
required: true
description: 'UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available.
UUID identifies either a device or a device dependant application installation.
In case of an installation identification this ID need to be unaltered until removal from device.
'
example: terminal1
PSU-IP-AddressParam:
name: PSU-IP-Address
in: header
required: false
description: The IP-Address of the client.
schema:
type: string
minLength: 8
maxLength: 48
example: 192.168.8.1
PSU-User-AgentParam:
name: PSU-User-Agent
in: header
required: false
description: 'The user agent string of the client.
'
schema:
type: string
minLength: 5
maxLength: 255
example: Mozilla/5.0(IE 11.0; Windows NT 6.3; Trident/7.0; .NET4.0E; .NET4.0C; rv:11.0) like Gecko
PSU-GEO-LocationParam:
name: PSU-GEO-Location
in: header
required: false
description: 'The (optional) GEO location of the client, if available.
'
schema:
type: string
minLength: 8
maxLength: 255
pattern: GEO:(-?\d+(\.\d+)?),\s*(-?\d+(\.\d+)?)
example: GEO:52.506931,13.144558
RetailUnitParam:
name: RetailUnit
in: header
required: false
description: 'The ID of the retail unit. ISO-3166 2 letter country code as a possibility, e.g. "se" for Sweden, "de"
for Germany and "us" for USA.
'
schema:
type: string
minLength: 2
maxLength: 10
example: se
schemas:
Error:
description: "The error property is optional. \nIt is set only if an error has been detected.\n"
type: object
properties:
message:
description: An optional, additional message which describes the error.
type: string
maxLength: 256
example: 'Internal server error. A database connection could not be
established.
'
paymentProviderErrorCode:
description: An error code as outlined in the PI-API documentation.
type: string
example: SysErr#765
errorCode:
description: An error code as outlined in the PI-API documentation.
type: string
example: HOST_CANCEL
transactionId:
$ref: '#/components/schemas/TransactionIdentifier'
CardBasedError:
allOf:
- $ref: '#/components/schemas/Error'
- type: object
properties:
detailedResponseCode:
type: array
items:
$ref: '#/components/schemas/DetailedResponseCode'
transactionState:
$ref: '#/components/schemas/TransactionStatus'
DetailedResponseCode:
type: string
enum:
- CURRENT_CVV2_VALID
- CURRENT_CVV2_INVALID
- CURRENT_CVV2_NOT_PROCESSED
- CVV2_UNVERIFIED
- CURRENT_CAVV_INVALID
- CURRENT_CAVV_VALID
- CAVV_UNVERIFIED
- AVS_ZIP_MATCH_ADDRESS_MATCH
- AVS_ZIP_MISSING_ADDRESS_MATCH
- AVS_ZIP_MATCH_ADDRESS_NO_MATCH
- AVS_NOTHING_MATCHES
- AVS_ZIP_UNVERIFIED
- AVS_ZIP_RETRY
- NVS_NAME_MATCH
- NVS_PARTIAL_NAME_MATCH
- NVS_NO_NAME_MATCH
PKIPublicKey:
description: A public (RSA) key.
type: object
required:
- modulus
- exponent
properties:
modulus:
description: The base64 encoded modulus part off the public key.
type: string
example: MTI4MzI1Mjc2NTI=
exponent:
description: The base64 encoded exponent of the public key.
type: string
example: OTYyMzgz
KeyValuePair:
description: A key value pair to store/retrieve a key and a value as strings in a generic way. Used in some API calls/objects.
type: object
required:
- key
- value
properties:
key:
description: A unique key which identifies a certain value.
type: string
minimum: 1
maximum: 255
example: this-is-a-sample-key
value:
description: 'The assigned value of the key. It contains a maximum of 2MB data.
'
type: string
minLength: 0
maxLength: 2097152
example: this-is-a-sample-value
Date:
type: string
pattern: ([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))
description: 'The date pattern is defined "YYYY-MM-DD", with YYYY as 4-digit year, MM as 2-digit month and DD as
2-digit day of month.
Date string as defined by date-time - RFC3339 Please see: Date and
Time on the Internet: Timestamps
'
example: '2020-01-31'
MsisdnString:
type: string
format: ^\+(?:[0-9]\x20?){6,14}[0-9]$
description: 'The numbers must start with a plus sign, followed by the country code and national number regarding ITU-T
E.123 and ITU-T E.164
Phone numbers cannot contain more than 15 digits. The shortest international phone numbers in use contain seven digits.
'
MSISDN:
type: object
required:
- MSISDN
properties:
MSISDN:
$ref: '#/components/schemas/MsisdnString'
CountryCode:
type: string
minLength: 3
maxLength: 3
pattern: \d{3,3}|[A-Z]{3,3}
description: 'Refer to ISO Codes https://en.wikipedia.org/wiki/ISO_3166-1_numeric
https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3
'
example: 276
BIN:
type: string
minLength: 6
maxLength: 9
description: 'The Bank Identification Number (BIN) under which, e.g. the Visa Direct solution is registered.
'
example: 12030000
BusinessApplicationId:
type: string
description: 'This description refers to VISA Direct, but can be used also for other purposes.
As used if the payment provider is VISA Direct:
- Identifies the programs'' business application type for VisaNet transaction processing.
- For Money Transfer, AA applies to transactions where the sender and recipient are the same person and PP applies
to transactions where the sender and recipient are not the same person.
- For Money Transfer, CD (Cash Deposit) applies to cash funded transactions.
- For Argentina domestic purchase transactions the value should be "PS".
- For Request To Pay, city will carry Invoice Id which will be used for C2B use case in the CEMEA region where payee
initiates the OCT to the payer.
'
example: PP
MerchantCategoryCode:
type: string
pattern: '[0-9]{4,4}'
description: "Conditional.
\nIf provided, then the value overrides the one present in onboarding data.
\
\ \nIf the merchantCategoryCode value is not populated in onboarding data then this field is mandatory.
\n\
Note: Required if not provided during onboarding.\nNumeric value with total length of 4 digits\nPlease\
\ see: ISO 18245:2023, Merchant category codes\n"
PanEntryMode:
type: string
description: "An identifier that identifies the method used to enter the cardholder account number and card \nexpiration\
\ date. This code specifies e.g. whether the entire magnetic stripe is included in an \nauthorization or financial\
\ request.
\nPlease take a look into the TM programmer manual to discover: \ncom.dieboldnixdorf.txm.core.businessobjects.switching.PanEntryMode.java\n"
enum:
- UNKNOWN
- MANUAL_ENTRY
- MAG_STRIPE_READ
- BARCODE_READ
- OCR_READ
- ICC_READ
- MANUAL_KEY_ENTERED
- ICC_FALLBACK_TO_MAGSTRIPE
- ICC_FALLBACK_TO_MANUAL_ENTRY
- CONTACTLESS_READ
- FULL_MAG_STRIPE_READ
- CONTACTLESS_MAGNETIC_STRIPE_READ
- ICC_CVV_UNRELIABLE
- CONTACTLESS_ICC_READ
- STORED
- DIGITALLY_STORED
- MICR_READ
- ELECTRONIC_COMMERCE
- ON_FILE
- ECOMMERCE_WITH_CRYPTOGRAM
- SERVER
- ONLINE_TELLER_MANUAL
- POS_DEVICE
- ATM
- DISK_INPUT
- MERCHANT_POS
- ONLINE_TELLER
example: MANUAL_ENTRY
PinEntryMode:
type: string
description: "An identifier that identifies the method used to enter the cardholders PIN.
\nPlease take a look\
\ into the TM programmer manual to discover: \ncom.dieboldnixdorf.txm.core.businessobjects.switching.PinEntryMode.java\n"
enum:
- UNSPECIFIED
- TERM_HAS_PINENTRY_CAP
- TERM_HAS_NO_PINENTRY_CAP
- MPOS_SOFTWARE_BASED_PINENTRY_CAP
- PINPAD_CURRENTLY_NOT_OPERATIVE
example: UNSPECIFIED
SourceOfFundsCode:
type: string
example: 2
description: "Depends on the payment provider!\nFor example, if VISA Direct is used as the payment provider,\
\ the following explanation is valid:
\nminLength: 2
\nmaxLength: 2
\nConditional.
If the transaction\
\ is a money transfer, the field is required and must contain a valid \nsourceOfFundsCode.
Please see table below\
\ Code that matches the funding instrument.
\nIf the transaction is a funds disbursement, the field is required\
\ and most likely\ncontains a \"05\" as shown in the table below.\nThe code is used to identify that the merchant\
\ or government entity used a\ndeposit account to fund the disbursement
\nIf the transaction is a pre-paid load,\
\ the field is required if the transaction is\nnon-U.S. domestic.
\nIf the transaction is a credit bill pay, the\
\ field is required if the transaction is non-U.S. \ndomestic, and the code must not contain a \"01\" or \"06\".
\n\
\n \n | Code | \n Description | \n
\n \n | 01 | \n Visa credit | \n\
\
\n \n | 02 | \n Visa debit | \n
\n \n | 03 | \n \
\ Visa prepaid | \n
\n \n | 04 | \n Cash | \n
\n \n | 05 | \n\
\ Debit/deposit access accounts other than those linked to a Visa card (includes checking/savings accounts\
\ and proprietary debit/ATM cards). | \n
\n \n | 06 | \n Credit accounts other\
\ than those linked to a Visa card (includes credit cards and proprietary credit lines). | \n
\n
\n"
Amount:
description: The basic type of an amount.
type: object
required:
- value
- currency
properties:
value:
description: 'The amount value of the given currency. As defined by ISO 20022,
CurrencyAndAmount.
'
type: string
pattern: '[0-9]{1,13}\.[0-9]{1,5}'
minimum: 0
example: 345.67
currency:
description: 'The currency code as defined by ISO 20022, ActiveCurrencyCode
See also: https://en.wikipedia.org/wiki/ISO_4217
'
type: string
minLength: 3
maxLength: 3
pattern: '[A-Z]{3,3}'
example: USD
OrderItemData:
description: "Details of an order item.\nThe refered amounts are:\n total: Line total\n unitPrice: Unit price\n discount:\
\ Discount amount\n"
type: object
required:
- itemDesc
- itemCount
- total
- taxRate
properties:
itemId:
description: Item POS ID
type: string
minLength: 4
maxLength: 128
example: 21478
itemDesc:
description: Item description
type: string
minLength: 5
maxLength: 256
example: PAX
itemCount:
description: Amount of items when purchasing more than one of a kind (including weighted items or bulk goods)
type: number
format: double
minimum: 0.0
example: 5.5
quantityUnit:
description: The quantity unit of the item. Default is "piece"
type: string
minLength: 1
example: cm,m,g,kg,L
total:
$ref: '#/components/schemas/Amount'
unitPrice:
$ref: '#/components/schemas/Amount'
discount:
$ref: '#/components/schemas/Amount'
taxRate:
description: Rate of taxation in percent
type: number
format: double
minimum: 0.0
example: 24.0
PaymentAuthorizationData:
description: The basic type of an amount.
type: object
required:
- purchaseAmount
- msisdn
properties:
amountToAuthorize:
$ref: '#/components/schemas/Amount'
msisdn:
$ref: '#/components/schemas/MSISDN'
TransactionData:
type: object
required:
- orderTitle
- orderAmount
properties:
merchantTransactionId:
type: string
minLength: 6
maxLength: 40
description: "(Conditional) This is a required field in the following APIs:\n\n - CardlessPayment\
\ - Initiate a cardless payment transaction
\n
\nA unique identifier of a transaction in the merchant\
\ system.\n
This transaction number must not be confused with the\nPI-API transaction number!
\
\ The PI-API transaction number\n(transactionId) is generated by the PI-API server and is unique\nwithin the whole\
\ PI-API server domain.
The merchant\ntransaction number (merchantTransactionId) is generated by merchant\n\
system and must be unique only within the merchant's domain.\n
Not the worst idea is simply to use\
\ a UUID as described in\nhttps://en.wikipedia.org/wiki/Universally_unique_identifier and\ndefined by https://tools.ietf.org/html/rfc4122\
\
\n"
example: 7FD98487-15B1-4918-AEE2-D903C22A6BC3
orderTitle:
type: string
minLength: 1
maxLength: 256
description: 'Short information regarding the order, such as ''Women Summer
Dress''
'
example: Women Summer Dress
orderDetail:
type: string
minLength: 1
maxLength: 512
description: 'Longer information regrading the order. '
example: 'New White Lace Sleeveless Cute Casual Summer Dresses Vestidos roupas
femininas WQW10
'
orderItems:
type: array
items:
$ref: '#/components/schemas/OrderItemData'
description: 'List of order items
'
orderAmount:
$ref: '#/components/schemas/Amount'
financeAmount:
$ref: '#/components/schemas/Amount'
storeName:
type: string
minLength: 1
maxLength: 256
description: The name of the store, which has initiated/requested the payment.
example: Zara-Store#30
terminalId:
type: string
minLength: 1
maxLength: 64
description: The ID of the store, which has initiated/requested the payment.
example: '1234567890'
additionalData:
description: 'A list of addtional properties.
'
type: array
items:
$ref: '#/components/schemas/KeyValuePair'
CardbasedTransactionData:
allOf:
- $ref: '#/components/schemas/TransactionData'
- type: object
properties:
paymentProviderMerchantId:
type: string
minLength: 8
maxLength: 64
description: 'A merchant identifier assigned by the payment provider (e.g. by Visa).
'
processingType:
$ref: '#/components/schemas/ProcessingType'
sourceAmount:
$ref: '#/components/schemas/Amount'
CardData:
description: "Contains all card or account related data, which are used and specific for a card based payment.
\n\
Attention!
\nIf parameter 'sessionKey' is set in the request header, this is used to \
\ encrypt the cardNumber, \ncardExpiryDate, cardCvv2Value, track1 and track2 if these vales are provided.\n"
type: object
required:
- cardNumber
properties:
cardNumber:
type: string
minLength: 12
maxLength: 19
description: 'The unique number of that card in the system, also known as PAN.
The length is determined by the ISO/IEC 7812 standard.
If parameter ''sessionKey'' is set in the request header, this field must be sent encrypted.
'
example: 378282246310005
cardSequenceNumber:
type: string
minLength: 1
maxLength: 4
description: 'The card sequence number.
'
example: 2
cardExpiryDate:
type: string
pattern: (0[1-9]|1[1,2,0])(/|-)(20)\d{2}
description: 'The expiry date as two digit month followed by the separator sign / and four digit year.
If parameter ''sessionKey'' is set in the request header, this field must be sent encrypted.
'
example: 10/2025
cardCvv2Value:
type: string
pattern: \d{3,4}
description: 'The cardCvv2Value provided by the account holder for the cardNumber in the request.
If parameter ''sessionKey'' is set in the request header, this field must be sent encrypted.
'
example: '371'
track2:
type: string
pattern: (\d{1,19})(D)(D|\d{4})(D|\d{3})(\d*)
description: 'The track 2 data of the card.
If parameter ''sessionKey'' is set in the request header, this field must be sent encrypted.
'
example: 4761739001010010D10122011143878089
track1:
type: string
pattern: (\d{1,19})(D)(D|\d{4})(D|\d{3})(\d*)
description: 'The track 1 data of the card.
If parameter ''sessionKey'' is set in the request header, this field must be sent encrypted.
'
example: 4761739001010010D10122011143878089
FIID:
type: string
minLength: 3
maxLength: 128
description: 'Financial institution ID. A unique identifier assigned to each specific bank or financial institution.
'
example: '802'
additionalData:
description: 'A list of additional properties.
'
type: array
items:
$ref: '#/components/schemas/KeyValuePair'
PointOfServiceData:
type: object
description: 'Contains a code identifying transaction conditions at the point-of-sale or point of service.
For messages that follow an original request, this code identifies the type of processing being done.
Note: For a CardPresent Transactions, this field is required.
'
required:
- motoECIIndicator
- panEntryMode
- posConditionCode
properties:
motoECIIndicator:
type: string
pattern: ^[0-9]{1}$
description: "Identifies the level of security used in an electronic commerce transaction over an open network
\n\
(for example, the Internet) or the type of mail or telephone order. Acquirers supply indicator values,
\n\
which V.I.P. forwards in requests and advices to issuers that have successfully tested to receive them.
\n\
The subfield is dropped if issuers have not successfully completed testing or choose not to receive it.
\n\
Refer to Moto ECI Codes e.g.\
\ for VISA Direct.\n"
panEntryMode:
$ref: '#/components/schemas/PanEntryMode'
pinEntryMode:
$ref: '#/components/schemas/PinEntryMode'
posEnvironment:
type: string
pattern: ^[0-9,CIR]{1}$
description: 'Conditional
This field is required to identify whether a transaction is merchant-initiated.
Refer to POS Environment Codes e.g.
for VISA Direct
'
posConditionCode:
type: string
description: 'Contains a code identifying transaction conditions at the point of sale or point of service.
For messages that follow an original request, this code identifies the type of processing being done.
Note: For CAVV and/or TAVV transaction, the POS condition code must be set to 59.
Refer to POS Condition Codes
e.g. for VISA Direct
'
specialConditionIndicatorMerchant:
type: string
pattern: ^[0-9]{1}$
description: 'Cryptocurrency indicator with the value of “7” can be used to identify the purchase of cryptocurrency,
thereby providing greater visibility to the issuers.
'
CardbasedTransactionTypes:
type: string
description: "The type of a card based transaction, which can be one of the following:
\n\n - moneyTransferCredit
\n\
\ - moneyTransferDebit
\n - purchase
\n
\n"
enum:
- moneyTransferCredit
- moneyTransferDebit
- purchase
example: moneyTransferCredit
PaymentProvider:
type: string
description: 'The identifier of the payment provider.
The payment provider ''TM'' indicates, that the transaction middleware server - aka. the TM server - should decide
which payment provider has to be used at the end, e.g. based on the card data.
'
enum:
- AGOS
- ALIPAY
- APPLEPAY
- BLUECODE
- DANISH_MOBILEPAY
- GOOGLEPAY
- HUMM
- IKEAREFUNDCARD
- RAIFFEISEN
- SATISPAY
- SEPAINSTANTPAYMENT
- SIMULATOR
- SWISH
- SWISHMCOMMERCE
- SWISSBILLING
- TM
- VIPPS
- VISADIRECT
- WECHAT
- WOSAIPAY
example: ALIPAY
TransactionStatus:
type: string
enum:
- NEW
- PENDING
- APPROVED
- FINISHED
- CANCELED
- TO_BE_CANCELLED
description: "The last known state of a transaction. \n\n\n \n | Name | \n Description | \n\
\
\n\n \n | NEW | \n The transaction is initiated/in progress but the backend has not yet\
\ been called or the backend has not sent a status in the response. | \n
\n \n | PENDING | \n\
\ The transaction is still in progress, the backend has been called and is waiting for the buyer's confirmation. | \n\
\
\n \n | FINISHED | \n The transaction has been finished. Means for initiatePayment: The\
\ goods were payed. Means for cancelPayment: The cancel took place. Means for refundPayment: The refund took place. | \n\
\
\n \n | CANCELED | \n The transaction is CANCELED, e.g. because of an unrecoverable error\
\ or a Cancel transaction. | \n
\n \n | TO_BE_CANCELLED | \n The transaction has been marked\
\ for cancellation by the regular cancellation job. The job contacts the backend to complete the cancellation. | \n\
\
\n
\n"
example: PENDING
TransactionIdentifier:
type: string
minLength: 6
maxLength: 40
description: 'A unique identifier of a transaction in the PI-API backend domain.
This transaction number must not be confused with the
merchantTransactionId.
This PI-API transaction number is
generated by the PI-API server and is unique within the whole PI-API
server domain.
'
example: '434354659863230244'
PaymentProviderTransactionIdentifier:
description: The transactionId in the payment providers domain/eco-system.
type: string
example: 343545544423-34344317
UserAuthorizationData:
description: 'These data are used to identify and authorize the cardless payment
request.
'
type: object
required:
- buyerIdentityToken
- buyerCodeType
properties:
buyerIdentityToken:
type: string
description: 'Used as identification for example of an Alipay user and must be
read from the user''''s Alipay wallet in real time, because it''s a
dynamic value. If parameter ''sessionKey'' is set in the request
header with a length > 0, it is assumed, that this ''sessionKey'' is
used to encrypt the ''buyerIdentityToken''
In case of a token based transaction, such as Apple Pay oder Google Pay the buyerIdentityToken contains the encrypted
payment token.
'
minLength: 1
maxLength: 8192
example: '283323458639276347'
buyerCodeType:
type: string
description: 'The type of the code, if there was any, which was used to initiate
the payment. For Alipay for example only ''BARCODE'' and ''QRCODE'' are
valid.
'
enum:
- BARCODE
- QRCODE
- NFC
- TOKEN
example: BARCODE
paymentProvider:
$ref: '#/components/schemas/PaymentProvider'
addinitonalData:
description: 'A list of additional properties.
'
type: array
items:
$ref: '#/components/schemas/KeyValuePair'
AccountNumber:
description: "The account number.
\nThe length varies greatly. In Europe defined by ISO 13616/2007
\nSee also:\
\ https://en.wikipedia.org/wiki/International_Bank_Account_Number
\nIn case of VISA Direct is used as payment\
\ provider for example the following explanation is valid:
\n\"Conditional.
\nIf the transaction is a\
\ money transfer, pre-paid load, or credit card bill pay, and if the sender\nintends to fund the transaction with\
\ a financial instrument (for example, debit card), this field \nis required and must contain the sender's account\
\ number.
\nIf the transaction is a funds disbursement, the field is not required.
\nNote: This is a 16-digit\
\ PAN or token which defines the account of the consumer (sender of push payment).
\nNote: PAN or a network token\
\ must not be used if Payment Credential Reference is used to send
\nsender's PCI Token Reference ID.
\nOnly\
\ one of 'senderAccountNumber' and 'senderPaymentCredentialReference' is provided in a request\n"
type: string
minLength: 2
maxLength: 32
example: DE19123412341234123412
SwiftCode:
description: 'Contains the BIC (aka. bank identifier code)
The BIC - also known as SWIFT-code - as defined by ISO 9362 is required in/for cross border transfers/transactions.
Please see: https://en.wikipedia.org/wiki/ISO_9362
This field can also be used to send/receive an ABA RTN (ABA routing transit number) or Canadian TN (Canadian transit
number).
See also: https://en.wikipedia.org/wiki/Routing_transit_number
'
type: string
pattern: ^[A-Z0-9]+$
minLength: 8
maxLength: 11
AccountType:
type: string
enum:
- NOT_SPECIFIED
- GIRO
- LOAN
- SAVINGS
- SECURITIES_DEPOSIT
- SAVINGS_SECURITIES_DEPOSIT
- GIRO_SECURITIES_DEPOSIT
- FIXED_TERM_DEPOSIT
- CREDIT_CARD
- MORTGAGE
- FOREIGN_CURRENCY
- EXTERNAL
- CHECKING
- UNIVERSAL
- SPENDING_POWER
- FEE_COLLECTION_ACCOUNT
- ATM
- VENDOR
- SHAREHOLDER
- GENERAL_LEDGER
- CASH_RESERVE
- LOAN_DENIAL
- LEASE
- CONSUMER_LOAN
- COMMERCIAL_LOAN
- RETIREMENT_LOAN
- EXTERNAL_LOAN
- SHARE
- INDIVIDUAL_RETIREMENT
- CARD_PAN
- HEALTH_SAVINGS
- CREDIT
- CREDIT_LINE
- CERTIFIED_DEPOSIT
- INSTALLMENT
example: GIRO
description: 'The default account type is 820000 (NOT_SPECIFIED). '
AcquirerInformation:
type: object
required:
- acquiringBin
- acquirerCountryCode
properties:
acquiringBin:
$ref: '#/components/schemas/BIN'
acquirerCountryCode:
$ref: '#/components/schemas/CountryCode'
ParticipantInformation:
type: object
properties:
nationality:
$ref: '#/components/schemas/CountryCode'
countryOfBirth:
$ref: '#/components/schemas/CountryCode'
occupation:
type: string
minLength: 1
maxLength: 35
description: account owner occupation
dateOfBirth:
type: string
format: date
description: account owner date of birth
example: '2020-02-12'
emailAddress:
type: string
format: email
minLength: 1
maxLength: 99
description: account owner email address
example: john.doe@gmail.com
BaseAddress:
type: object
properties:
street:
type: string
maxLength: 255
description: The name of the street.
example: Mainstreet
streetNo:
type: string
maxLength: 255
description: The street number of this address.
example: '119'
zipCode:
type: string
maxLength: 255
description: The zip code of this city.
example: NY 5467
county:
maxLength: 50
minLength: 1
type: string
description: 'Conditional.
Must be the county of the Merchant/Originator.
Required, e.g. if the payment provider is VISA Direct and if country is "USA".
'
state:
maxLength: 2
minLength: 2
type: string
description: "Conditional.
\nUse a 2-character abbreviated states code or territory code as the state\
\ value.
\nRequired, e.g. if the payment provider is VISA Direct and if country is \"USA\". \n"
Address:
allOf:
- $ref: '#/components/schemas/BaseAddress'
- type: object
properties:
city:
type: string
maxLength: 255
description: The name of the city.
example: New York
countryCode:
$ref: '#/components/schemas/CountryCode'
PaymentFacilitator:
type: object
required:
- id
- name
- subMerchantId
properties:
id:
maxLength: 11
minLength: 1
type: string
description: 'Payment Facilitator ID or Marketplace ID (MasterCard).
'
name:
maxLength: 25
minLength: 1
type: string
description: 'Payment facilitator name in OCTs. This field is conditionally required when a payment facilitator
is involved.
'
subMerchantId:
maxLength: 15
minLength: 1
type: string
description: 'Sub-Merchant ID containing the sponsored merchant ID.
'
address:
$ref: '#/components/schemas/Address'
CardAcceptorAddress:
allOf:
- $ref: '#/components/schemas/BaseAddress'
- type: object
required:
- countryCode
- city
properties:
city:
type: string
maxLength: 255
description: The name of the city.
example: New York
countryCode:
$ref: '#/components/schemas/CountryCode'
CardAcceptor:
description: 'These data describes the card acceptor of this transaction.
'
type: object
required:
- address
- cardAcceptorId
- name
properties:
address:
$ref: '#/components/schemas/CardAcceptorAddress'
cardAcceptorId:
maxLength: 15
minLength: 1
type: string
description: 'An unique identifier for the participant, e.g. VISA Direct Originator.
This value should be unique for each CardAcceptor for whom you are sending transactions.
'
name:
type: string
minLength: 1
description: 'The name of the payment card acceptor.
E.g. for VISA Direct P2P payments, the name must contain the sender name.
For a funds disbursement, must contain either the name of the merchant or government entity sending the funds
disbursement.
For pre-paid loads, must contain either the name of the load partner providing the reload service or the bank
designated service name, if offered over bank channels.
For credit card bill payment, must contain either the name of the entity providing the credit card bill pay service
or the bank designated service name, if offered over bank channels.
'
taxId:
maxLength: 35
minLength: 1
type: string
description: 'Conditional.
This field contains the identifier of the acceptor issued by a taxation authority.
This field is conditionally required e.g. for all MasterCard transactions.
'
legalBusinessName:
maxLength: 25
minLength: 1
type: string
description: 'Acceptor’s legal business name associated with the card acceptor identification code.
'
TransactionParticipant:
allOf:
- $ref: '#/components/schemas/ParticipantInformation'
- type: object
description: 'These data describes a participant of a payment, which holds an normal account or an card account.
Optional required. For cardBasedTransactionType = moneyTransferDebit the sender data must be
set.
For cardBasedTransactionType = moneyTransferCredit the beneficiary data must be set.
'
required:
- cardData
properties:
name:
type: string
minLength: 1
description: 'The name of the payment participant.
E.g. for VISA Direct P2P payments, the name must contain the sender name.
For a funds disbursement, must contain either the name of the merchant or government entity sending the funds
disbursement.
For pre-paid loads, must contain either the name of the load partner providing the reload service or the bank
designated service name, if offered over bank channels.
For credit card bill payment, must contain either the name of the entity providing the credit card bill pay
service or the bank designated service name, if offered over bank channels.
'
example: Doe John A
detailedName:
$ref: '#/components/schemas/ParticipantName'
address:
$ref: '#/components/schemas/Address'
cardData:
$ref: '#/components/schemas/CardData'
identification:
type: array
items:
$ref: '#/components/schemas/ParticipantIdentification'
description: Identification list of participant.
ancillaryDetails:
type: array
items:
$ref: '#/components/schemas/ParticipantAncillaryDetails'
description: Ancillary participant details.
CardlessPaymentTransactionData:
type: object
required:
- commonTransactionData
- userAuthorizationData
properties:
commonTransactionData:
$ref: '#/components/schemas/TransactionData'
userAuthorizationData:
$ref: '#/components/schemas/UserAuthorizationData'
CardbasedPaymentTransactionData:
type: object
required:
- commonTransactionData
properties:
acquirerInformation:
$ref: '#/components/schemas/AcquirerInformation'
beneficiary:
$ref: '#/components/schemas/TransactionParticipant'
businessApplicationId:
$ref: '#/components/schemas/BusinessApplicationId'
cardAcceptor:
$ref: '#/components/schemas/CardAcceptor'
commonTransactionData:
$ref: '#/components/schemas/CardbasedTransactionData'
pointOfServiceData:
$ref: '#/components/schemas/PointOfServiceData'
sender:
$ref: '#/components/schemas/TransactionParticipant'
sourceOfFundsCode:
$ref: '#/components/schemas/SourceOfFundsCode'
paymentFacilitator:
$ref: '#/components/schemas/PaymentFacilitator'
enablerVerificationValue:
type: string
maxLength: 5
description: "Enabler Verification Value (EVV) is a Visa assigned value \nthat is used to identify enablers that\
\ participate in certain programs. \nThe EVV is unique to the enabler.\n"
example: abcd1
merchantCategoryCode:
$ref: '#/components/schemas/MerchantCategoryCode'
ExtendedTransactionData:
type: object
required:
- transactionId
- transactionState
- transactionType
- transactionTimestamp
- storeId
- cashierId
properties:
transactionId:
$ref: '#/components/schemas/TransactionIdentifier'
transactionState:
$ref: '#/components/schemas/TransactionStatus'
transactionType:
type: string
enum:
- PAYMENT
- CANCEL
- REFUND
- REFUNDCREDIT
description: "The type of a transaction. \n\n\n \n | Name | \n Description | \n
\n\
\n \n | PAYMENT | \n A regular payment transaction | \n
\n \n | CANCEL | \n\
\ A cancel payment transaction | \n
\n \n | REFUND | \n A refund transaction | \n\
\
\n \n | REFUNDCREDIT | \n A refund transaction without related payment | \n
\n\
\n"
example: PAYMENT
transactionTimestamp:
type: string
format: date-time
description: 'A timestamp containing date and a time as defined by RFC3339
time.
Please see: Date and Time on the Internet: Timestamps
'
example: '2018-04-28T06:14:50.142Z'
storeId:
type: string
minLength: 4
maxLength: 256
description: A unique identifier to identify a store in the merchants domain.
example: Zara#34
cashierId:
type: string
minLength: 4
maxLength: 256
description: 'A unique identifier to identify a certain cashier in the merchants
domain.
'
example: '00635'
referenceId:
type: string
minLength: 6
maxLength: 40
description: 'The referenceId is set for/in CANCEL and REFUND transactions. This
transactionId references the transactions the cancel or refund was
made for.
'
example: '434354659863230244'
transactionData:
$ref: '#/components/schemas/TransactionData'
paymentProviderErrorCode:
description: An error code as outlined in the PI-API documentation.
type: string
example: SysErr#765
paymentProviderTransactionId:
$ref: '#/components/schemas/PaymentProviderTransactionIdentifier'
cardlessUserAuthorizationData:
$ref: '#/components/schemas/UserAuthorizationData'
cardData:
$ref: '#/components/schemas/CardData'
DeviceData:
type: object
description: This data contains all information about an external devices such as an POS or mobile device
required:
- softwareVersion
- vendor
properties:
externalDeviceIdentifier:
type: string
minLength: 3
maxLength: 255
description: A identifier which identifies the device in an/the external eco system.
example: 60480F44-413E-47F8-85AF-8B233A9A1680
softwareVersion:
type: string
minLength: 3
maxLength: 255
description: The software verion of that device.
example: 'Darwin Kernel Version 19.6.0: Thu Jun 18 20:49:00 PDT 2020'
vendor:
type: string
minLength: 1
maxLength: 255
description: The vendor of that device.
example: DieboldNixdorf
addinitonalData:
description: 'A list of addtional properties.
'
type: array
items:
$ref: '#/components/schemas/KeyValuePair'
InitiateMerchantSessionRequest:
type: object
required:
- validationURL
description: 'The InitiateMerchantSessionRequest is used to initiate a merchant session in front of a payment request
for token based payment like Apple Pay or Google Pay.
'
properties:
validationURL:
type: string
description: '''The URI is use to validate itself and obtain a merchant session object.
'
example: https://apple-pay-gateway.apple.com/paymentservices/paymentSession
CreditBalanceRequest:
type: object
required:
- userAuthorizationData
description: 'The CreditBalanceRequest is used to return the available credit balance
'
properties:
userAuthorizationData:
$ref: '#/components/schemas/UserAuthorizationData'
CreditBalanceResponse:
type: object
required:
- creditBalance
description: 'The CreditBalanceResponse contains the available (credit) amount.
'
properties:
creditBalance:
$ref: '#/components/schemas/Amount'
expiry:
type: string
format: date-time
description: "A timestamp until the CreditBalance is valid. It contains a date and a time as defined by RFC3339\
\ time.
\nPlease see: Date and Time on the Internet: Timestamps\n"
AuthorizePaymentRequest:
type: object
required:
- authorizePymentRequestData
description: "The AuthorizePaymentRequest is used to initiate a authorization of a payment request \nfrom the cashiers\
\ desk.\n"
properties:
authorizePymentRequestData:
$ref: '#/components/schemas/PaymentAuthorizationData'
InitiateCardlessPaymentRequest:
type: object
required:
- initiatePaymentRequestData
description: 'The initiatePaymentRequest is used to initiate a payment request from
the cashiers desk to the payment provider.
The transactionId return
in the initiatePaymentResponse should be used as a reference to the
PI-API transaction for example in further refund request or in back
office processing.
'
properties:
initiatePaymentRequestData:
$ref: '#/components/schemas/CardlessPaymentTransactionData'
InitiateCardBasedPaymentRequest:
type: object
required:
- initiatePaymentRequestData
description: 'The initiatePaymentRequest is used to initiate a payment request from
the cashiers desk to the payment provider.
The transactionId return
in the initiatePaymentResponse should be used as a reference to the
PI-API transaction for example in further refund request or in back
office processing.
'
properties:
initiatePaymentRequestData:
$ref: '#/components/schemas/CardbasedPaymentTransactionData'
CardbasedPaymentBaseResponse:
type: object
required:
- transactionId
- transactionState
- transactionTimestamp
description: 'The InitiateCardBasedPaymentResponse contains some information''s from the payment provider.
'
properties:
transactionId:
$ref: '#/components/schemas/TransactionIdentifier'
transactionState:
$ref: '#/components/schemas/TransactionStatus'
transactionTimestamp:
type: string
format: date-time
description: 'A timestamp containing date and a time as defined by RFC3339
time.
Please see: Date and Time on the Internet: Timestamps
'
example: '2018-04-28T06:14:50.142Z'
paymentProviderTransactionId:
$ref: '#/components/schemas/PaymentProviderTransactionIdentifier'
InitiateCardBasedPaymentResponse:
allOf:
- $ref: '#/components/schemas/CardbasedPaymentBaseResponse'
- type: object
properties:
detailedResponseCode:
type: array
items:
$ref: '#/components/schemas/DetailedResponseCode'
settlementInfo:
$ref: '#/components/schemas/SettlementInfo'
CardbasedDetailsResponse:
allOf:
- $ref: '#/components/schemas/CardbasedPaymentBaseResponse'
- type: object
properties:
message:
description: An optional, additional message which describes the error.
type: string
maxLength: 256
example: 'Internal server error. A database connection could not be
established.
'
paymentProviderErrorCode:
description: An error code as outlined in the PI-API documentation.
type: string
example: SysErr#765
errorCode:
description: An error code as outlined in the PI-API documentation.
type: string
example: HOST_CANCEL
transactionType:
$ref: '#/components/schemas/CardbasedTransactionTypes'
storeId:
type: string
minLength: 4
maxLength: 256
description: 'The unique identifier to identify a store in the merchants domain.
'
example: Zara#34
cashierId:
type: string
minLength: 4
maxLength: 256
description: 'The unique identifier to identify a certain cashier in the merchants domain.
'
example: '00635'
terminalId:
type: string
minLength: 1
maxLength: 64
description: 'The ID of the terminal, which has initiated/requested the payment.
'
example: '1234567890'
InitiatePaymentResponse:
type: object
description: 'The InitiatePaymentResponse contains more or less only the PI-API
transaction number.
'
properties:
href:
type: string
description: 'The URI used e.g. to cancel this transaction. Please see also
https://en.wikipedia.org/wiki/HATEOAS
'
example: http://pisp-pi-api-webapp/pi-api/v1/payments/123123123
paymentTransactionData:
$ref: '#/components/schemas/ExtendedTransactionData'
CancelResponse:
type: object
description: The CancelPaymentResponse contains more or less only the retryFlag
properties:
href:
type: string
description: 'The URI used e.g. to cancel this transaction. Please see also
https://en.wikipedia.org/wiki/HATEOAS
'
example: http://pisp-pi-api-webapp/pi-api/v1/payments/123123123
retryFlag:
type: boolean
description: 'true: The cancel failed due to retriable error.
false: The
cancel failed due to non-retriable error.
'
example: 'true'
RefundRequest:
type: object
required:
- refundAmount
- refundReason
description: The refundPaymentRequest is used to refund an already processed payment.
properties:
refundAmount:
$ref: '#/components/schemas/Amount'
refundReason:
type: string
minLength: 1
maxLength: 512
description: A free text field e.g. for the reason of the refund.
example: Late delivery
refundItems:
type: array
items:
$ref: '#/components/schemas/OrderItemData'
additionalData:
description: 'A list of addtional properties.
'
type: array
items:
$ref: '#/components/schemas/KeyValuePair'
RefundResponse:
type: object
description: 'The Refund Response contains more or less only the link to the
transaction
'
properties:
href:
type: string
description: 'The URI used e.g. to cancel this transaction. Please see also
https://en.wikipedia.org/wiki/HATEOAS
'
example: http://pisp-pi-api-webapp/pi-api/v1/payments/123123123
ConfirmResponse:
type: object
description: 'The Confirm Response contains more or less only the link to the
transaction
'
properties:
href:
type: string
description: 'The URI used e.g. to cancel this transaction. Please see also
https://en.wikipedia.org/wiki/HATEOAS
'
example: http://pisp-pi-api-webapp/pi-api/v1/payments/123123123
TransactionDetailsResponse:
type: object
required:
- paymentTransactionData
description: 'The GetTransactionsResponse contains a set of already processed payment
transactions in the given timeframe.
'
properties:
paymentTransactionData:
$ref: '#/components/schemas/ExtendedTransactionData'
PKIKeyResponse:
type: object
required:
- publicKey
description: 'The GetTransactionsResponse contains a set of already processed payment
transactions in the given timeframe.
'
properties:
publicKey:
$ref: '#/components/schemas/PKIPublicKey'
InitiateMerchantSessionResponse:
type: object
required:
- merchantSessionPromise
description: 'The GetTransactionsResponse contains a set of already processed payment
transactions in the given timeframe.
'
properties:
merchantSessionPromise:
type: string
minLength: 1
description: 'The opaque merchant session object. Basically it is a JSON Object.
'
example: "{\n \"nonce\": \"1f39c07a\",\n \"retries\": 0,\n \"operationalAnalyticsIdentifier\": \"Apple Pay Demo:A77873CD368A460BD5D3325AD76B01C16BB7F838CFFF654F9A993F4B6A9B4098\"\
,\n \"displayName\": \"Apple Pay Demo\",\n \"domainName\": \"applepaydemo.apple.com\",\n \"merchantIdentifier\"\
: \"REDACTED\",\n \"epochTimestamp\": 1639123825804,\n \"expiresAt\": 1639127425804,\n \"merchantSessionIdentifier\"\
: \"REDACTED\",\n \"signature\": \"REDACTED\"\n}\n"
CreateDeviceRequest:
type: object
required:
- deviceData
description: 'This request creates and initializes an external device such as a mobile device or a POS terminal.
'
properties:
deviceData:
$ref: '#/components/schemas/DeviceData'
UpdateDeviceRequest:
type: object
required:
- deviceData
description: 'This request creates and initializes an external device such as a mobile device or a POS terminal.
'
properties:
deviceData:
$ref: '#/components/schemas/DeviceData'
DevicesResponse:
type: object
required:
- devices
description: 'The Transaction Response contains an array with links to the
transactions
'
properties:
devices:
type: array
items:
$ref: '#/components/schemas/DeviceData'
DeviceInfoResponse:
type: object
required:
- deviceData
description: 'The Returns the device info.
'
properties:
deviceData:
$ref: '#/components/schemas/DeviceData'
ParticipantName:
type: object
properties:
firstName:
type: string
minLength: 1
maxLength: 35
description: This field contains participant's first name
example: John
middleName:
type: string
minLength: 1
maxLength: 35
description: This field contains participant's middle name
example: A
lastName:
type: string
minLength: 1
maxLength: 35
description: This field contains participant's last name
example: Doe
ParticipantIdentification:
type: object
required:
- idType
- idNumber
properties:
idType:
type: string
enum:
- CUSTOMER_IDENTIFICATION
- NATIONAL_IDENTIFICATION_ID
- PASSPORT
- DRIVERS_LICENSE
- TAX_ID
- COMPANY_REGISTRATION_NO
- PROXY_ID
- SOCIAL_SECURITY_NO
- ALIEN_REGISTRATION
- LAW_ENFORCEMENT
- MILITARY_ID
- TRAVEL_ID
- EMAIL
- PHONE_NO
- DATE_OF_BIRTH
description: This field will contain the type of participant identification.
idNumber:
type: string
minLength: 1
maxLength: 35
description: This field will contain a value associated with the Identification Type in field idType.
example: '1234567890'
issueCountryCode:
$ref: '#/components/schemas/CountryCode'
ownerType:
$ref: '#/components/schemas/OwnerType'
description: "This field denotes whether the Tax ID is a business or individual's Tax ID \nwhen idType contains\
\ the value of TAX_ID (Tax identification).\n"
ParticipantAncillaryDetails:
allOf:
- $ref: '#/components/schemas/ParticipantName'
OwnerType:
type: string
enum:
- BUSINESS
- INDIVIDUAL
description: This field identifies if an entity is for a business or an individual.
CurrencyExchangeRate:
type: object
required:
- rate
- decimals
properties:
rate:
type: integer
format: int64
decimals:
type: integer
SettlementInfo:
type: object
required:
- settlementAmount
properties:
settlementAmount:
$ref: '#/components/schemas/Amount'
exchangeRate:
$ref: '#/components/schemas/CurrencyExchangeRate'
description: 'Exchange Rate used to convert the transaction amount to settlement amount in case of multi-currency.
'
ProcessingType:
type: object
required:
- requestType
properties:
requestType:
type: string
enum:
- NOT_DEFERRED
- ORIGINATOR_HOLD
- PAYMENT_PROVIDER_DEFERRED
- RECYCLING_PAYOUT
description: "The type of a card based transaction, which can be one of the following:
\n\n - NOT_DEFERED\
\ - Not deferred transaction
\n - ORIGANATOR_HOLD - This value indicates that the originating acquirer\
\ has held the transaction for \n a period of time before sending to payment provider and is requesting for\
\ payment provider \n to treat the transaction as a deferred transaction.
\n - PAYMENT_PROVIDER_DEFERRED\
\ - This value indicates that the originating acquirer is requesting \n payment provider to apply the default\
\ holding period (if deferredDataTime is not set) upon receipt and process the request as a deferred transaction.
\n\
\ - RECYCLING_PAYOUT
\n
\n"
example: NOT_DEFERRED
deferredDateTime:
type: string
format: date-time
description: 'The field identifies when the transaction needs to be processed by payment provider.
A timestamp containing date and a time as defined by RFC3339
time.
Please see: Date and Time on the Internet: Timestamps
'
example: '2018-04-28T06:14:50.142Z'
security:
- bearerAuth: []
- openId: []