Tipalti.API.Payer (tipalti v0.10.0) View Source

Payer functions.

Details are taken from: https://api.tipalti.com/v5/PayerFunctions.asmx

Link to this section Summary

Types

An invoice, used when creating invoices in create_or_update_invoices/1.

An invoice approver, used when creating invoices in create_or_update_invoices/1.

An invoice line item, used when creating invoices in create_or_update_invoices/1.

Functions

Not yet implemented

Not yet implemented

Not yet implemented

Not yet implemented

Create new invoices or update existing ones.

Not yet implemented

Not yet implemented

Get balances in your accounts.

Not yet implemented

Not yet implemented

Not yet implemented

Not yet implemented

Not yet implemented

Not yet implemented

Not yet implemented

Not yet implemented

Not yet implemented

Not yet implemented

Not yet implemented

Not yet implemented

Not yet implemented

Not yet implemented

Not yet implemented

Not yet implemented

Not yet implemented

Link to this section Types

Specs

invoice() :: %{
  :date => String.t(),
  :idap => Tipalti.idap(),
  :subject => String.t(),
  :can_approve => boolean(),
  :is_paid_manually => boolean(),
  optional(:ap_account_number) => String.t(),
  optional(:approvers) => [invoice_approver()],
  optional(:currency) => String.t(),
  optional(:custom_fields) => [Tipalti.key_value_pair()],
  optional(:description) => String.t(),
  optional(:due_date) => String.t(),
  optional(:income_type) => String.t(),
  optional(:internal_notes) => String.t(),
  optional(:line_items) => [invoice_line_item()],
  optional(:number) => String.t(),
  optional(:payer_entity_name) => String.t(),
  optional(:ref_code) => String.t(),
  optional(:status) => String.t()
}

An invoice, used when creating invoices in create_or_update_invoices/1.

Specs

invoice_approver() :: %{
  :email => String.t(),
  :name => String.t(),
  optional(:order) => integer()
}

An invoice approver, used when creating invoices in create_or_update_invoices/1.

Specs

invoice_line_item() :: %{
  :amount => String.t(),
  optional(:banking_message) => String.t(),
  optional(:currency) => String.t(),
  optional(:custom_fields) => [Tipalti.key_value_pair()],
  optional(:description) => String.t(),
  optional(:e_wallet_message) => String.t(),
  optional(:external_metadata) => String.t(),
  optional(:internal_notes) => String.t(),
  optional(:line_type) => String.t(),
  optional(:quantity) => integer()
}

An invoice line item, used when creating invoices in create_or_update_invoices/1.

Link to this section Functions

Specs

apply_vendor_credit() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

create_extended_payee_status_file()

View Source

Specs

create_extended_payee_status_file() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

create_or_update_custom_fields()

View Source

Specs

create_or_update_custom_fields() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

create_or_update_gl_accounts()

View Source

Specs

create_or_update_gl_accounts() :: {:error, :not_yet_implemented}

Not yet implemented

Specs

create_or_update_grns() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

create_or_update_invoices(invoices_params)

View Source

Specs

create_or_update_invoices([invoice()]) ::
  {:ok,
   [
     %{
       error_message: String.t() | nil,
       ref_code: String.t(),
       succeeded: boolean()
     }
   ]}
  | {:error, Tipalti.RequestError.t()}

Create new invoices or update existing ones.

Returns a list of invoice responses for each invoice, indicating if it succeeded and what the errors were if it didn't.

See https://support.tipalti.com/Content/Topics/Development/APIs/PayeeAPI/Intro.htm for details.

