Skip to content

create-order

Method: POST
Path: /orders

Tags: Orders

Summary

Create order

Description

Create new order

Storefront SDK Usage

SDK Method: sdk.order.createOrder()

Example:

typescript
// Juspay Hyper Checkout - Redirects to hosted payment page
const { data, error } = await sdk.order.createOrder({
  cart_id: "cart_01H9XYZ12345ABCDE",
  payment_method: {
    payment_provider_slug: "juspay",
    integration_type: "hyper-checkout",
    gateway_reference_id: "gateway_ref_123",
    return_url: "https://yourapp.com/payment/return",
    action: "paymentPage"
  }
});

// Juspay Express Checkout - New Card
const { data, error } = await sdk.order.createOrder({
  cart_id: "cart_01H9XYZ12345ABCDE",
  payment_method: {
    payment_provider_slug: "juspay",
    integration_type: "express-checkout",
    gateway_reference_id: "gateway_ref_123",
    return_url: "https://yourapp.com/payment/return",
    payment_method_type: "CARD",
    payment_method: "VISA",
    auth_type: "OTP",
    save_to_locker: true,
    card_number: "4111111111111111",
    card_exp_month: "12",
    card_exp_year: "2025",
    name_on_card: "John Doe",
    card_security_code: "123"
  }
});

// Juspay Express Checkout - Saved Card Token
const { data, error } = await sdk.order.createOrder({
  cart_id: "cart_01H9XYZ12345ABCDE",
  payment_method: {
    payment_provider_slug: "juspay",
    integration_type: "express-checkout",
    gateway_reference_id: "gateway_ref_123",
    return_url: "https://yourapp.com/payment/return",
    get_client_auth_token: true,
    payment_method_type: "CARD",
    payment_method: "VISA",
    auth_type: "OTP",
    save_to_locker: false,
    card_token: "token_abc123",
    card_security_code: "123"
  }
});

// Juspay Express Checkout - UPI Collect
const { data, error } = await sdk.order.createOrder({
  cart_id: "cart_01H9XYZ12345ABCDE",
  payment_method: {
    payment_provider_slug: "juspay",
    integration_type: "express-checkout",
    gateway_reference_id: "gateway_ref_123",
    return_url: "https://yourapp.com/payment/return",
    payment_method_type: "UPI",
    payment_method: "UPI_COLLECT",
    upi_vpa: "user@upi"
  }
});

// Juspay Express Checkout - Net Banking
const { data, error } = await sdk.order.createOrder({
  cart_id: "cart_01H9XYZ12345ABCDE",
  payment_method: {
    payment_provider_slug: "juspay",
    integration_type: "express-checkout",
    gateway_reference_id: "gateway_ref_123",
    return_url: "https://yourapp.com/payment/return",
    payment_method_type: "NB",
    payment_method: "NB_HDFC"
  }
});

if (error) {
  console.error("Failed to create order:", error.message);
} else {
  console.log("Order created:", data.order.id);
  console.log("Payment required:", data.payment_required);
  console.log("Payment info:", data.payment_info);

  // For hyper-checkout, redirect to payment page
  if ("payment_links" in data.payment_info) {
    window.location.href = data.payment_info.payment_links?.web;
  }

  // For express-checkout with OTP authentication
  if ("payment" in data.payment_info && data.payment_info.payment?.authentication?.params) {
    const { id: txn_id, challenge_id } = data.payment_info.payment.authentication.params;
    // Use txn_id and challenge_id with sdk.payments.authenticateDirectOtp()
  }
}

TypeScript Definition

typescript
"create-order": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** @description Request body */
        requestBody: {
            content: {
                "application/json": {
                    cart_id: string;
                    payment_method?: components["schemas"]["PaymentMethodPayload"];
                };
            };
        };
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        message: string;
                        success: boolean;
                        content: {
                            order: components["schemas"]["Order"];
                            payment_required: boolean;
                            payment_info: components["schemas"]["JusPayHyperCheckoutResponse"] | components["schemas"]["JusPayExpressCheckoutResponse"] | components["schemas"]["PayuPaymentInfo"];
                        };
                    };
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
        };
    };

Component References

ReferenceResolves To
components["schemas"]["PaymentMethodPayload"]PaymentMethodPayload
components["schemas"]["Order"]Order
components["schemas"]["JusPayHyperCheckoutResponse"]JusPayHyperCheckoutResponse
components["schemas"]["JusPayExpressCheckoutResponse"]JusPayExpressCheckoutResponse
components["schemas"]["PayuPaymentInfo"]PayuPaymentInfo
components["responses"]["BadRequest"]BadRequest
components["responses"]["Unauthorized"]Unauthorized

Request Body

Request body

Content Types: application/json

Responses

200

OK

400

Bad request

401

Not authorized for given operation on the Resource

OpenAPI Definition

json
{
  "tags": [
    "Orders"
  ],
  "operationId": "create-order",
  "summary": "Create order",
  "description": "Create new order",
  "externalDocs": {
    "url": "https://llm-docs.commercengine.io/storefront/operations/create-order",
    "description": "API reference for the create-order operation"
  },
  "requestBody": {
    "description": "Request body",
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "cart_id"
          ],
          "properties": {
            "cart_id": {
              "type": "string"
            },
            "payment_method": {
              "$ref": "#/components/schemas/PaymentMethodPayload"
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "OK",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "message",
              "success",
              "content"
            ],
            "properties": {
              "message": {
                "type": "string"
              },
              "success": {
                "type": "boolean"
              },
              "content": {
                "properties": {
                  "order": {
                    "$ref": "#/components/schemas/Order"
                  },
                  "payment_required": {
                    "type": "boolean"
                  },
                  "payment_info": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/JusPayHyperCheckoutResponse"
                      },
                      {
                        "$ref": "#/components/schemas/JusPayExpressCheckoutResponse"
                      },
                      {
                        "$ref": "#/components/schemas/PayuPaymentInfo"
                      }
                    ]
                  }
                },
                "required": [
                  "order",
                  "payment_required",
                  "payment_info"
                ],
                "type": "object"
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/BadRequest"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    }
  },
  "security": [
    {
      "Authorization": []
    }
  ],
  "x-speakeasy-group": "orders",
  "x-speakeasy-ignore": false,
  "x-speakeasy-name-override": "createOrder"
}

Auto-generated from OpenAPI spec and TypeScript definitions

Last updated: