Netopia e cel mai folosit procesator de plăți cu cardul în România (după 2024 când ROMCARD s-a integrat sub umbrela lor). Dacă ai magazin online, e probabil să-l integrezi. Iată cum.
1. Cont și credențiale
Contractezi cu Netopia (account manager dedicat). Primești:
- API Key — secret pentru autentificare
- POS Signature — identifică magazinul tău
- Sandbox URL — pentru testare (https://sandboxsecure.mobilpay.ro)
- Production URL — pentru live (https://secure.mobilpay.ro)
2. Flow plată (cum funcționează)
- Clientul apasă „Plătește" pe magazinul tău
- Backend-ul tău cheamă API Netopia
v2/payment/card/startcu orderID, amount, billing - Netopia returnează
paymentURL— redirect clientul acolo - Client introduce datele de pe card (3DS dacă e cazul)
- Netopia trimite IPN (server-to-server) pe URL-ul tău
/payment/ipn - Verifici signature, marchezi comanda ca paid în DB
- Client e redirect pe
returnUrlal tău cu thank-you page
3. Cod minim (PHP)
// Pornire plată
$payload = [
"orderID" => "ORDER-" . time(),
"amount" => 99.90,
"currency" => "RON",
"description" => "Comandă magazin online",
"billing" => [
"type" => "person",
"firstName" => "Ion",
"lastName" => "Popescu",
"email" => "ion@example.ro",
"phone" => "+40700000000",
"city" => "București"
],
"url" => [
"return" => "https://magazinul-tau.ro/payment/return",
"confirm" => "https://magazinul-tau.ro/payment/ipn"
],
"config" => [
"emailTemplate" => "default",
"language" => "ro"
]
];
$ch = curl_init("https://secure.mobilpay.ro/v2/payment/card/start");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Authorization: Bearer " . $apiKey,
"X-Pos-Signature: " . $posSignature
]
]);
$response = json_decode(curl_exec($ch), true);
// $response["payment"]["paymentURL"] — redirect client aici
4. IPN handler (server-to-server confirmation)
Netopia trimite POST la URL-ul tău cu rezultatul plății. Trebuie să:
- Verifici signature-ul (HMAC) ca să nu accepți IPN-uri false
- Returnezi HTTP 200 cu JSON
{"errorCode":0}sau Netopia reîncearcă - Actualizezi statusul comenzii în DB doar dacă status = „confirmed"
5. Recurring (plăți cu binding)
Pentru abonamente: la prima plată trimiți createBinding: true. La success Netopia returnează un bindingId. Pentru taxarea automată ulterioară, folosești endpoint-ul v2/payment/card/recurrent cu bindingId în loc de datele cardului.
6. Erori comune
- „Invalid signature": API key sau POS signature greșite — verifică în panou Netopia
- „Order already exists": refolosești orderID — generează unul nou de fiecare dată
- IPN nu vine: URL-ul tău trebuie HTTPS public, fără auth. Verifică firewall
7. Ce facem la devERP
Avem integrare Netopia gata-făcută în toate magazinele noastre (vezi /servicii/ecommerce) — cu wrapper PHP propriu, retry logic, audit log, dashboard în admin.
Vrei să integrăm noi la tine? Modul „Plăți online (Netopia/Stripe)" în configurator — 390€.
Hai să discutăm despre site-ul tău.
Ofertă gratuită în 24 de ore. Sau folosește configuratorul pentru estimare live.
