Function: CreateOrUpdateGLAccounts

The CreateOrUpdateGLAccounts function creates, updates or closes GL A general ledger (GL) is used for recording transactions related to business assets, liabilities, equity, revenue and expenses. accounts.

GL accounts are synchronized from the ERP to Tipalti.

  • Updating a GL account updates all bills assigned to the account.
  • If you update an account that is currently closed, the account will be reactivated and updated as specified.
  • If you update an account that does not currently exist, then one will be created.
  • If you close an account that does not currently exist, an account will be created and closed.
  • If the GL account is assigned to outstanding unpaid bills, the "Close" action will be rejected.
  • Closed GL accounts become "inactive" in Tipalti.

If a GL account that is already assigned to a bill becomes inactive, and the bill:

  • Has been approved already (i.e., bill status = "Pending payment" or later), the bill is not affected
  • Is in the approval process (i.e., bill status = "Pending approval", "Pending payee approval" or "Pending payee invoice"), the bill is sent automatically back to AP so that a new GL account can be assigned to the bill

The following is a sample SOAP 1.2 request and response. In the request, you need to replace the data types in yellow with actual values.

SOAP 1.2: Request

POST /v7/payerfunctions.asmx HTTP/1.1

Host: api.tipalti.com

Content-Type: application/soap+xml; charset=utf-8

Content-Length: length

<?xml version="1.0" encoding="utf-8"?>

<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">

<soap12:Body>

<CreateOrUpdateGLAccounts xmlns="http://Tipalti.org/">

<payerName>string</payerName>

<timestamp>​double​</timestamp>

<key>​string​</key>

<glAccounts>

<UpdateGLAccountRequest>

<TipaltiGLAccount>

<Name>string</Name>

<Number>integer</Number>

<AccountExternalId>string</AccountExternalId>

<Description>string</Description>

<MiscBox1099>string</MiscBox1099>

<Type>string</Type>

<Currency>string</Currency>

</TipaltiGLAccount>

<Action>string</Action>

<EntityName>string</EntityName>

</UpdateGLAccountRequest>

<UpdateGLAccountRequest>

<TipaltiGLAccount>

<Name>string</Name>

<Number>integer</Number>

<AccountExternalId>string</AccountExternalId>

<Description>string</Description>

<MiscBox1099>string</MiscBox1099>

<Type>string</Type>

<Currency>string</Currency>

</TipaltiGLAccount>

<Action>string</Action>

<EntityName>string</EntityName>

</UpdateGLAccountRequest>

</glAccounts>

</CreateOrUpdateGLAccounts>

</soap12:Body>

</soap12:Envelope>

SOAP 1.2: Response

HTTP/1.1 200 OK

Content-Type: application/soap+xml; charset=utf-8

Content-Length: length

<?xml version="1.0" encoding="utf-8"?>

<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">

<soap12:Body>

<CreateOrUpdateGLAccountsResponse xmlns="http://Tipalti.org/">

<CreateOrUpdateGLAccountsResult>

<errorMessage>string</errorMessage>

<errorCode>string</errorCode>

<b>boolean</b>

<i>integer</i>

<d>double</d>

<s>string</s>

</CreateOrUpdateGLAccountsResult>

</CreateOrUpdateGLAccountsResponse>

</soap12:Body>

</soap12:Envelope>

Request parameters

element

description

limitation

Mandatory?

data type

payerName The name of the payer, as assigned by Tipalti
  • Max. length = 50
  • Value is case sensitive
Mandatory string
timestamp

Current time (UTC) when the request is sent

Unix time Mandatory double
key Encryption key   Mandatory string
glAccounts
  • List of GL accounts
  • Each GL account is of type UpdateGLAccount
    Request.
  Mandatory Array of UpdateGLAccount
Request
(extension of type TipaltiGLAccount)

UpdateGLAccountRequest

element

description

limitations

Mandatory?

data type

TipaltiGLAccount GL account information   Optional Array of TipaltiGLAccount
Action
  • Whether to update or close the GL account
  • GL accounts that are currently active (i.e., assigned to outstanding unpaid bills) cannot be closed

Valid values:

  • Update (default)
  • Close
Optional string
EntityName The payer entity linked to the GL account
  • Max. length = 100
  • Alphanumeric characters only
Optional string
TipaltiGLAccount

element

Description

Limitation

Mandatory?

Data Type

Name The name of the GL account Max. length = 450 Mandatory string
Number
  • The number of the GL account
  • GL account numbers must be unique.
Max. length = 450 Optional integer
ExternalId An ID that uniquely identifies the GL account (e.g., in NetSuite, it is the "Internal ID") Max. length = 100 Mandatory string
Description A description of the GL account Max. length = 450 Optional string
MiscBox1099
  • The number of the corresponding box on the 1099-MISC form
  • If the field is left empty (NULL), the account will be considered "unmapped".

Valid values for expense accounts:

  • Non applicable
  • 1
  • 2
  • 3
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • nec1
  • nec2

Note: The values above apply to the "New IRS format (2020 and onwards)". Click here to see the "Old IRS format (pre-2020)".

Optional string
Type The type of GL account

Valid values:

  • Expense (default)
  • Accounts payable
  • Bank
  • Credit card
Optional string
Currency The currency of the GL account Length = 3 (per ISO 4217) Optional string

Response parameters

element

description

data type

CreateOrUpdateGL
AccountsResult
Contains the response parameters TipaltiResponse

TipaltiResponse

element

description

Limitation

data type

errorMessage A description of the error See API error codes. string
errorCode The status of the error See API error codes. string
b If the return code is Boolean, this parameter will carry the value.   boolean
i If the return code is integer, this parameter will carry the value.   integer
d If the return code is double, this parameter will carry the value.   double
s If the return code is string, this parameter will carry the value.   string