Verdmarket
Meldingen

Welkom bij Verdmarket!

Wij zijn blij u te verwelkomen op ons platform! Maak een account aan om toegang te krijgen tot de volledige B2B-catalogus. Voor nieuwe gebruikers die zich registreren in april — speciale commissietarieven!

Registreren

Verdmarket Leveranciers-API

REST-API voor het programmatisch beheren van uw producten, voorraad, prijzen en bestellingen.

Basis-URL

https://www.verdmarket.com.mature-black-wombat.65-108-70-81.cpanel.site/api/v1/supplier

Beschikbare eindpunten

Methode Eindpunt Beschrijving
GET/productsProducten weergeven
GET/products/{id}Productdetails ophalen
POST/productsProduct aanmaken
POST/products/{id}Product bijwerken
POST/products/{id}/deleteProduct verwijderen
GET/products/{id}/imagesProductafbeeldingen ophalen
POST/products/{id}/imagesAfbeeldingen toevoegen via URL
POST/products/{id}/images/{imageId}/deleteAfbeelding verwijderen
POST/products/{id}/images/{imageId}/primaryHoofdafbeelding instellen
POST/stockBulk-voorraadupdate
POST/pricesBulk-prijsupdate
GET/ordersBestellingen weergeven
GET/orders/{id}Besteldetails ophalen
POST/orders/{id}/statusBestelstatus bijwerken
GET/categoriesCategorieën weergeven

Authenticatie

Alle API-verzoeken vereisen een Bearer-token in de Authorization-header.

Maak uw API-sleutel aan via Leveranciersdashboard → Winkelprofiel → API-sleutels.

Authorization: Bearer YOUR_API_KEY
Belangrijk: Uw API-sleutel wordt slechts één keer getoond bij aanmaak. Bewaar deze veilig. Sleutels worden op onze servers gehasht — wij kunnen ze niet ophalen. Bij verlies: trek de oude in en maak een nieuwe aan.

Snelheidslimieten

Standaard: 1.000 verzoeken per uur per API-sleutel.

Snelheidslimiet-informatie wordt in antwoord-headers teruggegeven:

HeaderBeschrijving
X-RateLimit-LimitMaximaal aantal verzoeken per uur
X-RateLimit-RemainingResterende verzoeken in huidig venster
X-RateLimit-ResetUnix-tijdstempel wanneer het venster wordt gereset
Retry-AfterSeconden tot opnieuw proberen (alleen bij 429)

Antwoordformaat

Alle antwoorden zijn JSON. Succesvolle antwoorden:

{
  "success": true,
  "data": { ... }
}

Foutantwoorden:

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Name is required."
  }
}

Producten

GET /products

Lijst uw producten met paginering en filtering.

Queryparameters

ParameterTypeBeschrijving
pageintPaginanummer (standaard: 1)
per_pageintItems per pagina (max: 100, standaard: 20)
statusstringFilter: active, inactive, pending
searchstringZoeken op naam of SKU

Voorbeeldantwoord

{
  "success": true,
  "data": {
    "products": [
      {
        "id": 42,
        "name": "Red Roses Premium",
        "sku": "ROSE-RED-001",
        "type": "flower",
        "base_price": 2.50,
        "unit": "stem",
        "stock_qty": 500,
        "stock_status": "in_stock",
        "is_active": true,
        "is_approved": true,
        "category": { "id": 3, "name": "Roses" },
        "primary_image": "/uploads/products/rose-red.jpg"
      }
    ],
    "pagination": {
      "current_page": 1,
      "total_pages": 5,
      "total_items": 94,
      "per_page": 20
    }
  }
}
GET /products/{id}

Eén product ophalen met afbeeldingen en varianten.

POST /products

Nieuw product aanmaken. Nieuwe producten vereisen goedkeuring van de beheerder voordat ze in de catalogus verschijnen.

Verzoekbody (JSON)

