curl "https://api.payload.com/invoices/" \
-u secret_key_3bW9JMZtPVDOfFNzwRdfE: \
-d "type=bill" \
-d "due_date=2020-01-01" \
-d "processing_id=acct_3bW9JMapnT7sw7neax7ui" \
-d "items[0][type]=item1" \
-d "items[0][amount]=29.99" \
-d "items[0][entry_type]=charge" \
-d "customer_id=acct_3bW9JMoGYQul5fCIa9f8q"
invoice = pl.Invoice.create(
items=[pl.ChargeItem(entry_type='charge', amount=100)],
due_date='2020-01-01',
customer_id='acct_3bsVUMvAUV8AdvbFWVSWD',
processing_id='acct_3bz0zU99AX06SJwfMmfn0',
)
invoice = Payload::Invoice.create(
type: 'bill',
processing_id: 'acct_3bz0zU99AX06SJwfMmfn0',
due_date: '2020-01-01',
items: [
Payload::ChargeItem.new(
type: 'item1',
amount: 29.99
)
],
customer_id: 'acct_3bW9JMoGYQul5fCIa9f8q'
)
<?php
$invoice = Payload\Invoice::create(array(
'type' => 'bill',
'processing_id' => 'acct_3c0EVDZYsO4lVTVGwoX89',
'due_date' => '2020-01-01',
'items' => array(
new Payload\LineItem(array(
'entry_type' => 'charge',
'amount' => 29.99
))
),
'customer_id' => 'acct_3bzs0vKOQllhhooaG0omz'
));
?>
const inv = await pl.Invoice.create({
type: 'bill',
processing_id: 'acct_3bW9JMapnT7sw7neax7ui',
due_date: '2020-01-01',
items: [
new pl.ChargeItem({
type: 'item1',
amount: 29.99
})
],
customer_id: 'acct_3bW9JMoGYQul5fCIa9f8q'
})
var invoice = await pl.Invoice.CreateAsync(new {
type = "bill",
processing_id = "acct_3bW9JMapnT7sw7neax7ui",
due_date = "2020-01-01",
items = new[] {
new pl.ChargeItem(new{
type="item1",
amount=29.99
})
},
customer_id = "acct_3bW9JMoGYQul5fCIa9f8q"
});
Invoicing is a simple way to create and track orders, and send payment requests. At the core, an invoice has a due date, an associated processing account for routing funds, line item charges, and an associated customer.
New invoices will have a default initial status of unpaid and be able to
accept a payment but you can also create
an invoice in draft mode by initializing the invoice with a status of draft.
An invoice in draft mode will prevent any payment attempts until
it's been finalized. Once an invoice in draft mode is ready for payment, update the status
to open to take the invoice out of draft mode.
Line items can be positive or negative values. The entry_type of a line item can be
either a charge or a payment. There are separate
type and description fields which can be used to identify
the line item.
Line items can accept a variable quantity with the qty attribute. This defaults to
1 if no qty is specified.
For a complete list of all available attributes, see the Line Item API reference.
An entry_type of charge refers to an incurred amount or discount by the biller. This is a standard line item type
used when creating an invoice to specify the items and amounts owed.
An entry_type of payment is reserved for payments from a customer and is associated with a transaction. To learn how to associate
a payment to an invoice, see the next section pay an invoice.