メインコンテンツへスキップ

これらの例は、以下の内容を含む完全なリクエストボディを示しています。 POST /merchants/orders。業界を選択し、すべてのフィールドを検査して、JSON または cURL リクエストをコピーします。この例は、公開された Create Order コントラクトに従っています。金額はマイナー通貨単位で表されます。

注文の作成時に order.items に必要なフィールドは何ですか?#

簡単に言うと、基本的な Create Order リクエストのバリデーターは、各項目内に普遍的に必要なプロパティを定義していないということです。各項目の内容ではなく、特定の注文タイプに項目配列が存在するかどうかを検証します。

注文タイプ必須のオブジェクト基本的なコントラクトの動作
DEUNA_CHECKOUTorder.items必須。指定された場合、フルフィルメント タイプはのみを受け入れます dine_in, pickup、または delivery.
SUBSCRIPTIONSorder.items必須。該当する行にマークを付けます included_in_subscription.
AIRLINE_ORDERorder.airline_information必須。 items 配列は、基本契約レベルではオプションのままです。
DEUNA_NOWN/Aitems 配列は基本コントラクトでは必要ありません。下流工程で製品の詳細が必要な場合に含めます。
PAYMENT_LINKN/Aitems 配列は基本コントラクトでは必要ありません。ホストされたエクスペリエンスまたはダウンストリーム処理で製品の詳細が必要な場合は、これを含めます。

空の項目は統合ターゲットとしては役に立ちません。決済プロバイダー、不正行為のチェック、税務処理、報告、およびお客様自身の調整については、さらに詳細な情報が必要になる場合があります。プロバイダー ガイドにさらに厳しい要件が記載されていない限り、すべての項目に対して次の移植可能なベースラインを使用してください。

JSON
{
  "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
}

項目モデルは次のフィールド グループをサポートします。

目的サポートされているフィールド
販売者のアイテム IDid, sku, upc, isbn
顧客向けアイテムの詳細name, description, image_url, details_url
数量と価格の詳細quantity, uom, unit_price, total_amount, tax_amount, taxable, discounts
カタログとバリエーションの詳細brand, manufacturer, category, sub_category, color, size, weight
フルフィルメントと追加のコンテキストoptions, type, item_details, included_in_subscription, shipping_options
フィールド文書化された値
typephysical, digital, event, service

品目と注文の通貨を一致させて、マイナー通貨単位で金額を計算します。

必須の注文レベルのフィールドと金額ルール

フィールドまたはルール要件
order_idすべての注文に必要です。
currencyすべての注文に必要です。
total_amount通常の発注書の場合は、ゼロより大きくなければなりません。ゼロ値の初回使用の繰り返しは、文書化されたカード検証例外です。
sub_total + total_tax_amount = total_amount小計または合計税額が指定されるたびに適用されます。

垂直フィールドガイド#

QSR、映画、銀行、小売は、標準的なチェックアウト注文タイプに基づく文書化パターンです。これらは個別の注文タイプの値ではありません。航空会社は専用の航空会社注文契約を使用します。

垂直注文タイププライマリフィールドセット使い方
QSRDEUNA_CHECKOUTitems[].id, items[].sku, options, shipping_options, scheduled_at, user_instructionsメニュー行と修飾子、サービス モードとストア、準備時間、およびハンドオフ手順を特定します。 items 配列は必須です。
航空会社AIRLINE_ORDERairline_information.booking_items, pnr, ticket_number, passenger, legs, ancillaries予約、航空券、代理店、乗客、旅程、有料サービスの詳細を送信します。航空会社の情報は必須です。 items 配列は、基本契約レベルではオプションです。
映画館DEUNA_CHECKOUTitems, type, options, shipping_options.details, expires_atチケットと特典を別の行としてモデル化し、イベント チケットを特定し、上映時間、座席、会場、受取人、座席の確保期限を添付します。 items 配列は必須です。
銀行DEUNA_CHECKOUTitems, type, description, statement_descriptor, initiator_type, channel_type, metadataサービスとしての支払いをモデル化し、マスクまたはトークン化されたビジネス参照を送信します。 items 配列は必須です。完全なアカウント番号や認証情報をメタデータに含めないでください。
小売DEUNA_CHECKOUTitems, discounts, shipping_address, shipping_method, shipping_options製品とバリエーションの ID、プロモーション、宛先、配送方法、フルフィルメント コンテキストを送信します。 items 配列は必須です。品目割引参照を注文レベルの割引配列と一致させてください。

完全な例#

完全な注文ペイロード

QSR

メニュー、オプション、サービス形態、店舗、時間、顧客の指示を 1 つの飲食店注文にまとめます。

itemsshipping_optionsscheduled_atuser_instructions
リクエスト本文JSON
{
  "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"
    }
  }
}

共通点#

すべての業界で共通の基本的な契約が存在します:

  • order_id, store_code, および currency 商取引の文脈を特定します。
  • 金額は、整数で最小単位の通貨で表され、項目、税金、割引、および配送の詳細と一致する必要があります。
  • items 顧客が購入または支払うものを記述します。
  • payer_info, channel_type, および initiator_type フローを開始した人物と場所を明確にします。
  • callback_urls および、返された order_token は、同期リクエストを最終的な結果に接続します。
  • metadata 商取引固有の参照が含まれます。存在する場合、型付きフィールドを使用してください。

統合を続行#