# Simulare plată (Sandbox)

### **POST**`/v2/mia/test-pay`

Simularea plății este permisă exclusiv în mediul sandbox (testare). Acest endpoint permite testarea procesului de plată prin transmiterea unui payload cu detalii despre plată.

***

#### Cerere (Request)

Metodă: `POST`

URL: `/v2/mia/test-pay`

***

#### Parametrii cerere (body JSON)

| Parametru   | Tip              | Obligatoriu | Descriere                              |
| ----------- | ---------------- | ----------- | -------------------------------------- |
| `qrId`      | string (guid)    | Da          | Identificatorul unic al codului QR     |
| `amount`    | number (decimal) | Da          | Suma plății                            |
| `iban`      | string(100)      | Da          | IBAN-ul plătitorului                   |
| `currency`  | string (enum)    | Da          | Moneda plății (valori posibile: `MDL`) |
| `payerName` | string(200)      | Da          | Numele abreviat al plătitorului        |

#### Request example

```json
{
  "qrId": "123e4567-e89b-12d3-a456-426614174000",
  "amount": 10,
  "iban": "MD88AG000000011621810140",
  "currency": "MDL",
  "payerName": "John D."
}
```

***

#### Parametri de răspuns (Response parameters)

#### `result`

**Tip:** `object`\
Obiectul care conține rezultatul răspunsului.

***

#### Câmpuri ale obiectului `result`

| Câmp           | Tip              | Descriere                                                                                                                      |
| -------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `qrId`         | string(guid)     | Identificatorul unic al codului QR.                                                                                            |
| `qrStatus`     | string(enum)     | Starea codului QR. Valori posibile: `Active`, `Inactive`, `Expired`, `Paid`, `Cancelled`.                                      |
|                |                  | - **Active** – Stare pentru un cod QR activ.                                                                                   |
|                |                  | - **Inactive** – Stare pentru QR Static sau Hibrid dacă nu a fost efectuată nicio plată în ultimele 30 de zile.                |
|                |                  | - **Expired** – Stare pentru QR Dinamic sau Hibrid dacă perioada de valabilitate a expirat și nu a fost efectuată nicio plată. |
|                |                  | - **Paid** – Stare pentru QR Dinamic sau Hibrid după ce o plată a fost efectuată.                                              |
|                |                  | - **Cancelled** – Stare după solicitarea de anulare (`POST /v2/mia/qr/{qrId}/cancel`).                                         |
| `orderId`      | string(100)      | Identificatorul comenzii de pe partea comerciantului.                                                                          |
| `payId`        | string(guid)     | Identificatorul unic al plății.                                                                                                |
| `amount`       | number(decimal)  | Suma plății.                                                                                                                   |
| `commission`   | number(decimal)  | Comisionul perceput pentru plată.                                                                                              |
| `currency`     | string(enum)     | Moneda în care a fost efectuată plata. Valori posibile: `MDL`. Format: ISO 4217.                                               |
| `payerName`    | string(200)      | Numele prescurtat al plătitorului.                                                                                             |
| `payerIban`    | string(100)      | IBAN-ul plătitorului (International Bank Account Number).                                                                      |
| `executedAt`   | string(datetime) | Data și ora la care a fost executată plata. Format: ISO 8601-1:2019.                                                           |
| `signatureKey` | string           | Cheia semnăturii de validare a notificării.                                                                                    |

***

#### Alte câmpuri de răspuns

| Câmp     | Tip     | Descriere                                                                                            |
| -------- | ------- | ---------------------------------------------------------------------------------------------------- |
| `ok`     | boolean | Statusul procesării cererii. `true` – fără erori; `false` – a apărut o eroare (detalii în `errors`). |
| `errors` | array   | Lista erorilor întâmpinate în procesarea cererii.                                                    |

**Obiecte în `errors`**

| Câmp           | Tip    | Descriere          |
| -------------- | ------ | ------------------ |
| `errorCode`    | string | Codul erorii.      |
| `errorMessage` | string | Descrierea erorii. |

#### Response example

```json
{
  "result": {
    "qrId": "123e4567-e89b-12d3-a456-426614174000",
    "qrStatus": "Active",
    "orderId": "123",
    "payId": "6d24e4a5-c6bf-4d3e-bf7a-8d2123faf4e9",
    "amount": 10,
    "commission": 2.50,
    "currency": "MDL",
    "payerName": "John D.",
    "payerIban": "MD88AG000000011621810140",
    "executedAt": "2024-11-29T10:56:52.1380956+00:00",
    "signatureKey": "592b6999-fdd0-4fd3-9708-5cb9df590dee"
  },
  "ok": true
}
```

***

#### Note&#x20;

* Endpoint-ul este disponibil doar în mediul sandbox pentru testare.
* În cazul în care `ok` este `false`, câmpul `errors` va conține detalii despre erori.
* Valoarea `qrStatus` reflectă starea actuală a codului QR după simularea plății.
* Verificarea cheii semnăturii din câmpul `result.signatureKey` trebuie făcută conform algoritmului definit în documentația de notificări (callback).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.maibmerchants.md/mia-qr-api/simulare-plata-sandbox.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
