StarlingBank.Payments (StarlingBank v1.0.0)

Copy Markdown View Source

Outbound payments — one-off local (Faster Payments) payments, international payments, and management of standing orders.

Required scopes: pay-local:read, pay-local:create, pay-local-once:create, pay-foreign:create, standing-order:read, standing-order:create, standing-order:delete.

Summary

Functions

Creates a recurring local payment instruction (distinct from a one-off pay_local_once/4 and from a put_standing_order/5 — used for Starling's pay-local:create recurring payment scope where supported).

Gets a currency-converted quote for an international payment before submitting it.

Lists upcoming/local payments scheduled or made from an account.

Lists standing orders for an account/category.

Initiates an international payment to an overseas payee.

Makes a single, immediate local (domestic, GBP, Faster Payments) payment from an account to an existing payee.

Functions

create_local_payment(account_uid, category_uid, attrs, client \\ nil)

@spec create_local_payment(
  String.t(),
  String.t(),
  map(),
  StarlingBank.Client.t() | keyword() | nil
) ::
  {:ok, map()} | {:error, StarlingBank.Error.t()}

Creates a recurring local payment instruction (distinct from a one-off pay_local_once/4 and from a put_standing_order/5 — used for Starling's pay-local:create recurring payment scope where supported).

delete_standing_order(account_uid, category_uid, payment_order_uid, client \\ nil)

@spec delete_standing_order(
  String.t(),
  String.t(),
  String.t(),
  StarlingBank.Client.t() | keyword() | nil
) :: {:ok, nil} | {:error, StarlingBank.Error.t()}

Cancels (deletes) a standing order.

international_quote(account_uid, attrs, client \\ nil)

@spec international_quote(
  String.t(),
  map(),
  StarlingBank.Client.t() | keyword() | nil
) ::
  {:ok, map()} | {:error, StarlingBank.Error.t()}

Gets a currency-converted quote for an international payment before submitting it.

list_local(account_uid, client \\ nil)

@spec list_local(String.t(), StarlingBank.Client.t() | keyword() | nil) ::
  {:ok, map()} | {:error, StarlingBank.Error.t()}

Lists upcoming/local payments scheduled or made from an account.

list_standing_orders(account_uid, category_uid, client \\ nil)

@spec list_standing_orders(
  String.t(),
  String.t(),
  StarlingBank.Client.t() | keyword() | nil
) ::
  {:ok, map()} | {:error, StarlingBank.Error.t()}

Lists standing orders for an account/category.

pay_international(account_uid, category_uid, attrs, client \\ nil)

@spec pay_international(
  String.t(),
  String.t(),
  map(),
  StarlingBank.Client.t() | keyword() | nil
) ::
  {:ok, map()} | {:error, StarlingBank.Error.t()}

Initiates an international payment to an overseas payee.

pay_local_once(account_uid, category_uid, attrs, client \\ nil)

@spec pay_local_once(
  String.t(),
  String.t(),
  map(),
  StarlingBank.Client.t() | keyword() | nil
) ::
  {:ok, map()} | {:error, StarlingBank.Error.t()}

Makes a single, immediate local (domestic, GBP, Faster Payments) payment from an account to an existing payee.

StarlingBank.Payments.pay_local_once(account_uid, category_uid, %{
  amount: %{currency: "GBP", minorUnits: 1_000},
  reference: "Invoice 123",
  payeeUid: payee_uid,
  payeeAccountUid: payee_account_uid
})

put_standing_order(account_uid, category_uid, payment_order_uid, attrs, client \\ nil)

@spec put_standing_order(
  String.t(),
  String.t(),
  String.t(),
  map(),
  StarlingBank.Client.t() | keyword() | nil
) :: {:ok, map()} | {:error, StarlingBank.Error.t()}

Creates or replaces a standing order.