CreateorUpdateInvoice API call is used to create bills in Tipalti. Please refer to more documentation here
Sample Request Code:
<!-- This is the CreateOrUpdateInvoice function for the No Approvals workflow
The Implementation Manager can recommend which workflow suits the business use case
The collection consists of API calls customized for each workflow as the 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 will be 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 2 elements here InvoiceLines and InvoiceLine.
The InvoiceLine holds the data of each line, where as the InvoiceLines is the Parent element.
Each invoice can have only one InvoiceLines element, and multiple InvoiceLines -->
<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, as InvoiceLines element is closed -->
<tip:Description>Invoice created via API with Postman by Tipalti testing</tip:Description>
<tip:InvoiceInternalNotes/>
<!-- Status will be pending payment, as the workflow is no approval workflow. -->
<!-- <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 if not using a ERP -->
<!-- <tip:ApAccountNumber>200110</tip:ApAccountNumber> -->
<!-- Not required - ApAccountExternalId - 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