Railsr.Resources.Payments (Railsr v1.0.0)

Copy Markdown View Source

Railsr Direct Debit Payment API.

Once a mandate is active, use this module to collect funds from the payer's external account into a Railsr ledger.

BACS standard collection: 3–5 working days from submission.

Listen for payment-collected or payment-failed webhook events.

Summary

Functions

Initiate a Direct Debit payment collection.

Retrieve a payment by ID.

List payments, optionally filtered by mandate.

Functions

create(params, opts \\ [])

@spec create(
  map(),
  keyword()
) :: {:ok, Railsr.Types.Payment.t()} | {:error, Railsr.Error.t()}

Initiate a Direct Debit payment collection.

Required params

  • :mandate_id — must be in active status
  • :amount — integer in minor currency units (pence)
  • :reason — description shown on payer's statement

Optional

  • :collection_date"YYYY-MM-DD" (default: next BACS processing date)
  • :metadata

get(payment_id, opts \\ [])

@spec get(
  String.t(),
  keyword()
) :: {:ok, Railsr.Types.Payment.t()} | {:error, Railsr.Error.t()}

Retrieve a payment by ID.

list(query \\ %{}, opts \\ [])

@spec list(
  map(),
  keyword()
) :: {:ok, [Railsr.Types.Payment.t()]} | {:error, Railsr.Error.t()}

List payments, optionally filtered by mandate.