# `Tipalti.SOAP.Payee`
[🔗](https://github.com/iamkanishka/tipalti/blob/main/lib/tipalti/soap/payee.ex#L1)

Legacy SOAP API — Payee Functions (`PayeeFunctions.asmx`).

Every operation here signs the request per `Tipalti.SOAP.Signature` and
goes through `Tipalti.SOAP.Client.call/5`. Each function documents the
operation's EAT (Encryption Additional Terms) parameter, if it has one —
this is handled automatically, you never need to think about signing.

Every function has a raising `!` counterpart.

# `cancel_invoice`

```elixir
@spec cancel_invoice(Tipalti.Config.t(), String.t(), String.t()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Cancels an invoice.

# `cancel_invoice!`

# `close_payee_account`

```elixir
@spec close_payee_account(Tipalti.Config.t(), String.t()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Permanently closes a payee account.

# `close_payee_account!`

# `create_payee_info_auto_idap`

```elixir
@spec create_payee_info_auto_idap(Tipalti.Config.t(), map()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Creates a payee with a Tipalti-assigned IDAP. EAT: `street1`.

# `create_payee_info_auto_idap!`

# `get_extended_payee_details`

```elixir
@spec get_extended_payee_details(Tipalti.Config.t(), String.t()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Retrieves extended payee details (including banking/payment method) for one payee.

# `get_extended_payee_details!`

# `get_extended_payee_details_list`

```elixir
@spec get_extended_payee_details_list(Tipalti.Config.t(), [String.t()]) ::
  {:ok, map()} | {:error, Exception.t()}
```

Retrieves extended payee details for a list of payee IDs.

# `get_extended_payee_details_list!`

# `get_extended_po_details_list`

```elixir
@spec get_extended_po_details_list(Tipalti.Config.t(), String.t(), [String.t()]) ::
  {:ok, map()} | {:error, Exception.t()}
```

Retrieves extended purchase/payment order details for a list of reference codes. EAT: `poRefCode`.

# `get_extended_po_details_list!`

# `get_invoices_payable_amount`

```elixir
@spec get_invoices_payable_amount(Tipalti.Config.t(), String.t()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Returns the total payable amount across a payee's invoices.

# `get_invoices_payable_amount!`

# `get_last_payment_details_by_idap`

```elixir
@spec get_last_payment_details_by_idap(Tipalti.Config.t(), String.t()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Returns details of a payee's most recent payment.

# `get_last_payment_details_by_idap!`

# `get_payee_details`

```elixir
@spec get_payee_details(Tipalti.Config.t(), String.t()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Retrieves a payee's details.

# `get_payee_details!`

# `get_payee_invoice_list`

```elixir
@spec get_payee_invoice_list(Tipalti.Config.t(), String.t()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Lists a payee's invoices.

# `get_payee_invoice_list!`

# `get_payee_invoices_changed_since_timestamp`

```elixir
@spec get_payee_invoices_changed_since_timestamp(
  Tipalti.Config.t(),
  String.t(),
  integer()
) ::
  {:ok, map()} | {:error, Exception.t()}
```

Lists a payee's invoices changed since a Unix timestamp. EAT: `timestamp`.

# `get_payee_invoices_changed_since_timestamp!`

# `get_payee_pending_invoice_total`

```elixir
@spec get_payee_pending_invoice_total(Tipalti.Config.t(), String.t()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Returns the total of a payee's pending invoices.

# `get_payee_pending_invoice_total!`

# `get_payees_changed_since_timestamp`

```elixir
@spec get_payees_changed_since_timestamp(Tipalti.Config.t(), integer()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Retrieves payees changed since a Unix timestamp. EAT: `timestamp`.

# `get_payees_changed_since_timestamp!`

# `get_po_details`

```elixir
@spec get_po_details(Tipalti.Config.t(), String.t(), String.t()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Retrieves a purchase/payment order by reference code. EAT: `poRefCode`.

# `get_po_details!`

# `payee_payable`

```elixir
@spec payee_payable(Tipalti.Config.t(), String.t(), number()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Checks whether a payee is currently payable for the given amount. EAT: `amount`.

# `payee_payable!`

# `payee_payment_method`

```elixir
@spec payee_payment_method(Tipalti.Config.t(), String.t()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Retrieves a payee's currently selected payment method.

# `payee_payment_method!`

# `payee_status_update`

```elixir
@spec payee_status_update(
  Tipalti.Config.t(),
  String.t(),
  :active | :suspended | :blocked
) ::
  {:ok, map()} | {:error, Exception.t()}
```

Sets a payee's status. `status` is one of `:active`, `:suspended`, `:blocked`.

# `payee_status_update!`

# `payee_update_address`

```elixir
@spec payee_update_address(Tipalti.Config.t(), String.t(), map()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Updates a payee's address. EAT: `street1`.

# `payee_update_address!`

# `payee_update_email`

```elixir
@spec payee_update_email(Tipalti.Config.t(), String.t(), String.t()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Updates a payee's email address. EAT: `email`.

# `payee_update_email!`

# `payments_between_dates`

```elixir
@spec payments_between_dates(Tipalti.Config.t(), String.t(), String.t(), String.t()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Returns total payments to a payee between two dates. EAT: `from` (ISO8601 date).

# `payments_between_dates!`

# `update_or_create_payee_info`

```elixir
@spec update_or_create_payee_info(Tipalti.Config.t(), String.t(), map()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Creates or updates a payee's basic info. EAT: `street1`.

# `update_or_create_payee_info!`

# `update_payee_custom_fields`

```elixir
@spec update_payee_custom_fields(Tipalti.Config.t(), String.t(), map()) ::
  {:ok, map()} | {:error, Exception.t()}
```

Sets custom field values on a payee.

# `update_payee_custom_fields!`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
