Payment resource for Razorpay API.
This module provides functions for working with payments:
- Create, fetch, and list payments
- Capture payments
- Refund payments
- Get payment details
Summary
Functions
Lists all payments with optional filters.
Gets bank transfer details for a payment.
Captures a payment.
Gets card details for a payment.
Fetches a payment by ID.
Refreshes payment status.
Updates payment details.
Types
@type t() :: %RazorpayEx.Payment{ amount: integer() | nil, amount_refunded: integer() | nil, bank: String.t() | nil, captured: boolean() | nil, card_id: String.t() | nil, contact: String.t() | nil, created_at: integer() | nil, currency: String.t() | nil, description: String.t() | nil, email: String.t() | nil, entity: String.t() | nil, error_code: String.t() | nil, error_description: String.t() | nil, fee: integer() | nil, id: String.t() | nil, international: boolean() | nil, invoice_id: String.t() | nil, method: String.t() | nil, notes: map() | nil, order_id: String.t() | nil, refund_status: String.t() | nil, status: String.t() | nil, tax: integer() | nil, vpa: String.t() | nil, wallet: String.t() | nil }
Functions
@spec all(map()) :: {:ok, [t()]} | {:error, RazorpayEx.Error.t()}
Lists all payments with optional filters.
Parameters
params: Query parameters (count, skip, from, to, etc.)
Examples
# List first 10 payments
{:ok, payments} = Razorpay.Payment.all(%{count: 10})
# List payments from a specific date
{:ok, payments} = RazorpayEx.Payment.all(%{from: 1633046400, to: 1633132800})
@spec bank_transfer(String.t()) :: {:ok, map()} | {:error, RazorpayEx.Error.t()}
Gets bank transfer details for a payment.
Parameters
id: Payment ID
Examples
{:ok, bank_transfer} = RazorpayEx.Payment.bank_transfer("pay_29QQoUBi66xm2f")
@spec capture(String.t(), integer()) :: {:ok, t()} | {:error, RazorpayEx.Error.t()}
Captures a payment.
Parameters
id: Payment IDamount: Amount to capture (in paise)
Examples
# Capture full amount
{:ok, payment} = RazorpayEx.Payment.capture("pay_29QQoUBi66xm2f", 50000)
# Capture partial amount
{:ok, payment} = RazorpayEx.Payment.capture("pay_29QQoUBi66xm2f", 25000)
@spec card(String.t()) :: {:ok, map()} | {:error, RazorpayEx.Error.t()}
Gets card details for a payment.
Parameters
id: Payment ID
Examples
{:ok, card_details} = RazorpayEx.Payment.card("pay_29QQoUBi66xm2f")
@spec fetch(String.t()) :: {:ok, t()} | {:error, RazorpayEx.Error.t()}
Fetches a payment by ID.
Parameters
id: Payment ID
Examples
{:ok, payment} = RazorpayEx.Payment.fetch("pay_29QQoUBi66xm2f")
@spec refresh(String.t()) :: {:ok, t()} | {:error, RazorpayEx.Error.t()}
Refreshes payment status.
Parameters
id: Payment ID
Examples
{:ok, payment} = RazorpayEx.Payment.refresh("pay_29QQoUBi66xm2f")
@spec update(String.t(), map()) :: {:ok, t()} | {:error, RazorpayEx.Error.t()}
Updates payment details.
Parameters
id: Payment IDparams: Update parameters (notes, etc.)
Examples
{:ok, payment} = Razorpay.Payment.update("pay_29QQoUBi66xm2f", %{
notes: %{updated_reason: "Customer requested update"}
})