RazorpayEx.Order (razorpay_ex v0.1.3)

Copy Markdown View Source

Order resource for Razorpay API.

This module provides functions for working with orders:

  • Create, fetch, and list orders
  • Update orders
  • Get payments for orders

See: https://razorpay.com/docs/api/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

t()

@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

all(params \\ %{})

@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"})

create(params)

@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 ID
  • payment_capture: Auto-capture payment (true/false)
  • notes: Additional notes
  • method: 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"
  }
})

fetch(id)

@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")

payments(id, params \\ %{})

@spec payments(String.t(), map()) ::
  {:ok, [RazorpayEx.Payment.t()]} | {:error, Razorpay.Error.t()}

Gets payments for an order.

Parameters

  • id: Order ID
  • params: Query parameters

Examples

{:ok, payments} = RazorpayEx.Order.payments("order_9A33XWu170gUtm")

update(id, params)

@spec update(String.t(), map()) :: {:ok, t()} | {:error, RazorpayEx.Error.t()}

Updates an order.

Parameters

  • id: Order ID
  • params: Update parameters (notes, etc.)

Examples

{:ok, order} = RazorpayEx.Order.update("order_9A33XWu170gUtm", %{
  notes: %{updated_reason: "Customer requested update"}
})