PosTransactions

Create POS Transaction.

Initiate a new transaction on the terminal device with predefined information, such as amount, transaction type, etc.

SecurityBearer or Bearer or Bearer or Bearer
Request
Request Body schema: application/json
posDeviceId
string or null

External POS Device ID | Mandatory | MaxLength=36

referenceId
string or null

External Transaction Reference ID | Optional | MaxLength=36

transactionTypeId
integer <int32> (PosService.Contracts.TransactionType)

Set the transaction type to be processed by the terminal.

Possible values:

  • 1 - Authorization:
  • 2 - Sale:
  • 3 - Capture:
  • 4 - Void:
  • 5 - Refund:
  • 6 - CardAuthentication:
  • 7 - RefundWORef:
  • 8 - TipAdjustment:
  • 10 - Settle:
Enum: 1 2 3 4 5 6 7 8 10
targetTransactionId
string or null <uuid>

Transaction Id for Void, Capture, Refund | Conditional

amount
number or null <double>

Transaction amount | Conditional
Required when transactionType is:
1 - Authorization
2 - Sale
3 - Capture
5 - Refund
7 - RefundWORef
8 - TipAdjustment

useCardPrice
boolean or null

Set the type of price being sent in the amount parameter. This field is mandatory only if the merchant’s ZeroCostProcessingOption is Dual Pricing. For other ZeroCostProcessingOption values, set it as null.

If ZeroCostProcessingOption is Dual Pricing, set useCardPrice=true if the amount contains the card price, or useCardPrice=false if the amount contains the cash price. The application will automatically calculate the total amounts by each payment method based on these inputs.

currencyId
integer or null <int32>

Transaction currency | Conditional
Required when transactionType is:
1 - Authorization
2 - Sale
3 - Capture
5 - Refund
7 - RefundWORef
8 - TipAdjustment

paymentProcessorId
string or null <uuid>

Set the Payment Processor ID to be used in the transaction. If not provided, it will use the merchant’s default processor.

terminalId
string <uuid>

Terminal ID related to the terminal that will initiate and handle the transaction. Terminal must be in the semi-integrated mode and available (online and ready)

customerId
string or null <uuid>

Optional Customer ID associated with the transaction.

waitForAcceptanceByTerminal
boolean

Set the response mode to short or long polling.

If true (long polling): HTTP response will be provided once the terminal accepts/declines to initiate the transaction or a timeout happens (terminal does not respond). Follow-up calls to get the POS Transaction By ID should be done to retrieve the latest information of the transaction submission.

If false (short polling): HTTP response will be returned immediately, while the terminal is still receiving the transaction request. Follow-up calls to get the POS Transaction By ID should be done to retrieve the latest information of the transaction initiation and submission.

readingMethodId
integer <int32> (PosService.Contracts.Enums.PosTransactionReadingMethod)

Set the card reading method for the transaction.

Possible values:

  • 1 - Reading: Regular card reading method (Tap, Insert or Swipe) [default]
  • 2 - KeyedId: Manual entry of card details (Keyed-in)
Enum: 1 2
requestPaymentMethodStorageConsent
boolean

Set to true to show popup about saving customer payment method information on the terminal

Responses
200

Success

400

Bad Request

post/pos-api/v1/pos-transactions
Request samples
application/json
{
  • "posDeviceId": "000000001",
  • "referenceId": "10001",
  • "transactionTypeId": 2,
  • "targetTransactionId": null,
  • "amount": 10,
  • "useCardPrice": null,
  • "currencyId": 1,
  • "paymentProcessorId": "00000000-0000-0000-0000-000000000000",
  • "terminalId": "00000000-0000-0000-0000-000000000000",
  • "customerId": null,
  • "waitForAcceptanceByTerminal": false,
  • "readingMethodId": null,
  • "requestPaymentMethodStorageConsent": false
}
Response samples
application/json
{
  • "posTransactionId": "00000000-0000-0000-0000-000000000000",
  • "statusId": 1,
  • "status": "TerminalConnecting"
}

Get POS Transactions List of current merchant.

SecurityBearer or Bearer or Bearer or Bearer
Request
query Parameters
page
integer <int32>
pageSize
integer <int32>
asc
boolean
orderBy
string
terminalId
string <uuid>

TerminalId to filter by

Responses
200

Success

400

Bad Request

404

Not Found

get/pos-api/v1/pos-transactions
Request samples
Response samples
application/json
{
  • "page": 0,
  • "pageSize": 0,
  • "asc": true,
  • "orderBy": "string",
  • "terminalId": "57e69e1b-2c00-4a26-b5e3-44617c6cc659"
}

Get POS Transaction by ID.

SecurityBearer or Bearer or Bearer or Bearer
Request
path Parameters
id
required
string <uuid>

ID of POS transaction

query Parameters
waitForTransactionProcessing
boolean

Wait for transition to one of completed statuses or timeout happening. If true - HTTP response will wait till transaction completion/failing/cancelling or timeout. If false - HTTP response will be returned immediately. Default value - false

Responses
200

Success

400

Bad Request

404

Not Found

get/pos-api/v1/pos-transactions/{id}
Request samples
Response samples
application/json
{
  • "id": "00000000-0000-0000-0000-000000000000",
  • "createdOn": "2025-02-02T13:44:57.9903202+00:00",
  • "modifiedOn": "2025-02-03T13:44:57.9903251Z",
  • "merchantId": "00000000-0000-0000-0000-000000000000",
  • "terminalId": "00000000-0000-0000-0000-000000000000",
  • "paymentProcessorId": "00000000-0000-0000-0000-000000000000",
  • "posDeviceId": "000000001",
  • "referenceId": "10001",
  • "posTransactionStatusId": 6,
  • "posTransactionStatus": "Completed",
  • "transactionId": "00000000-0000-0000-0000-000000000000",
  • "amount": 10,
  • "currencyId": 1,
  • "targetTransactionId": null,
  • "transactionTypeId": 2,
  • "transactionType": "Sale",
  • "isCompleted": true,
  • "transaction": {
    },
  • "transactionReceipt": {
    }
}

Cancel POS Transaction by ID.

SecurityBearer or Bearer or Bearer or Bearer
Request
path Parameters
id
required
string <uuid>

ID of POS transaction

Responses
200

Success

post/pos-api/v1/pos-transactions/{id}/cancel
Request samples
Response samples
application/json
{
  • "posTransactionId": "00000000-0000-0000-0000-000000000000",
  • "statusId": 1,
  • "status": "TerminalConnecting"
}