Exemples de données de commande par secteur d'activité
Copiez les données de commande complètes de DEUNA pour les secteurs de la restauration rapide, des compagnies aériennes, du cinéma, de la banque et de la vente au détail.
Ces exemples présentent les corps de requête complets pour POST /merchants/orders. Choisissez un secteur, inspectez chaque champ et copiez la requête JSON ou cURL. Les exemples suivent le contrat public Create Order ; les montants sont exprimés en unités monétaires mineures.
Quels champs sont obligatoires dans order.items lors de la création d’une commande ?#
La réponse courte est que le validateur de demande de base de création de commande ne définit pas de propriété universellement requise à l'intérieur de chaque élément. Il valide si le tableau items est présent pour un type de commande particulier, et non le contenu de chaque article.
| Type de commande | Objet requis | Comportement du contrat de base |
|---|---|---|
DEUNA_CHECKOUT | order.items | Obligatoire. Lorsqu'il est fourni, le type d'exécution accepte uniquement dine_in, pickup, ou delivery. |
SUBSCRIPTIONS | order.items | Obligatoire. Marquez les lignes applicables avec included_in_subscription. |
AIRLINE_ORDER | order.airline_information | Obligatoire. Le tableau items reste facultatif au niveau du contrat de base. |
DEUNA_NOW | Aucun | Le tableau items n’est pas requis par le contrat de base. Incluez-le lorsque le traitement en aval nécessite des détails sur le produit. |
PAYMENT_LINK | Aucun | Le tableau items n’est pas requis par le contrat de base. Incluez-le lorsque l'expérience hébergée ou le traitement en aval nécessite des détails sur le produit. |
Un élément vide n'est pas une cible d'intégration utile. Les prestataires de paiement, les contrôles anti-fraude, la gestion fiscale, les rapports et votre propre rapprochement peuvent nécessiter plus de détails. À moins qu'un guide du fournisseur n'énonce une exigence plus stricte, utilisez cette référence portable pour chaque élément :
{
"id": "merchant-item-001",
"sku": "SKU-001",
"name": "Product name",
"quantity": 1,
"unit_price": {
"amount": 2500,
"currency": "USD"
},
"total_amount": {
"amount": 2500,
"original_amount": 2500,
"total_discount": 0,
"currency": "USD"
},
"tax_amount": {
"amount": 0,
"currency": "USD"
},
"category": "products",
"type": "physical",
"taxable": false
}Le modèle d'élément prend en charge les groupes de champs suivants :
| Objectif | Champs pris en charge |
|---|---|
| Identité de l'article du marchand | id, sku, upc, isbn |
| Détails des articles destinés au client | name, description, image_url, details_url |
| Détail des quantités et des prix | quantity, uom, unit_price, total_amount, tax_amount, taxable, discounts |
| Détail du catalogue et des variantes | brand, manufacturer, category, sub_category, color, size, weight |
| Accomplissement et contexte supplémentaire | options, type, item_details, included_in_subscription, shipping_options |
| Champ | Valeurs documentées |
|---|---|
type | physical, digital, event, service |
Gardez les devises des articles et des commandes alignées et calculez les montants dans des unités monétaires mineures.
Champs obligatoires au niveau de la commande et règle de montant
| Champ ou règle | Exigence |
|---|---|
order_id | Obligatoire pour chaque commande. |
currency | Obligatoire pour chaque commande. |
total_amount | Doit être supérieur à zéro pour les bons de commande normaux. Une récurrence de première utilisation de valeur nulle est l’exception documentée en matière de vérification de carte. |
sub_total + total_tax_amount = total_amount | Appliqué chaque fois qu'un sous-total ou un montant total de taxe est fourni. |
Guide de terrain vertical#
QSR, cinéma, banque et vente au détail sont des modèles de documentation basés sur le type de commande de paiement standard. Ce ne sont pas des valeurs de type de commande distinctes. Les compagnies aériennes utilisent le contrat de commande dédié aux compagnies aériennes.
| Verticale | Type de commande | Ensemble de champs principal | Comment l'utiliser |
|---|---|---|---|
| QSR | DEUNA_CHECKOUT | items[].id, items[].sku, options, shipping_options, scheduled_at, user_instructions | Identifiez les lignes de menu et les modificateurs, le mode de service et le magasin, le temps de préparation et les instructions de transfert. Le tableau items est obligatoire. |
| Compagnies aériennes | AIRLINE_ORDER | airline_information.booking_items, pnr, ticket_number, passenger, legs, ancillaries | Envoyez les détails de la réservation, du billet, de l'agence, du passager, de l'itinéraire et du service payant. Les informations sur la compagnie aérienne sont requises ; le tableau items est facultatif au niveau du contrat de base. |
| Cinéma | DEUNA_CHECKOUT | items, type, options, shipping_options.details, expires_at | Modélisez les billets et les concessions en lignes distinctes, identifiez les billets d'événement et joignez l'heure de projection, les sièges, le lieu, le destinataire et la date limite de réservation des sièges. Le tableau items est obligatoire. |
| Banque | DEUNA_CHECKOUT | items, type, description, statement_descriptor, initiator_type, channel_type, metadata | Modélisez le paiement en tant que service et envoyez des références commerciales masquées ou tokenisées. Le tableau items est obligatoire. Ne mettez jamais les numéros de compte complets ou les informations d’identification dans les métadonnées. |
| Commerce de détail | DEUNA_CHECKOUT | items, discounts, shipping_address, shipping_method, shipping_options | Envoyez l’identité du produit et de la variante, les promotions, la destination, le mode de livraison et le contexte d’exécution. Le tableau items est obligatoire. Gardez les références de remise sur les articles alignées sur le tableau de remise au niveau de la commande. |
Exemples complets#
Restauration rapide
Menu, options, mode de service, lieu, horaire et instructions client dans une seule commande de restaurant.
itemsshipping_optionsscheduled_atuser_instructions{
"order_type": "DEUNA_CHECKOUT",
"order": {
"order_id": "qsr-2048",
"store_code": "mad-gran-via-01",
"currency": "EUR",
"items_total_amount": 2890,
"sub_total": 2890,
"total_tax_amount": 286,
"total_amount": 3176,
"items": [
{
"id": "meal-smash-01",
"sku": "SMASH-COMBO",
"name": "Smash burger combo",
"description": "Burger, fries, and drink",
"options": "medium; no onions; sparkling water",
"quantity": 1,
"category": "combos",
"taxable": true,
"unit_price": {
"amount": 1890,
"currency": "EUR",
"currency_symbol": "€"
},
"total_amount": {
"amount": 1890,
"original_amount": 1890,
"currency": "EUR",
"currency_symbol": "€",
"total_discount": 0
},
"tax_amount": {
"amount": 172,
"currency": "EUR",
"currency_symbol": "€"
}
},
{
"id": "side-wings-06",
"sku": "WINGS-6",
"name": "Six hot wings",
"options": "chipotle sauce",
"quantity": 1,
"category": "sides",
"taxable": true,
"unit_price": {
"amount": 1000,
"currency": "EUR",
"currency_symbol": "€"
},
"total_amount": {
"amount": 1000,
"original_amount": 1000,
"currency": "EUR",
"currency_symbol": "€",
"total_discount": 0
},
"tax_amount": {
"amount": 114,
"currency": "EUR",
"currency_symbol": "€"
}
}
],
"shipping_options": {
"type": "pickup",
"method": "counter",
"requires_shipping": false,
"details": {
"store_id": "mad-gran-via-01",
"store_name": "Gran Vía",
"address": "Calle Gran Vía 42, Madrid",
"address_coordinates": {
"lat": 40.4201,
"lng": -3.7058
},
"contact": {
"name": "Gran Vía team",
"phone": "+34910000000"
},
"additional_details": {
"pickup_time": "2026-10-03T18:30:00Z",
"stock_location": "Front counter"
}
}
},
"scheduled_at": "2026-10-03T18:30:00Z",
"user_instructions": "Label the order for Alex. Include napkins.",
"payer_info": {
"email": "alex@example.com",
"external_registration_date": "2024-02-10T12:00:00Z"
},
"channel_type": "mobile_app_ios",
"metadata": {
"vertical": "qsr",
"service_mode": "pickup",
"loyalty_member_id": "LOY-88201"
},
"callback_urls": {
"on_success": "https://merchant.example.com/payments/success",
"on_pending": "https://merchant.example.com/payments/pending",
"on_reject": "https://merchant.example.com/payments/rejected",
"on_canceled": "https://merchant.example.com/payments/canceled",
"on_failed": "https://merchant.example.com/payments/failed"
}
}
}Ce qui reste commun#
Chaque secteur utilise le même contrat de base :
order_id,store_codeetcurrencyIdentifier le contexte commercial du commerçant.- Les montants sont des entiers en unités monétaires mineures et doivent correspondre aux détails de l'article, des taxes, des remises et des frais de port.
itemsDécrire ce que le client achète ou paie.payer_info,channel_typeetinitiator_typeClarifier qui a initié le processus et où.callback_urlset les données retournées.order_tokenRelier la requête synchrone à son résultat final.metadatatransmet des références définies par le commerçant ; il est préférable d'utiliser les champs de type pris en charge si possible.