> For the complete documentation index, see [llms.txt](https://docs.maibmerchants.md/e-commerce/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.maibmerchants.md/e-commerce/ro/plati-one-click/inregistrare-card-in-sistemul-maib-ecomm.md).

# Înregistrare card în sistemul maib ecomm

| API endpoint (POST)                                 |
| --------------------------------------------------- |
| <https://api.maibmerchants.md/v1/savecard-oneclick> |

### **Parametri pentru request (body)**

<table><thead><tr><th width="172">Parametru</th><th width="135">Obligatoriu</th><th width="165">Tip</th><th>Descriere</th></tr></thead><tbody><tr><td>billerExpiry</td><td>DA</td><td>string(4)</td><td><p>Data (lună/an) pînă la care datele cardului vor fi păstrate în sistemul <strong>maib ecomm.</strong></p><p>Formatul valorii <strong>MMYY</strong> (de ex. <strong>1225</strong> -> 31 decembrie 2025 / ora 23:59:59).<br></p><p>Dacă valabilitatea cardului este mai mică decît valoarea transmisă în acest parametru, atunci datele cardului vor fi păstrate pînă la data valabilității cardului.</p></td></tr><tr><td>clientIp</td><td>DA</td><td>string(15)</td><td>IP Cumpărător</td></tr><tr><td>amount</td><td>NU*</td><td>number(decimal)</td><td><p>Suma tranzacției în formatul <strong>X.XX</strong></p><p>De exemplu: <strong>10.25</strong> (valuta MDL) -> 10 lei și 25 bani.</p><p></p><p>*Dacă parametrul este transmis va avea loc atît debitarea sumei din contul Cumpărătorului cît și salvarea datelor cardului în sistemul <strong>maib ecomm</strong>.</p><p></p><p>*Dacă parametrul nu este transmis, atunci datele cardului vor fi salvate fără a debita ceva din contul Cumpărătorului.</p></td></tr><tr><td>currency</td><td>DA</td><td>string(3)</td><td><p>Valuta tranzacției (MDL/EUR/USD)</p><p></p></td></tr><tr><td>language</td><td>DA</td><td>string(2)</td><td><p>Limba în care va fi afișată pagina <strong>maib ecomm checkout.</strong></p><p>Valori posibile: ro/en/ru.</p></td></tr><tr><td>description</td><td>NU</td><td>string(124)</td><td><p>Descrierea plății.</p><p>Se afișează pe pagina <strong>maib ecomm checkout</strong></p></td></tr><tr><td>clientName</td><td>NU</td><td>string(128)</td><td>Nume Cumpărător</td></tr><tr><td>email</td><td>NU</td><td>string(40)</td><td>Email Cumpărător</td></tr><tr><td>phone</td><td>NU</td><td>string(40)</td><td>Telefon Cumpărător</td></tr><tr><td>orderId</td><td>NU</td><td>string(36)</td><td>Identificatorul comenzii de pe website/app</td></tr><tr><td>delivery</td><td>NU</td><td>number(decimal)</td><td>Costul livrării în format <strong>X.XX</strong></td></tr><tr><td>items</td><td>NU</td><td><p>array</p><p>max. 50 items</p></td><td>Produsele sau serviciile din coșul Cumpărătorului</td></tr><tr><td><ul><li><em>id</em></li></ul></td><td>nu</td><td>string(36)</td><td>ID produs</td></tr><tr><td><ul><li><em>name</em></li></ul></td><td>nu</td><td>string(128)</td><td>Nume produs</td></tr><tr><td><ul><li><em>price</em></li></ul></td><td>nu</td><td>number(decimal)</td><td>Preț produs în format <strong>X.XX</strong> </td></tr><tr><td><ul><li><em>quantity</em> </li></ul></td><td>nu</td><td>integer(32)</td><td>Cantitatea produselor</td></tr><tr><td>callbackUrl</td><td>NU</td><td>string(2048)</td><td><p>Link-ul unde Merchant-ul va primi răspunsul final cu starea și datele tranzacției.</p><p>Dacă nu se transmite acest parametru valoarea sa va fi preluată din <strong>maibmerchants</strong>.</p></td></tr><tr><td>okUrl</td><td>NU</td><td>string(2048)</td><td><p>Link-ul unde Cumpărătorul va fi redirecționat dacă tranzacția este reușită.</p><p>(GET request: okUrl + payId&#x26;orderId&#x26;billerId)</p><p>Dacă nu se transmite acest parametru valoarea sa va fi preluată din <strong>maibmerchants</strong>. </p></td></tr><tr><td>failUrl<br></td><td>NU</td><td>string(2048)</td><td><p>Link-ul unde Cumpărătorul va fi redirecționat dacă tranzacția a eșuat.</p><p>(GET request: failUrl + payId&#x26;orderId)</p><p>Dacă nu se transmite acest parametru valoarea sa va fi preluată din <strong>maibmerchants</strong>. </p></td></tr></tbody></table>

**Exemplu**

{% tabs %}
{% tab title="Cu parametrul "amount"" %}

```json
{
"billerExpiry": "1225",
"amount": 6.25,
"currency": "MDL",
"clientIp": "135.250.245.121",
"language": "ro",
"description": "Descriere",
"clientName": "Nume Prenume",
"email": "customer@gmail.com",
"phone": "069123456",
"orderId": "123",
"delivery": 1.25,
"items": [
{
"id": "10",
"name": "Produs 1",
"price": 2.50,
"quantity": 2
}
],
"callbackUrl": "https://example.com/callback",
"okUrl": "https://example.com/ok",
"failUrl": "https://example.com/fail"
}
```

{% endtab %}

{% tab title="Fără parametrul "amount"" %}

```json
{
"billerExpiry": "1225",
"currency": "MDL",
"clientIp": "135.250.245.121",
"language": "ro",
"clientName": "Nume Prenume",
"email": "customer@gmail.com",
"phone": "069123456",
"callbackUrl": "https://example.com/callback",
"okUrl": "https://example.com/ok",
"failUrl": "https://example.com/fail"
}
```

{% endtab %}
{% endtabs %}

### **Parametri răspuns intermediar**

<table><thead><tr><th width="238.33333333333331">Parametru</th><th width="144">Tip</th><th>Descriere</th></tr></thead><tbody><tr><td>result</td><td>object</td><td>Obiect care conține identificatorul tranzacției și link-ul pentru redirecționare Cumpărător</td></tr><tr><td><ul><li>payId</li></ul></td><td>string</td><td>Identificatorul tranzacției atribuit de către <strong>maib ecomm</strong> </td></tr><tr><td><ul><li>orderId</li></ul></td><td>string</td><td>Identificatorul comenzii de pe website/app</td></tr><tr><td><ul><li>payUrl</li></ul></td><td>string</td><td>Link-ul către pagina <strong>maib ecomm checkout</strong> unde Cumpărătorul trebuie să fie redirecționat pentru a introduce datele cardului</td></tr><tr><td>ok</td><td>boolean</td><td><p>Stare procesare request/tranzacție:</p><p><em>true</em> - nu sunt erori;</p><p><em>false -</em> sunt erori (detaliile despre erori vor fi în afișate în <em>errors).</em></p></td></tr><tr><td>errors</td><td>array</td><td>Erori procesare request/tranzacție. <a href="/e-commerce/ro/erori/erori-api.md"><mark style="color:blue;">Tabelul cu erori</mark></a></td></tr><tr><td><ul><li>errorCode</li></ul></td><td>string</td><td>Cod eroare</td></tr><tr><td><ul><li>errorMessage</li></ul></td><td>string</td><td>Descriere eroare</td></tr><tr><td><ul><li>errorArgs</li></ul></td><td>object</td><td>Obiectul conține parametri cu detalii despre eroare</td></tr></tbody></table>

**Exemplu răspuns intermediar**

{% tabs %}
{% tab title="Fără erori" %}

```json
{
"result": {
"payId": "f16a9006-128a-46bc-8e2a-77a6ee99df75",
"orderId": "123",
"payUrl": "https://maib.ecommerce.md/ecomm01/ClientHandler?trans_id=rEsfhyIk8s9ypxkcS9fj/3C8FqA="
},
"ok": true
}
```

{% endtab %}

{% tab title="Cu erori" %}

```json
{
    "errors": [
        {
            "errorCode": "12034",
            "errorMessage": "Parameter 'billerExpiry' has invalid format. Valid format is 'MMYY'",
            "errorArgs": {
                "parameter": "billerExpiry"
            }
        }
    ],
    "ok": false
}
```

{% endtab %}
{% endtabs %}

### **Parametri răspuns final (pe Callback URL)**

<table><thead><tr><th width="218.33333333333331">Parametru</th><th width="162">Tip</th><th>Descriere</th></tr></thead><tbody><tr><td>result</td><td>object</td><td>Obiect care conține datele tranzacției</td></tr><tr><td><ul><li>payId</li></ul></td><td>string</td><td>Identificatorul tranzacției atribuit de către <strong>maib ecomm</strong> </td></tr><tr><td><ul><li>orderId</li></ul></td><td>string</td><td>Identificatorul comenzii de pe website/app</td></tr><tr><td><ul><li>billerId</li></ul></td><td>string</td><td><p>Identificatorul cardului salvat în <strong>ecomm maib.</strong></p><p>Următoarele plăți one-click se vor iniția cu transmiterea acestui identificator în request (execute-oneclick).</p></td></tr><tr><td><ul><li>billerExpiry</li></ul></td><td>string</td><td><p>Data (lună/an) pînă la care datele cardului vor fi păstrate în sistemul <strong>maib ecomm.</strong></p><p>Formatul valorii <strong>MMYY</strong> (de ex. <strong>1225</strong> -> 31 decembrie 2025 / ora 23:59:59).<br></p><p>Dacă valabilitatea cardului este mai mică decît valoarea transmisă anterior în request, atunci în răspuns veți primi data expirării cardului.</p></td></tr><tr><td><ul><li>status</li></ul></td><td>string</td><td><p><a href="/e-commerce/ro/starea-tranzactiei-si-3d-secure.md#starea-tranzactiei">Starea tranzacției</a></p><p>OK - Dacă a fost transmis parametrul <em>amount</em> și tranzacția este cu succes (cardul a fost înregistrat).</p><p>PENDING - Dacă nu a fost transmis parametrul <em>amount</em> (cardul a fost înregistrat).</p></td></tr><tr><td><ul><li>statusCode</li></ul></td><td>string</td><td>Codul stării tranzacției</td></tr><tr><td><ul><li>statusMessage</li></ul></td><td>string</td><td>Detalii despre starea tranzacției</td></tr><tr><td><ul><li>threeDs</li></ul></td><td>string</td><td><a href="/e-commerce/ro/starea-tranzactiei-si-3d-secure.md#autentificarea-3d-secure">Rezultatul autentificării 3-D Secure</a></td></tr><tr><td><ul><li>rrn</li></ul></td><td>string</td><td>RRN - Identificatorul tranzacției generat de către maib ecomm</td></tr><tr><td><ul><li>approval</li></ul></td><td>string</td><td>Approval Code - Identificatorul de aprobare a tranzacției generat de către banca emitentă a cardului.</td></tr><tr><td><ul><li>cardNumber</li></ul></td><td>string</td><td>Numărul cardului hașurat</td></tr><tr><td><ul><li>amount</li></ul></td><td>number(decimal)</td><td><p>Suma tranzacției în format <strong>X.XX</strong></p><p>Este prezent doar dacă parametrul <em>amount</em> a fost transmis.</p></td></tr><tr><td><ul><li>currency</li></ul></td><td>string</td><td><p>Valuta tranzacției (MDL/EUR/USD)</p><p>Este prezent doar dacă parametrul <em>currency</em> a fost transmis.</p></td></tr><tr><td>signature</td><td>string</td><td>Semnătură validare răspuns.<br></td></tr></tbody></table>

**Exemplu răspuns final (pe Callback URL)**

{% tabs %}
{% tab title="Cu parametrul "amount"" %}

```json
{
"result": {
"payId": "f16a9006-128a-46bc-8e2a-77a6ee99df75",
"billerId": "92f72473-f324-42d7-95fd-9c75c2947408",
"billerExpiry": "1225",
"orderId": "123",
"status": "OK",
"statusCode": "000",
"statusMessage": "Approved",
"threeDs": "AUTHENTICATED",
"rrn": "331711380059",
"approval": "327593",
"cardNumber": "510218******1124",
"amount": 6.25,
"currency": "MDL"
},
"signature": "xxxxxxxxxxxxxxxxxxxx"
}
```

{% endtab %}

{% tab title="Fără parametrul "amount"" %}

```json
{
"result": {
"payId": "f16a9006-128a-46bc-8e2a-77a6ee99df75",
"billerId": "t78i8006-458a-46bc-9e0a-89a6ee11df68",
"billerExpiry": "1225",
"orderId": "123",
"status": "PENDING",
"threeDs": "AUTHENTICATED",
"cardNumber": "510218******1124",
"amount": 0,
"currency": "MDL"
},
"signature": "xxxxxxxxxxxxxxxxxxxx"
}
```

{% endtab %}
{% endtabs %}