VeldTypeVerplichtBeschrijving
namestring*Productnaam
category_idint*Categorie-ID
base_pricefloat*Prijs in EUR
unitstring*steel, bos, doos, pak, stuk, kilogram, meter, rol
typestringbloem (standaard) of supply
descriptionstringProductbeschrijving
skustringUnieke SKU (gecontroleerd op duplicaten)
stock_qtyintVoorraadhoeveelheid (standaard: 0)
min_order_qtyintMinimale bestelhoeveelheid (standaard: 1)
colorstringProductkleur
stem_lengthintSteellengte in cm
country_of_originstringLand van herkomst
vat_ratefloatBTW-tarief in % (standaard: 21)
image_urlstringAfbeelding-URL(s). Ondersteunt jpg, png, webp. Meerdere URLs gescheiden door puntkomma (;). Max. 10 afbeeldingen per product.
POST /products/{id}

Bestaand product bijwerken. Stuur alleen de velden die u wilt wijzigen (gedeeltelijke update).

POST /products/{id}/delete

Product als verwijderd markeren. Geen verzoekbody vereist.

Productafbeeldingen

Afbeeldingslimieten: Max. 10 afbeeldingen per product. Formaten: JPEG, PNG, WebP. Max. bestandsgrootte: 5 MB per afbeelding. Afbeeldingen worden gedownload van de opgegeven URLs — de server haalt ze automatisch op.
GET /products/{id}/images

Alle afbeeldingen van een product ophalen. Retourneert URLs en hoofdafbeelding-vlag.

Voorbeeldantwoord

{
  "success": true,
  "data": {
    "images": [
      {
        "id": 1,
        "url": "/uploads/products/abc123.jpg",
        "thumbnail_url": "/uploads/products/thumb_abc123.jpg",
        "is_primary": true
      },
      {
        "id": 2,
        "url": "/uploads/products/def456.jpg",
        "thumbnail_url": "/uploads/products/thumb_def456.jpg",
        "is_primary": false
      }
    ]
  }
}
POST /products/{id}/images

Afbeeldingen toevoegen via URL. De server downloadt, valideert (jpg/png/webp, max. 5 MB) en maakt automatisch thumbnails. Gebruik puntkomma's voor meerdere URLs.

Verzoekbody (JSON)

VeldTypeVerplichtBeschrijving
image_urlstring*Afbeelding-URL(s). Ondersteunt jpg, png, webp. Meerdere URLs gescheiden door puntkomma (;). Max. 10 afbeeldingen per product.

Verzoekbody

{
  "image_url": "https://example.com/images/rose.jpg;https://example.com/images/rose-2.jpg"
}
POST /products/{id}/images/{imageId}/delete

Productafbeelding verwijderen. Het bestand wordt van de server verwijderd. Als de verwijderde afbeelding de hoofdafbeelding was, wordt automatisch de volgende afbeelding de hoofdafbeelding.

POST /products/{id}/images/{imageId}/primary

Stel een afbeelding in als hoofdafbeelding. De hoofdafbeelding wordt getoond in catalogusoverzichten en zoekresultaten.

Bulk-voorraadupdate

POST /stock

Voorraadhoeveelheden voor meerdere producten tegelijk bijwerken. Identificeer producten op product_id of sku. Max 500 items per verzoek.

Verzoekbody

{
  "items": [
    { "product_id": 42, "stock_qty": 500 },
    { "sku": "ROSE-RED-001", "stock_qty": 250 },
    { "sku": "LILY-WHT-003", "stock_qty": 0 }
  ]
}

Antwoord

{
  "success": true,
  "data": {
    "updated": 2,
    "failed": 1,
    "errors": [
      { "index": 2, "sku": "LILY-WHT-003", "error": "Product not found" }
    ]
  }
}

Bulk-prijsupdate

POST /prices

Prijzen voor meerdere producten bijwerken. Zelfde formaat als voorraadupdate maar met base_price-veld. Max 500 items.

Verzoekbody

{
  "items": [
    { "product_id": 42, "base_price": 2.75 },
    { "sku": "ROSE-RED-001", "base_price": 3.10 }
  ]
}

Bestellingen

GET /orders

Lijst uw bestellingsgroepen (leverancierspecifieke besteldelen).

Queryparameters

ParameterTypeBeschrijving
pageintPaginanummer
per_pageintItems per pagina (max 100)
statusstringpending, confirmed, processing, shipped, delivered, completed, cancelled
GET /orders/{id}

Volledige besteldetails ophalen inclusief items, klantinformatie en statusgeschiedenis.

POST /orders/{id}/status

Bestelstatus bijwerken. Alleen geldige overgangen zijn toegestaan:

