業界別の注文・決済リクエスト例
QSR、航空、映画館、銀行、小売向けの完全な Purchase V2 リクエストと、任意の注文作成リクエストをコピーできます。
各業界向けの完全な注文・決済リクエスト本文を示します。まず POST /v2/merchants/orders/purchase を使用して、1 回のリクエストでインライン注文の作成と決済を行います。次を使用して注文を別に作成する方法 POST /merchants/orders は任意です。
リクエストフローを選択#
| フロー | エンドポイント | 使用するタイミング |
|---|---|---|
| Purchase V2 · 推奨 | POST /v2/merchants/orders/purchase | インライン注文、支払者、トークン化された決済元をまとめて送信します。DEUNA は決済リクエストの一部として注文を作成します。 |
| 先に注文を作成 · 任意 | POST /merchants/orders、次に POST /v2/merchants/orders/purchase | 統合で order_token が決済前に必要な場合のみ、注文を別途作成します。たとえば、Checkout の初期化、チャネル間での同じ注文の再利用、決済試行前の取得に使用します。 |
以下の例は両方のフローに対応します。業界を選び、2 種類のリクエストを切り替えて、JSON または cURL リクエストをコピーしてください。金額は通貨の最小単位で表します。
order.items で必須のフィールドは何ですか?#
簡単に言うと、基本的な Create Order リクエストのバリデーターは、各項目内に普遍的に必要なプロパティを定義していないということです。各項目の内容ではなく、特定の注文タイプに項目配列が存在するかどうかを検証します。
| 注文タイプ | 必須のオブジェクト | 基本的なコントラクトの動作 |
|---|---|---|
DEUNA_CHECKOUT | order.items | 必須。指定された場合、フルフィルメント タイプはのみを受け入れます dine_in, pickup、または delivery. |
SUBSCRIPTIONS | order.items | 必須。該当する行にマークを付けます included_in_subscription. |
AIRLINE_ORDER | order.airline_information | 必須。 items 配列は、基本契約レベルではオプションのままです。 |
DEUNA_NOW | なし | items 配列は基本コントラクトでは必要ありません。下流工程で製品の詳細が必要な場合に含めます。 |
PAYMENT_LINK | なし | items 配列は基本コントラクトでは必要ありません。ホストされたエクスペリエンスまたはダウンストリーム処理で製品の詳細が必要な場合は、これを含めます。 |
空の項目は統合ターゲットとしては役に立ちません。決済プロバイダー、不正行為のチェック、税務処理、報告、およびお客様自身の調整については、さらに詳細な情報が必要になる場合があります。プロバイダー ガイドにさらに厳しい要件が記載されていない限り、すべての項目に対して次の移植可能なベースラインを使用してください。
{
"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
}項目モデルは次のフィールド グループをサポートします。
| 目的 | サポートされているフィールド |
|---|---|
| 販売者のアイテム ID | id, 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 |
| フィールド | 文書化された値 |
|---|---|
type | physical, digital, event, service |
品目と注文の通貨を一致させて、マイナー通貨単位で金額を計算します。
必須の注文レベルのフィールドと金額ルール
| フィールドまたはルール | 要件 |
|---|---|
order_id | すべての注文に必要です。 |
currency | すべての注文に必要です。 |
total_amount | 通常の発注書の場合は、ゼロより大きくなければなりません。ゼロ値の初回使用の繰り返しは、文書化されたカード検証例外です。 |
sub_total + total_tax_amount = total_amount | 小計または合計税額が指定されるたびに適用されます。 |
垂直フィールドガイド#
QSR、映画、銀行、小売は、標準的なチェックアウト注文タイプに基づく文書化パターンです。これらは個別の注文タイプの値ではありません。航空会社は専用の航空会社注文契約を使用します。
| 垂直 | 注文タイプ | プライマリフィールドセット | 使い方 |
|---|---|---|---|
| QSR | DEUNA_CHECKOUT | items[].id, items[].sku, options, shipping_options, scheduled_at, user_instructions | メニュー行と修飾子、サービス モードとストア、準備時間、およびハンドオフ手順を特定します。 items 配列は必須です。 |
| 航空会社 | AIRLINE_ORDER | airline_information.booking_items, pnr, ticket_number, passenger, legs, ancillaries | 予約、航空券、代理店、乗客、旅程、有料サービスの詳細を送信します。航空会社の情報は必須です。 items 配列は、基本契約レベルではオプションです。 |
| 映画館 | DEUNA_CHECKOUT | items, type, options, shipping_options.details, expires_at | チケットと特典を別の行としてモデル化し、イベント チケットを特定し、上映時間、座席、会場、受取人、座席の確保期限を添付します。 items 配列は必須です。 |
| 銀行 | DEUNA_CHECKOUT | items, type, description, statement_descriptor, initiator_type, channel_type, metadata | サービスとしての支払いをモデル化し、マスクまたはトークン化されたビジネス参照を送信します。 items 配列は必須です。完全なアカウント番号や認証情報をメタデータに含めないでください。 |
| 小売 | DEUNA_CHECKOUT | items, discounts, shipping_address, shipping_method, shipping_options | 製品とバリエーションの ID、プロモーション、宛先、配送方法、フルフィルメント コンテキストを送信します。 items 配列は必須です。品目割引参照を注文レベルの割引配列と一致させてください。 |
完全な例#
各例には対象のエンドポイントが示されています。 Purchase V2 · 推奨 には、1 回の呼び出しで完結する決済リクエスト全体が含まれます。 先に注文を作成 · 任意 には注文を作成するリクエストのみが含まれます。返された order_token を Purchase V2 リクエストで使用します。
QSR
注文、支払者、トークン化された決済元をインラインで送信し、1 回のリクエストで決済を処理します。
/v2/merchants/orders/purchaseメニュー、オプション、サービス形態、店舗、時間、顧客の指示を 1 つの飲食店注文にまとめます。
itemsshipping_optionsscheduled_atuser_instructions{
"payer_info": {
"email": "alex@example.com",
"external_registration_date": "2024-02-10T12:00:00Z"
},
"payment_source": {
"method_type": "credit_card",
"payment_method": "TOKENIZED_PAYMENT_METHOD"
},
"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.",
"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商取引固有の参照が含まれます。存在する場合、型付きフィールドを使用してください。