Current section
Files
Jump to
Current section
Files
lib/ports/payment_gateway.ex
defmodule Bold.Ports.PaymentGateway do
@moduledoc """
Behaviour for payment gateways.
"""
alias Bold.Types.{
Error,
PaymentLinkRequest,
PaymentLinkResponse,
PaymentMethodsResponse,
PaymentStatusResponse
}
@callback create_link(PaymentLinkRequest.t()) ::
{:ok, PaymentLinkResponse.t()} | {:errors, list(Error.t())}
@callback get_link(String.t()) :: {:ok, PaymentStatusResponse.t()} | {:errors, list(Error.t())}
@callback list_methods() :: {:ok, PaymentMethodsResponse.t()} | {:errors, list(Error.t())}
end