VanToegestane overgangen
pendingconfirmed, cancelled
confirmedprocessing, cancelled
processingshipped, cancelled
shippeddelivered

Verzoekbody

{
  "status": "confirmed",
  "comment": "Order confirmed, preparing for shipment"
}

Categorieën

GET /categories

Alle actieve categorieën weergeven. Geeft een platte lijst met ouderreferenties.

Voorbeeldantwoord

{
  "success": true,
  "data": {
    "categories": [
      { "id": 1, "name": "Flowers", "slug": "flowers", "parent_id": null, "type": "flower" },
      { "id": 3, "name": "Roses", "slug": "roses", "parent_id": 1, "type": "flower" }
    ]
  }
}

Foutcodes

HTTPCodeBeschrijving
401UNAUTHORIZEDOntbrekende of ongeldige API-sleutel
403FORBIDDENSleutel ingetrokken of leverancier niet geverifieerd
404NOT_FOUNDBron niet gevonden
422VALIDATION_ERROROngeldige invoergegevens
429RATE_LIMITEDSnelheidslimiet overschreden
500SERVER_ERRORInterne serverfout

Codevoorbeelden

Producten weergeven

curl -X GET "https://www.verdmarket.com.mature-black-wombat.65-108-70-81.cpanel.site/api/v1/supplier/products?page=1&per_page=10" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

Product aanmaken

curl -X POST "https://www.verdmarket.com.mature-black-wombat.65-108-70-81.cpanel.site/api/v1/supplier/products" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Red Roses Premium",
    "category_id": 3,
    "base_price": 2.50,
    "unit": "stem",
    "stock_qty": 500,
    "sku": "ROSE-RED-001",
    "color": "Red",
    "stem_length": 60,
    "country_of_origin": "Netherlands",
    "image_url": "https://example.com/images/rose-red.jpg"
  }'

Productafbeeldingen toevoegen

curl -X POST "https://www.verdmarket.com.mature-black-wombat.65-108-70-81.cpanel.site/api/v1/supplier/products/42/images" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://example.com/img/photo1.jpg;https://example.com/img/photo2.jpg"
  }'

Bulk-voorraadupdate

curl -X POST "https://www.verdmarket.com.mature-black-wombat.65-108-70-81.cpanel.site/api/v1/supplier/stock" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {"sku": "ROSE-RED-001", "stock_qty": 500},
      {"sku": "LILY-WHT-003", "stock_qty": 200}
    ]
  }'

PHP-voorbeeld

<?php
$apiKey = 'YOUR_API_KEY';
$baseUrl = 'https://www.verdmarket.com.mature-black-wombat.65-108-70-81.cpanel.site/api/v1/supplier';

// List products
$ch = curl_init("$baseUrl/products?page=1&per_page=10");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer $apiKey",
        "Accept: application/json",
    ],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

// Bulk stock update
$ch = curl_init("$baseUrl/stock");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode([
        'items' => [
            ['sku' => 'ROSE-RED-001', 'stock_qty' => 500],
            ['sku' => 'LILY-WHT-003', 'stock_qty' => 200],
        ],
    ]),
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer $apiKey",
        "Content-Type: application/json",
    ],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

Python-voorbeeld

import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://www.verdmarket.com.mature-black-wombat.65-108-70-81.cpanel.site/api/v1/supplier"
headers = {"Authorization": f"Bearer {API_KEY}"}

# List products
resp = requests.get(f"{BASE_URL}/products", headers=headers,
                    params={"page": 1, "per_page": 10})
products = resp.json()

# Bulk stock update
resp = requests.post(f"{BASE_URL}/stock", headers=headers,
                     json={"items": [
                         {"sku": "ROSE-RED-001", "stock_qty": 500},
                         {"sku": "LILY-WHT-003", "stock_qty": 200},
                     ]})
result = resp.json()

# Update order status
resp = requests.post(f"{BASE_URL}/orders/15/status", headers=headers,
                     json={"status": "confirmed",
                           "comment": "Ready for shipment"})
print(resp.json())

Cookie-instellingen

Wij gebruiken cookies om uw ervaring te verbeteren. Meer informatie in ons Privacybeleid.

Aanpassen

Noodzakelijk

Essentieel voor de werking van de website. Kan niet worden uitgeschakeld.