Parameters

  • invoices[]: List of maps of invoice params.
    • idap: Payee id.
    • ref_code: Uniq id for this invoice (leave null for auto-generated id).
    • date: Invoice value date (estimated date and time the payee receives the funds).
    • due_date: The date and time the invoice is due to be paid.
    • line_items[]: List of invoice lines.
      • currency: Invoice currency.
      • amount: Invoice line amount.
      • description: Description of the invoice line.
      • internal_notes: Notes which are not displayed to the payee.
      • e_wallet_message: A message to attach to the payment. This message is sent to providers and appears on payee bank statements. If no value is provided, the InvoiceRefCode is used..
      • banking_message: A message to attach to the payment. This message is sent to providers and appears on payee bank statements. If a value is not provided, the EWalletMessage is used.
      • custom_fields[]: If custom fields have been defined for the invoice entity, the values of these fields can be set here. The field name must match the defined custom field name.
        • key: The custom field key.
        • value: The custom field value.
      • line_type: ?
      • external_metadata: ?
      • quantity: ?
    • description: Description of the invoice.
    • can_approve: Indicates whether or not the payee is able to approve the invoice.
    • internal_notes: Notes, which are not displayed to the payee.
    • custom_fields[]: If custom fields have been defined for the invoice entity, the values of these fields can be set here. The field name must match the defined custom field name.
      • key: The custom field key.
      • value: The custom field value.
    • is_paid_manually: If true, the invoice is marked as paid manually.
    • income_type: If the Tax Withholding module is enabled and there are multiple income types that can be associated with the payment, then you must enter the IncomeType per payment.
    • status: ?
    • currency: Invoice currency.
    • approvers: ?
    • number: ?
    • payer_entity_name: The name of the payer entity linked to the invoice.
    • subject: The text for the title of the invoice, displays for the payee in the Payee Dashboard or Suppliers Portal.
    • ap_account_number: ?

Returns

{:ok, list} where list is a list of maps contains the following fields:

  • error_message: String; if there was an error creating the invoice.
  • ref_code: String; corresponds to the input invoices.
  • succeeded: Boolean; Indicates if creating the invoice succeeded.

Examples

iex> create_or_update_invoices([%{idap: "somepayee", can_approve: false, is_paid_manually: false, ref_code: "testinvoice1", due_date: "2018-05-01", date: "2018-06-01", subject: "test invoice 1", currency: "USD", line_items: [%{amount: "100.00", description: "test line item"}]}, %{idap: "somepayee", ref_code: "testinvoice2", due_date: "2018-06-01", date: "2018-05-01", subject: "test invoice 2", currency: "USD", line_items: [%{amount: "100.00", description: "test line item"}]}])
{:ok,
[
  %{
    error_message: "Due date cannot be earlier then invoice date",
    ref_code: "testinvoice1",
    succeeded: false
  },
  %{error_message: nil, ref_code: "testinvoice2", succeeded: true}
]}

iex> too_long_description = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
iex> create_or_update_invoices([%{idap: "somepayee", ref_code: "testinvoice3", due_date: "2018-05-01", date: "2018-06-01", description: too_long_description, currency: "USD", line_items: [%{amount: "100.00", description: "test line item"}]}])
{:error, %Tipalti.ClientError{error_code: "UnknownError", error_message: "Internal server errror"}}

iex> custom_fields = [%{key: "foo", value: "bar"}]
...> line_items = [%{amount: "100.00", description: "test line item", custom_fields: custom_fields}]
...> approvers = [%{name: "Mr. Approver", email: "approver@example.com", order: 1}]
...> invoice = %{idap: "somepayee", can_approve: false, is_paid_manually: false, ref_code: "testinvoice", due_date: "2018-06-01", date: "2018-05-01", subject: "test invoice", currency: "USD", line_items: line_items, custom_fields: custom_fields, approvers: approvers}
...> create_or_update_invoices([invoice])
{:ok, [%{error_message: nil, ref_code: "testinvoice", succeeded: true}]}
Link to this function

create_or_update_purchase_orders()

View Source

Specs

create_or_update_purchase_orders() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

create_payee_status_file()

View Source

Specs

create_payee_status_file() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

create_payment_orders_report()

View Source

Specs

create_payment_orders_report() :: {:error, :not_yet_implemented}

Not yet implemented

Specs

get_balances() ::
  {:ok, [Tipalti.Balance.t()]}
  | {:error, Tipalti.ClientError.t()}
  | {:error, Tipalti.RequestError.t()}

Get balances in your accounts.

Returns account provider, account identifier, currency and amount in balance. Note: when submitting a payment, the balance may take some time before it is updated.

Examples

