Worldpay.APMs (Worldpay v1.0.0)

Copy Markdown View Source

Worldpay APMs API — Alternative Payment Methods.

Supports 28 APMs across eWallets, bank transfers, direct debits, BNPL, and local card schemes.

Supported APMs

ACH · Alipay China · Alipay HK · Alipay+ · BANCOMAT Pay · Bancontact · Bizum · BLIK · Canadian EFT · Euteller · iDEAL · Klarna · Konbini · Multibanco · MyBank · Open Banking · PayPal · PaysafeCard · Pix · Przelewy24 · SafetyPay · SEPA Direct Debit · Swish · Toss Pay · Trustly · WeChat Pay · China UnionPay

Lifecycle actions

Follow _actions links from responses, or use the convenience functions:

{:ok, _} = Worldpay.APMs.settle(payment_id, config)
{:ok, _} = Worldpay.APMs.reverse(payment_id, config)
{:ok, _} = Worldpay.APMs.partial_reverse(payment_id, 500, "EUR", config)

Summary

Functions

Build an ACH / eCheck payment instrument.

POST to an _actions link returned in a previous APM response.

Build an Alipay instrument.

Build a Bancontact instrument.

Build a BLIK instrument.

Get APM payment status.

Build an iDEAL payment instrument.

Build a Klarna payment instrument.

Build a MyBank instrument.

Build an Open Banking instrument.

Initiate an APM payment.

Build a PayPal payment instrument.

Build a Pix instrument (requires Brazilian CPF document).

Build a Przelewy24 instrument.

Reverse (cancel) an APM payment.

Build a SEPA Direct Debit instrument.

Build a Swish instrument.

Build a WeChat Pay instrument.

Functions

ach(account_number, routing_number, account_type \\ "checking")

@spec ach(String.t(), String.t(), String.t()) :: %{required(String.t()) => String.t()}

Build an ACH / eCheck payment instrument.

action(href, body \\ %{}, config)

@spec action(String.t(), map(), Worldpay.Config.t()) ::
  {:ok, map()} | {:error, Worldpay.Error.t()}

POST to an _actions link returned in a previous APM response.

alipay(variant \\ "alipay")

@spec alipay(String.t()) :: %{required(String.t()) => String.t()}

Build an Alipay instrument.

bancontact(opts \\ [])

@spec bancontact(keyword()) :: %{required(String.t()) => String.t()}

Build a Bancontact instrument.

blik(blik_code)

@spec blik(String.t()) :: %{required(String.t()) => String.t()}

Build a BLIK instrument.

canadian_eft(account_number, transit_number, institution_number)

@spec canadian_eft(String.t(), String.t(), String.t()) :: %{
  required(String.t()) => String.t()
}

Build a Canadian EFT instrument.

get(payment_id, config)

@spec get(String.t(), Worldpay.Config.t()) ::
  {:ok, map()} | {:error, Worldpay.Error.t()}

Get APM payment status.

ideal(opts \\ [])

@spec ideal(keyword()) :: %{required(String.t()) => String.t()}

Build an iDEAL payment instrument.

klarna(klarna_type \\ "payLater", opts \\ [])

@spec klarna(
  String.t(),
  keyword()
) :: %{required(String.t()) => term()}

Build a Klarna payment instrument.

my_bank(opts \\ [])

@spec my_bank(keyword()) :: %{required(String.t()) => String.t()}

Build a MyBank instrument.

open_banking(opts \\ [])

@spec open_banking(keyword()) :: %{required(String.t()) => String.t()}

Build an Open Banking instrument.

partial_reverse(payment_id, amount, currency, config, opts \\ [])

@spec partial_reverse(
  String.t(),
  non_neg_integer(),
  String.t(),
  Worldpay.Config.t(),
  keyword()
) ::
  {:ok, map()} | {:error, Worldpay.Error.t()}

Partial reverse an APM payment.

partial_settle(payment_id, amount, currency, config, opts \\ [])

@spec partial_settle(
  String.t(),
  non_neg_integer(),
  String.t(),
  Worldpay.Config.t(),
  keyword()
) ::
  {:ok, map()} | {:error, Worldpay.Error.t()}

Partial settle an APM payment.

pay(body, config, opts \\ [])

@spec pay(map(), Worldpay.Config.t(), keyword()) ::
  {:ok, map()} | {:error, Worldpay.Error.t()}

Initiate an APM payment.

paypal(opts \\ [])

@spec paypal(keyword()) :: %{required(String.t()) => String.t()}

Build a PayPal payment instrument.

pix(cpf, opts \\ [])

@spec pix(
  String.t(),
  keyword()
) :: %{required(String.t()) => term()}

Build a Pix instrument (requires Brazilian CPF document).

przelewy24(opts \\ [])

@spec przelewy24(keyword()) :: %{required(String.t()) => String.t()}

Build a Przelewy24 instrument.

reverse(payment_id, config, opts \\ [])

@spec reverse(String.t(), Worldpay.Config.t(), keyword()) ::
  {:ok, map()} | {:error, Worldpay.Error.t()}

Reverse (cancel) an APM payment.

sepa(iban, mandate_reference)

@spec sepa(String.t(), String.t()) :: %{required(String.t()) => String.t()}

Build a SEPA Direct Debit instrument.

settle(payment_id, config, opts \\ [])

@spec settle(String.t(), Worldpay.Config.t(), keyword()) ::
  {:ok, map()} | {:error, Worldpay.Error.t()}

Settle an APM payment.

swish(phone_number)

@spec swish(String.t()) :: %{required(String.t()) => String.t()}

Build a Swish instrument.

wechat_pay()

@spec wechat_pay() :: %{required(String.t()) => String.t()}

Build a WeChat Pay instrument.