Skip to content

Interacting with payment terminals

A payment terminal represents a device which can accept payment from the user physically, like a credit card terminal.
These devices are typically interacted with by applications running on check-in/check-out terminals, to accept direct payment from the user.

Querying Payment Terminals

Use the paymentTerminals connection to get all terminals:

query paymentTerminals {
paymentTerminals {
edges {
node {
id
label
}
}
}
}

You can provide the filters parameter to filter the payment terminals by campsite or external ID.

Starting a payment or refund

To start the payment process on a payment terminal, use the initiatePayment mutation.

mutation startPaymentProcess($terminalId: GlobalID!, $amount: Decimal!) {
initiatePayment(terminalId: $terminalId, amount: $amount) {
__typename
...on PaymentTerminalPaymentCommand {
id
executionState
}
...on OperationInfo {
messages {
kind, message
}
}
}
}

You will receive either a PaymentTerminalPaymentCommand to indicate a successful request or a list of messages indicating any errors:

{
"startPaymentProcess": {
"__typename": "PaymentTerminalPaymentCommand",
"executionState": "CONFIRMED"
}
}

In the same way you can use initiateRefund to start a refund process.