RazorpayEx.Payment (razorpay_ex v0.1.3)

Copy Markdown View Source

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

See: https://razorpay.com/docs/api/payments/

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

t()

@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

all(params \\ %{})

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

bank_transfer(id)

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

capture(id, amount)

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

Captures a payment.

Parameters

  • id: Payment ID
  • amount: 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)

card(id)

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

fetch(id)

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

refresh(id)

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

update(id, params)

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

Updates payment details.

Parameters

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

Examples

{:ok, payment} = Razorpay.Payment.update("pay_29QQoUBi66xm2f", %{
  notes: %{updated_reason: "Customer requested update"}
})