Ustvari naročilo
Oddajte novo naročilo z izbiro produktov, podrobnostmi plačila in podatki o stranki.
POST /orders
Telo zahteve
{
"products": [
{
"productId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"productTypeId": 1,
"quantity": 1,
"vehiclePlate": "AB123CD",
"vehicleCountryIsocode": "AT",
"vehicleCategoryId": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
"startAt": "2026-04-01T00:00:00.000Z",
"endAt": "2026-04-10T23:59:59.000Z",
"driverFirstname": "John",
"driverLastname": "Doe"
}
],
"payment": {
"type": "CARD",
"paymentMethodId": "pm_1234567890abcdef",
"returnUrl": "https://yourapp.com/payment/callback"
},
"customer": {
"email": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"phone": "+43123456789"
},
"address": {
"countryIsocode": "AT",
"city": "Vienna",
"addressLine": "Mariahilfer Strasse 1",
"postalCode": "1060",
"taxNumber": "ATU12345678",
"companyName": "Doe GmbH"
},
"idempotencyKey": "unique-order-key-12345",
"externalReference": "YOUR-ORDER-REF-001",
"callbackUrl": "https://yourapp.com/webhooks/vignetim"
}
DTO produktov
| Field | Type | Required | Opis |
|---|
productId | UUID | Da | ID produkta iz kataloga |
productTypeId | integer | Da | Tip produkta: 1 = VINJETA, 2 = ESIM, 3 = ZAVAROVANJE, 4 = PLAČILO_KAZNI |
quantity | integer | Da | Število enot |
vehiclePlate | string | Pogojno | Registrska tablica vozila (zahtevano za VINJETO) |
vehicleCountryIsocode | string | Pogojno | Država registracije vozila (zahtevano za VINJETO) |
vehicleCategoryId | UUID | Pogojno | Kategorija vozila (zahtevano za VINJETO) |
startAt | ISO 8601 | Pogojno | Datum začetka veljavnosti (zahtevano za VINJETO) |
endAt | ISO 8601 | Pogojno | Datum konca veljavnosti (zahtevano za VINJETO) |
driverFirstname | string | Ne | Ime voznika |
driverLastname | string | Ne | Priimek voznika |
DTO plačila
| Field | Type | Required | Opis |
|---|
type | string | Da | Eden od: CARD, GOOGLE_PAY, APPLE_PAY, IDEAL, REVOLUT, BANCONTACT |
paymentMethodId | string | Pogojno | Stripe žeton plačilne metode (zahtevano za CARD) |
returnUrl | string | Pogojno | HTTPS URL za povratni klic 3DS preusmeritve (zahtevano za CARD) |
Usmerjanje plačil
- Plačila s kartico (CARD) se usmerjajo prek NestPay in morda zahtevajo preverjanje 3D Secure.
- GOOGLE_PAY, APPLE_PAY, IDEAL, REVOLUT in BANCONTACT se usmerjajo prek Stripe.
DTO stranke
| Field | Type | Required | Opis |
|---|
email | string | Da | E-poštni naslov stranke |
firstName | string | Da | Ime stranke |
lastName | string | Da | Priimek stranke |
phone | string | Ne | Telefonska številka stranke (priporočen format E.164) |
DTO naslova
| Field | Type | Required | Opis |
|---|
countryIsocode | string | Da | ISO koda države |
city | string | Da | Ime mesta |
addressLine | string | Da | Naslov ulice |
postalCode | string | Ne | Poštna številka |
taxNumber | string | Ne | Davčna identifikacijska številka |
companyName | string | Ne | Ime podjetja (za poslovne stranke) |
Dodatna polja
| Field | Type | Required | Opis |
|---|
idempotencyKey | string | Ne | Edinstven ključ za preprečevanje podvojenih naročil. Enak ključ z enako vsebino vrne prvotno naročilo (priporočeno). |
externalReference | string | Ne | Vaša interna referenca naročila za sledenje |
callbackUrl | string | Ne | URL za prejemanje posodobitev statusa naročila |
Odgovor
201 Ustvarjeno
{
"id": "ord-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "PENDING",
"redirectUrl": "https://pay.vignetim.com/3ds/verify/abc123",
"clientSecret": "pi_1234567890_secret_abcdef",
"products": [
{
"productId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"productTypeId": 1,
"quantity": 1,
"status": "PENDING"
}
],
"total": {
"amount": 11.5,
"currency": "EUR"
},
"externalReference": "YOUR-ORDER-REF-001",
"createdAt": "2026-03-20T14:30:00.000Z"
}
- redirectUrl -- Prisotno, ko je zahtevano preverjanje 3D Secure (plačila s kartico). Preusmerite stranko na ta URL.
- clientSecret -- Prisotno za plačila, usmerjena prek Stripe. Uporabite to s Stripe.js za potrditev plačila na strani odjemalca.
409 Konflikt (idempotentno)
Če je isti idempotencyKey poslan z enako vsebino, se vrne prvotno naročilo s statusno kodo 409. To je varno za ponovni poskus.
{
"statusCode": 409,
"message": "Order already exists for this idempotency key",
"error": "Conflict"
}