Order resource for Razorpay API.
This module provides functions for working with orders:
- Create, fetch, and list orders
- Update orders
- Get payments for orders
Summary
Functions
Lists all orders with optional filters.
Creates a new order.
Fetches an order by ID.
Gets payments for an order.
Updates an order.
Types
@type t() :: %RazorpayEx.Order{ amount: integer() | nil, amount_due: integer() | nil, amount_paid: integer() | nil, attempts: integer() | nil, created_at: integer() | nil, currency: String.t() | nil, entity: String.t() | nil, id: String.t() | nil, notes: map() | nil, offer_id: String.t() | nil, receipt: String.t() | nil, status: String.t() | nil }
Functions
@spec all(map()) :: {:ok, [t()]} | {:error, RazorpayEx.Error.t()}
Lists all orders with optional filters.
Parameters
params: Query parameters (count, skip, from, to, etc.)
Examples
# List first 10 orders
{:ok, orders} = RazorpayEx.Order.all(%{count: 10})
# List authorized orders
{:ok, orders} = RazorpayEx.Order.all(%{status: "authorized"})
@spec create(map()) :: {:ok, t()} | {:error, RazorpayEx.Error.t()}
Creates a new order.
Parameters
params: Order parameters (amount, currency, receipt, etc.)
Required Parameters
amount: Amount in paise (₹1 = 100 paise)currency: Currency code (e.g., "INR")
Optional Parameters
receipt: Your order receipt IDpayment_capture: Auto-capture payment (true/false)notes: Additional notesmethod: Allowed payment methods
Examples
{:ok, order} = RazorpayEx.Order.create(%{
amount: 50000,
currency: "INR",
receipt: "order_rcptid_11",
payment_capture: true,
notes: %{
customer_name: "John Doe"
}
})
@spec fetch(String.t()) :: {:ok, t()} | {:error, RazorpayEx.Error.t()}
Fetches an order by ID.
Parameters
id: Order ID
Examples
{:ok, order} = RazorpayEx.Order.fetch("order_9A33XWu170gUtm")
@spec payments(String.t(), map()) :: {:ok, [RazorpayEx.Payment.t()]} | {:error, Razorpay.Error.t()}
Gets payments for an order.
Parameters
id: Order IDparams: Query parameters
Examples
{:ok, payments} = RazorpayEx.Order.payments("order_9A33XWu170gUtm")
@spec update(String.t(), map()) :: {:ok, t()} | {:error, RazorpayEx.Error.t()}
Updates an order.
Parameters
id: Order IDparams: Update parameters (notes, etc.)
Examples
{:ok, order} = RazorpayEx.Order.update("order_9A33XWu170gUtm", %{
notes: %{updated_reason: "Customer requested update"}
})