Payments
Terminal Payments
Create in-person payment requests for NeroPay terminal readers.
Card terminalReader actionPOS
Create terminal payment
POST
/terminal/paymentsSends a payment request to a registered terminal reader.
| Parameter | Type | Required | Description |
|---|---|---|---|
amount | decimal | Yes | Payment amount in major units. |
currency | string | Yes | Currency code. |
reader_id | string | Yes | NeroPay reader id returned by POST /readers or GET /readers. |
location_id | string | Optional | NeroPay location id for reconciliation. |
description | string | Optional | Payment description. |
reference | string | Optional | Your order or POS ticket reference. |
connect_application_fee | decimal | Optional | NeroConnect platform fee where applicable. |
'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $secretKey,
'Accept: application/json',
'Content-Type: application/json',
'X-NeroPay-Timestamp: ' . $timestamp,
'X-NeroPay-Signature: ' . $signature,
'Idempotency-Key: ' . bin2hex(random_bytes(16)),
],
CURLOPT_POSTFIELDS => $rawBody,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $response;
{
"success": true,
"data": {
"id": "term_pay_nero_123",
"status": "pending",
"reader_id": "tmr_nero_123",
"transaction": {
"id": 6636605,
"status": "pending",
"card_read_method": "Card Terminal"
}
}
}
Cancel reader action
If a reader is waiting for a customer and you need to cancel the action, use POST /terminal/readers/.
{
"success": false,
"error": {
"code": "resource_not_found",
"message": "The reader was not found for this merchant.",
"details": null
}
}