NeroPay Docs
API & Integrations

PrestaShop Integration

Ready plugin guide

PrestaShop Integration

Connect PrestaShop to NeroPay using server-side API calls and webhooks.

PrestaShopCheckoutWebhooks

Recommended PrestaShop flow

  1. Create or open the PrestaShop order/invoice.
  2. Send a NeroPay API request from the server side.
  3. Store the returned NeroPay id on the PrestaShop order/invoice record.
  4. Redirect the customer or display the payment link.
  5. Receive webhook confirmation and update the order/invoice status.
POST/payments

Create the NeroPay payment for a PrestaShop order or invoice.

ParameterTypeRequiredDescription
identifierstringYesUnique order or invoice reference from PrestaShop.
amountdecimalYesOrder total in major currency units.
currencystringYesCurrency code from the order.
detailsstringYesOrder or invoice description.
success_urlurl stringYesReturn URL after success.
cancel_urlurl stringYesReturn URL after cancellation.
ipn_urlurl stringYesWebhook URL handled by the plugin.
metadataobjectOptionalShort references such as order id, invoice id or customer id.
 '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": "pay_nero_123",
    "identifier": "PRESTASHOP-1001",
    "status": "pending",
    "checkout_url": "https://eu.neropay.app/checkout/..."
  }
}

Webhook update

When transaction.succeeded is received, verify the event, retrieve the transaction if needed and mark the PrestaShop order as paid.

transaction.succeeded => paid
transaction.cancelled => cancelled
transaction.failed => failed
refund.succeeded => refunded