Process Bills/Invoices
The CreateOrUpdateInvoices API call is used to create bills in Tipalti. See the documentation for more details.
Sample request code:
<!-- This is the CreateOrUpdateInvoices function for the No Approvals workflow.
Your implementation manager can recommend which workflow suits your business use case.
The collection consists of API calls customized for each workflow, as field requirements may differ. -->
<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tip="http://Tipalti.org/">
<x:Header/>
<x:Body>
<tip:CreateOrUpdateInvoices>
<tip:payerName></tip:payerName>
<tip:timestamp></tip:timestamp>
<tip:key></tip:key>
<tip:invoices>
<tip:TipaltiInvoiceItemRequest>
<tip:Idap></tip:Idap>
<!-- The ref code is auto-generated if not passed.
Each TipaltiInvoiceItemRequest can have only one ref code. -->
<!-- <tip:InvoiceRefCode></tip:InvoiceRefCode> -->
<tip:InvoiceDate>2022-12-12</tip:InvoiceDate>
<tip:InvoiceDueDate>2022-12-12</tip:InvoiceDueDate>
<!-- There are two elements here: InvoiceLines and InvoiceLine.
InvoiceLine holds the data for each line, while InvoiceLines is the parent element.
Each invoice can have only one InvoiceLines element, but multiple InvoiceLine entries. -->
<tip:InvoiceLines>
<tip:InvoiceLine>
<tip:Currency>USD</tip:Currency>
<tip:Amount>50.00</tip:Amount>
<tip:Description>Test API Line 1</tip:Description>
<!-- Optional fields -->
<!-- <tip:InvoiceInternalNotes/>
<tip:EWalletMessage/>
<tip:BankingMessage/>
<tip:LineExternalMetadata/> -->
<tip:Quantity>1</tip:Quantity>
<tip:BillLineID/>
</tip:InvoiceLine>
<tip:InvoiceLine>
<tip:Currency>USD</tip:Currency>
<tip:Amount>70.00</tip:Amount>
<tip:Description>Test API Line 2</tip:Description>
<!-- <tip:InvoiceInternalNotes/>
<tip:EWalletMessage/>
<tip:BankingMessage/>
<tip:LineExternalMetadata/> -->
<tip:Quantity>1</tip:Quantity>
<tip:BillLineID/>
</tip:InvoiceLine>
</tip:InvoiceLines>
<!-- Header-level fields, since the InvoiceLines element is closed -->
<tip:Description>Invoice created via API with Postman by Tipalti testing</tip:Description>
<tip:InvoiceInternalNotes/>
<!-- Status will be Pending Payment, since the workflow is No Approval. -->
<!-- <tip:InvoiceStatus></tip:InvoiceStatus> -->
<!-- If using a multi-entity setup -->
<tip:PayerEntityName></tip:PayerEntityName>
<!-- <tip:IsPaidManually>false</tip:IsPaidManually> -->
<tip:IncomeType/>
<tip:Currency>USD</tip:Currency>
<tip:InvoiceNumber>Test Invoice 1</tip:InvoiceNumber>
<tip:InvoiceSubject></tip:InvoiceSubject>
<!-- Required if using a prebuilt ERP; not required otherwise -->
<!-- <tip:ApAccountNumber>200110</tip:ApAccountNumber> -->
<!-- ApAccountExternalId isn't required if ApAccountNumber is passed -->
<!-- <tip:ApAccountExternalId></tip:ApAccountExternalId> -->
</tip:TipaltiInvoiceItemRequest>
</tip:invoices>
</tip:CreateOrUpdateInvoices>
</x:Body>
</x:Envelope>Python SDK
https://github.com/pratikkhatwani-tipalti/Tipalti-python-sdk