Ibanity.PontoConnect.BulkPayment (ibanity v1.0.0)

Bulk Payment API wrapper

Link to this section Summary

Link to this section Functions

Link to this function

create(request)

Same as create/3, but :attributes, :account_id, and :token must be set in request.

examples

Examples

Set id and token to request a BulkPayment

iex> %Ibanity.PontoConnect.Token{}
...> |> Ibanity.Request.token()
...> |> Ibanity.Request.id(:account_id, account_id)
...> |> Ibanity.Request.attributes(attributes)
...> |> Ibanity.PontoConnect.BulkPayment.create()
{:ok, %Ibanity.PontoConnect.BulkPayment{id: "343e64e5-4882-4559-96d0-221c398288f3"}}
Link to this function

create(request_or_token, account_or_id, attrs)

Creates a bulk payment.

Returns {:ok, %__MODULE__{}} if successful, {:error, reason} otherwise.

example

Example

Fetch an account before each example, or use a valid account id

iex> {:ok, account_or_id} = token |> Ibanity.PontoConnect.Account.find("03ebe0ae-f630-4414-b37b-afde7de67229")

Or

iex> account_or_id = "03ebe0ae-f630-4414-b37b-afde7de67229"
"03ebe0ae-f630-4414-b37b-afde7de67229"

Attributes

iex> attributes = [
...>  reference: "Invoice Payments",
...>  redirect_uri: "https://fake-tpp.com/payment-confirmation?payment=123",
...>  requested_execution_date: "2025-05-05",
...>  batch_booking_preferred: true,
...>  payments: [
...>    %{
...>      remittance_information: "payment 1",
...>      remittance_information_type: "unstructured",
...>      currency: "EUR",
...>      amount: 59,
...>      creditor_name: "Alex Creditor",
...>      creditor_account_reference: "BE55732022998044",
...>      creditor_account_reference_type: "IBAN",
...>      creditor_agent: "NBBEBEBB203",
...>      creditor_agent_type: "BIC",
...>      end_to_end_id: "1234567890"
...>    },
...>    %{
...>      remittance_information: "payment 2",
...>      remittance_information_type: "unstructured",
...>      currency: "EUR",
...>      amount: 25,
...>      creditor_name: "Pat Smith",
...>      creditor_account_reference: "BE73055155935764",
...>      creditor_account_reference_type: "IBAN",
...>      creditor_agent: "NBBEBEBB203",
...>      creditor_agent_type: "BIC",
...>      end_to_end_id: "0987654321"
...>    }
...>  ]
...> ]

With token

iex> Ibanity.PontoConnect.BulkPayment.create(%Ibanity.PontoConnect.Token{}, account_or_id, attributes)
{:ok, %Ibanity.PontoConnect.BulkPayment{id: "343e64e5-4882-4559-96d0-221c398288f3"}}

With request

iex> request = Ibanity.Request.token(%PontoConnect.Token{})
iex> Ibanity.PontoConnect.BulkPayment.create(request, account_or_id, attributes)
{:ok, %Ibanity.PontoConnect.BulkPayment{id: "343e64e5-4882-4559-96d0-221c398288f3"}}
Link to this function

delete(request_or_token, ids)

Delete a Bulk Payment by id

Takes a map with the following keys as second argument:

examples

Examples

Fetch an account before each example, or use a valid account id

iex> {:ok, account_or_id} = token |> Ibanity.PontoConnect.Account.find("03ebe0ae-f630-4414-b37b-afde7de67229")

Or

iex> account_or_id = "03ebe0ae-f630-4414-b37b-afde7de67229"
"03ebe0ae-f630-4414-b37b-afde7de67229"

With token

iex> %Ibanity.PontoConnect.Token{}
...> |> Ibanity.PontoConnect.BulkPayment.delete(%{
...>   id: "953934eb-229a-4fd2-8675-07794078cc7d", account_id: account_or_id
...> })
{:ok, %Ibanity.PontoConnect.BulkPayment{id: "953934eb-229a-4fd2-8675-07794078cc7d"}}

With request

iex> %Ibanity.PontoConnect.Token{}
...> |> Ibanity.Request.token()
...> |> Ibanity.Request.application(:my_application)
...> |> Ibanity.PontoConnect.BulkPayment.delete(%{
...>   id: "953934eb-229a-4fd2-8675-07794078cc7d", account_id: account_or_id
...> })
{:ok, %Ibanity.PontoConnect.BulkPayment{id: "953934eb-229a-4fd2-8675-07794078cc7d"}}

Error

iex> %Ibanity.PontoConnect.Token{}
...> |> Ibanity.PontoConnect.BulkPayment.delete(%{
...>   id: "does-not-exist",
...>   account_id: account_or_id
...> })
{:error,
  [
    %{
      "code" => "resourceNotFound",
      "detail" => "The requested resource was not found.",
      "meta" => %{
        "requestId" => "00077F00000184847F0000011F4066E44223327005A",
        "resource" => "bulkPayment"
      }
    }
  ]}
Link to this function

find(request_or_token, ids)

Find Bulk Payment by id

Takes a Ibanity.PontoConnect.Token, or a Ibanity.Request with set :token as first argument.

Takes a map with the following keys as second argument:

examples

Examples

Fetch an account before each example, or use a valid account id

iex> {:ok, account_or_id} = token |> Ibanity.PontoConnect.Account.find("03ebe0ae-f630-4414-b37b-afde7de67229")

Or

iex> account_or_id = "03ebe0ae-f630-4414-b37b-afde7de67229"
"03ebe0ae-f630-4414-b37b-afde7de67229"


iex> %Ibanity.PontoConnect.Token{}
...> |> Ibanity.PontoConnect.BulkPayment.find(%{account_id: account_or_id, id: "d0e23b50-e150-403b-aa50-581a2329b5f5"})
{:ok, %Ibanity.PontoConnect.BulkPayment{id: "d0e23b50-e150-403b-aa50-581a2329b5f5"}}

iex> %Ibanity.PontoConnect.Token{}
...> |> Ibanity.Request.token()
...> |> Ibanity.Request.application(:my_application)
...> |> Ibanity.PontoConnect.BulkPayment.find(%{account_id: account_or_id, id: "d0e23b50-e150-403b-aa50-581a2329b5f5"})
{:ok, %Ibanity.PontoConnect.BulkPayment{id: "d0e23b50-e150-403b-aa50-581a2329b5f5"}}

iex> %Ibanity.PontoConnect.Token{}
...> |> Ibanity.PontoConnect.BulkPayment.find(%{account_id: account_or_id, id: "does-not-exist"})
{:error,
  [
    %{
      "code" => "resourceNotFound",
      "detail" => "The requested resource was not found.",
      "meta" => %{
        "requestId" => "00077F00000184847F0000011F4066E44223327005A",
        "resource" => "bulkPayment"
      }
    }
  ]}