Ready plugin guide
Perfex CRM Integration
Connect Perfex CRM to NeroPay using server-side API calls and webhooks.
Perfex CRMCheckoutWebhooks
Recommended Perfex CRM flow
- Create or open the Perfex CRM order/invoice.
- Send a NeroPay API request from the server side.
- Store the returned NeroPay id on the Perfex CRM order/invoice record.
- Redirect the customer or display the payment link.
- Receive webhook confirmation and update the order/invoice status.
POST
/payment-linksCreate the NeroPay payment for a Perfex CRM order or invoice.
| Parameter | Type | Required | Description |
|---|---|---|---|
identifier | string | Yes | Unique order or invoice reference from Perfex CRM. |
amount | decimal | Yes | Order total in major currency units. |
currency | string | Yes | Currency code from the order. |
details | string | Yes | Order or invoice description. |
success_url | url string | Yes | Return URL after success. |
cancel_url | url string | Yes | Return URL after cancellation. |
ipn_url | url string | Yes | Webhook URL handled by the plugin. |
metadata | object | Optional | Short 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": "PERFEX_CRM-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 Perfex CRM order as paid.
transaction.succeeded => paid
transaction.cancelled => cancelled
transaction.failed => failed
refund.succeeded => refunded