iex> get_balances()
{:ok,
[
  %Tipalti.Balance{
    account_identifier: "1234",
    balance: Money.new("USD", "1000"),
    provider: "Tipalti"
  }
]}

Specs

get_custom_fields() :: {:error, :not_yet_implemented}

Not yet implemented

Specs

get_dynamic_key() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

get_dynamic_key_of_sub_payer()

View Source

Specs

get_dynamic_key_of_sub_payer() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

get_payee_invoices_list_details(invoice_ref_codes)

View Source

Specs

get_payee_invoices_list_details([Tipalti.Invoice.ref_code()]) ::
  {:ok, [Tipalti.Invoice.t()]}
  | {:error, Tipalti.ClientError.t()}
  | {:error, Tipalti.RequestError.t()}

Return list of payee invoices.

Parameters

  • invoice_ref_codes: list of invoice reference codes

Examples

iex> get_payee_invoices_list_details(["12345","12346"])
{:ok,
[
  %Tipalti.Invoice{
    amount_due: Money.new!(:USD, "3.61"),
    approval_date: nil,
    approvers: [],
    can_approve: false,
    custom_fields: [],
    date: ~D[2018-07-23],
    description: "Some invoice",
    due_date: ~D[2018-07-27],
    idap: "payee1",
    internal_notes: "Notes",
    is_paid_manually: false,
    line_items: [
      %Tipalti.Invoice.Line{
        amount: Money.new!(:USD, "3.61"),
        custom_fields: [],
        description: "Charges",
        line_type: nil,
        quantity: nil
      }
    ],
    number: "h6gz1gs2e",
    payer_entity_name: "SomePayee",
    ref_code: "12345",
    status: :pending_payment
  },
  %Tipalti.Invoice{
    amount_due: Money.new!(:USD, "10.47"),
    approval_date: nil,
    approvers: [],
    can_approve: false,
    custom_fields: [],
    date: ~D[2018-07-18],
    description: "Some other invoice",
    due_date: ~D[2018-07-20],
    idap: "payee2",
    internal_notes: "Notes notes notes",
    is_paid_manually: false,
    line_items: [
      %Tipalti.Invoice.Line{
        amount: Money.new!(:USD, "10.47"),
        custom_fields: [],
        description: "Charges",
        line_type: nil,
        quantity: nil
      }
    ],
    number: "h6gz1grv4",
    payer_entity_name: "SomePayee",
    ref_code: "12346",
    status: :pending_payment
  }
]}

Specs

get_payer_fees() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

get_processing_request_status()

View Source

Specs

get_processing_request_status() :: {:error, :not_yet_implemented}

Not yet implemented

Specs

get_provider_accounts() :: {:error, :not_yet_implemented}

Not yet implemented

Specs

get_updated_payments() :: {:error, :not_yet_implemented}

Not yet implemented

Specs

log_integration_error() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

process_multi_currency_payment_file()

View Source

Specs

process_multi_currency_payment_file() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

process_multi_currency_payment_file_async()

View Source

Specs

process_multi_currency_payment_file_async() :: {:error, :not_yet_implemented}

Not yet implemented

Specs

process_payment_file() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

process_payment_file_async()

View Source

Specs

process_payment_file_async() :: {:error, :not_yet_implemented}

Not yet implemented

Specs

process_payments() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

process_payments_async()

View Source

Specs

process_payments_async() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

process_payments_async_result()

View Source

Specs

process_payments_async_result() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

test_multi_currency_payment_file()

View Source

Specs

test_multi_currency_payment_file() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

test_multi_currency_payment_file_async()

View Source

Specs

test_multi_currency_payment_file_async() :: {:error, :not_yet_implemented}

Not yet implemented

Specs

test_payment_file() :: {:error, :not_yet_implemented}

Not yet implemented

Link to this function

test_payment_file_async()

View Source

Specs

test_payment_file_async() :: {:error, :not_yet_implemented}

Not yet implemented

Specs

test_payments() :: {:error, :not_yet_implemented}

Not yet implemented

Specs

test_payments_async() :: {:error, :not_yet_implemented}

Not yet implemented