+40 757100104cervitsol@gmail.com

Cum integrezi Netopia într-un magazin online PHP — tutorial 2026

Pași concreți pentru integrare Netopia Mobile Pay 2.0 cu PHP custom: API key, signature, IPN, recurring.

D
devERP02 May 2026
10 min citire

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ă)

  1. Clientul apasă „Plătește" pe magazinul tău
  2. Backend-ul tău cheamă API Netopia v2/payment/card/start cu orderID, amount, billing
  3. Netopia returnează paymentURL — redirect clientul acolo
  4. Client introduce datele de pe card (3DS dacă e cazul)
  5. Netopia trimite IPN (server-to-server) pe URL-ul tău /payment/ipn
  6. Verifici signature, marchezi comanda ca paid în DB
  7. Client e redirect pe returnUrl al 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ă:

  1. Verifici signature-ul (HMAC) ca să nu accepți IPN-uri false
  2. Returnezi HTTP 200 cu JSON {"errorCode":0} sau Netopia reîncearcă
  3. 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€.

Ai un proiect?

Hai să discutăm despre site-ul tău.

Ofertă gratuită în 24 de ore. Sau folosește configuratorul pentru estimare live.