TruelayerClient.Mandates (truelayer_client v1.0.0)

Copy Markdown View Source

TrueLayer Mandates API — Variable Recurring Payments (VRP) and sweeping mandates.

A mandate authorises the SDK to initiate repeated payments on behalf of a PSU without requiring re-authorisation for each individual payment.

All mutating calls are ES512 request-signed and carry idempotency keys.

Summary

Functions

Check whether sufficient funds are available under a mandate.

Create a mandate (POST /v3/mandates).

Get constraints for a mandate (GET /v3/mandates/{id}/constraints).

Get a mandate by ID (GET /v3/mandates/{id}).

List mandates with optional cursor pagination (GET /v3/mandates).

Revoke an active mandate (POST /v3/mandates/{id}/revoke).

Start the authorization flow for a mandate.

Submit PSU consent for a mandate.

Submit provider selection for a mandate.

Functions

confirm_funds(client, mandate_id, amount_in_minor)

@spec confirm_funds(TruelayerClient.t(), String.t(), pos_integer()) ::
  {:ok, map()} | {:error, TruelayerClient.Error.t()}

Check whether sufficient funds are available under a mandate.

create_mandate(client, params, opts)

@spec create_mandate(TruelayerClient.t(), map(), keyword()) ::
  {:ok, map()} | {:error, TruelayerClient.Error.t()}

Create a mandate (POST /v3/mandates).

Required option

  • :operation_id — stable ID for idempotency

get_constraints(client, mandate_id)

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

Get constraints for a mandate (GET /v3/mandates/{id}/constraints).

get_mandate(client, mandate_id)

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

Get a mandate by ID (GET /v3/mandates/{id}).

list_mandates(client, opts \\ [])

@spec list_mandates(
  TruelayerClient.t(),
  keyword()
) :: {:ok, map()} | {:error, TruelayerClient.Error.t()}

List mandates with optional cursor pagination (GET /v3/mandates).

revoke_mandate(client, mandate_id)

@spec revoke_mandate(TruelayerClient.t(), String.t()) ::
  :ok | {:error, TruelayerClient.Error.t()}

Revoke an active mandate (POST /v3/mandates/{id}/revoke).

start_authorization_flow(client, mandate_id, params)

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

Start the authorization flow for a mandate.

submit_consent(client, mandate_id)

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

Submit PSU consent for a mandate.

submit_provider_selection(client, mandate_id, provider_id)

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

Submit provider selection for a mandate.