- A payment profile that enables the
seitatech.in_personpayment method. - The
order.storeidentifiers that route the payment to a specific terminal. - A
publishconfiguration that auto-initiates the payment on the terminal.
Endpoint
The Checkout API is now available under
https://api.dintero.com/v1/accounts/{account_id}/payments/.The previous https://checkout.dintero.com/v1/ base is still supported, so existing integrations continue to work without changes.1. Enable the payment method (payment profile)
In-person payments are enabled on a payment profile in Dintero Backoffice → Settings → Payment Profiles. Enable Seitatech In-person on the profile you reference withprofile_id, and the session accepts terminal payments without any payment-method configuration in the request body.
Managing payment methods through profiles means you can add or change methods without redeploying integration code. Avoid sending a hardcoded
configuration.seitatech block on the request - let the profile drive the payment method.2. Route to a terminal (order.store identifiers)
The payment profile toggles the payment method on; order.store says which physical terminal the payment runs on. The terminal ID belongs in order.store.terminal_id.
The
order.store.id you use today in the payment-link flow is fine to keep using - in-person payments use the same store identifier. You just need to add terminal_id and payout_destination_id alongside it.3. Auto-initiate the payment on the terminal (publish)
Add a publish push/terminal configuration to the session request to auto-initiate the payment on the terminal as soon as the session is created.
seitatech.in_person is the only enabled payment method or there are other payment methods on the payment profile. The publish configuration auto-initiates the payment on the terminal in both cases.
Sale: full request
This example combines all three pieces to create a session that immediately triggers a payment on terminalT0292 at store oslo-center for 399.00 NOK. The payment profile referenced by profile_id has Seitatech In-person enabled, and the publish configuration auto-initiates the payment on the terminal.
Amounts are in the smallest unit of the currency.
39900 is 399.00 NOK.After you create the session
Cancelling a payment
Once Dintero starts the transaction on the terminal, you can cancel it in two ways:- From the terminal — the customer or operator cancels directly on the device.
- Via the API — call POST /sessions/{session_id}/cancel to cancel the session programmatically.
DECLINED.
Receiving the result
Use thecallback_url and webhooks to know when the transaction is authorized and captured. Terminal payments use auto-capture by default. See Checkout webhooks and transaction management.
Refund
seitatech.in_person supports both full and partial refunds. The refund
requires a terminal_id in the request body, and the cardholder must be
present at the terminal to approve by tapping their card.
Refunds use the standard refund endpoint:
Refund flow
- Your server sends the refund request. The API returns
202 Acceptedand the transaction receives anINITIATE_REFUNDevent while the status remainsCAPTURED. - The terminal prompts the cardholder to approve the refund by tapping their card.
- The refund completes when the cardholder approves, or is voided if they cancel on the terminal.
Terminal requirements
The terminal must be active on the samepayout_destination_id as the original transaction. It does not have to be the same terminal that processed the original payment.
A valid terminal_id always returns 202 Accepted. If the terminal is offline, the INITIATE_REFUND event expires after 120 seconds and the transaction is updated with a failed refund event.
Use
callback_url with report_event=REFUND or a webhooks subscription to receive a notification when the refund status is updated.