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
@spec confirm_funds(TruelayerClient.t(), String.t(), pos_integer()) :: {:ok, map()} | {:error, TruelayerClient.Error.t()}
Check whether sufficient funds are available under a mandate.
@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
@spec get_constraints(TruelayerClient.t(), String.t()) :: {:ok, map()} | {:error, TruelayerClient.Error.t()}
Get constraints for a mandate (GET /v3/mandates/{id}/constraints).
@spec get_mandate(TruelayerClient.t(), String.t()) :: {:ok, map()} | {:error, TruelayerClient.Error.t()}
Get a mandate by ID (GET /v3/mandates/{id}).
@spec list_mandates( TruelayerClient.t(), keyword() ) :: {:ok, map()} | {:error, TruelayerClient.Error.t()}
List mandates with optional cursor pagination (GET /v3/mandates).
@spec revoke_mandate(TruelayerClient.t(), String.t()) :: :ok | {:error, TruelayerClient.Error.t()}
Revoke an active mandate (POST /v3/mandates/{id}/revoke).
@spec start_authorization_flow(TruelayerClient.t(), String.t(), map()) :: {:ok, map()} | {:error, TruelayerClient.Error.t()}
Start the authorization flow for a mandate.
@spec submit_consent(TruelayerClient.t(), String.t()) :: {:ok, map()} | {:error, TruelayerClient.Error.t()}
Submit PSU consent for a mandate.
@spec submit_provider_selection(TruelayerClient.t(), String.t(), String.t()) :: {:ok, map()} | {:error, TruelayerClient.Error.t()}
Submit provider selection for a mandate.