Invoices

Create, update, delete, cancel, fetch and send Invoices using Curlec APIs.


You can use

to send invoices to your customers and accept payments instantly.

The invoice contains information regarding the sale such as the name of the ordered products or services, quantity, billing cycle, price breakup, receipt number and customer information.

You can create, update, cancel and delete invoices using our APIs.

API EndpointDescription
Creates an Invoice using a Customer id.
Creates an Invoice using customer details such as name and billing details.
Updates an Invoice.
Issues an Invoice.
Deletes an Invoice.
Cancels an Invoice.
Retrieves details of a particular Invoice using id.
Retrieve details of all Invoices.
Sends notifications to customers.

id

string The unique identifier of the invoice.

entity

string Indicates the type of entity. Here, it is invoice.

type

string Here, it should be invoice.

invoice_number

string Unique number you added for internal reference. The minimum character length is 1 and maximum is 40.

customer_id

string The unique identifier of the customer. You can create customer_id using the

. Alternatively, you can pass the customer object described in the below fields.

customer_details

object Details of the customer.

id

string Unique identifier of the customer. For example, cust_1Aa00000000004.

name

string Customer's name. Alphanumeric, with period (.), apostrophe (') and parentheses allowed. The name must be between 3-50 characters in length. For example, Gaurav Kumar.

email

string The customer's email address. A maximum length of 64 characters. For example, gaurav.kumar@example.com.

contact

string The customer's phone number. A maximum length of 15 characters including country code. For example, +919876543210.

billing_address

object Details of the customer's billing address.

id

string The unique identifier generated for the customer's billing address.

type

string The customer address type. Here it is billing_address.

primary

boolean Defines if this is the primary address.

line1

string The first line of the customer's address.

line2

string The second line of the customer's address.

city

string The city.

zipcode

string The zipcode.

state

string The state.

country

string The country.

shipping_address

object Details of the customer's shipping address.

id

string The unique identifier generated for the customer's shipping address.

type

string The customer address type. Here it is shipping_address.

primary

boolean Defines if this is the primary address.

line1

string The first line of the customer's address.

line2

string The second line of the customer's address.

city

string The city.

zipcode

string The zipcode.

state

string The state.

country

string The country.

order_id

string The unique identifier of the order associated with the invoice.

line_items

object Details of the line item that is billed in the invoice. Maximum of 50 line items.

id

string Unique identifier that is generated if a new item has been created while creating the invoice.

item_id

string Unique identifier of the item generated using Items API that has been billed in the invoice.

name

string The item's name.

description

string A brief description of the item.

amount

integer The price of the item.

currency

string The currency associated with the item. Possible value: MYR.

type

string Here, it is invoice.

quantity

integer The quantity of the item billed in the invoice. Defaults to 1.

payment_id

string Unique identifier of a payment made against this invoice.

status

string The status of the invoice. Know more about

. Possible values:
  • draft
  • issued
  • partially_paid
  • paid
  • cancelled
  • expired
  • deleted

expire_by

integer Timestamp, in Unix format, at which the invoice will expire.

issued_at

integer Timestamp, in Unix format, at which the invoice was issued to the customer.

paid_at

integer Timestamp, in Unix format, at which the payment was made.

cancelled_at

integer Timestamp, in Unix format, at which the invoice was cancelled.

expired_at

integer Timestamp, in Unix format, at which the invoice expired.

sms_status

string The delivery status of the SMS notification for the invoice sent to the customer. Possible values:

  • pending
  • sent

email_status

string The delivery status of the email notification for the invoice sent to the customer. Possible values:

  • pending
  • sent

partial_payment

boolean Indicates whether the customer can make a partial payment on the invoice. Possible values:

  • true: The customer can make partial payments.
  • false (default): The customer cannot make partial payments.

amount

integer Amount to be paid using the invoice. Must be in the smallest unit of the currency. For example, if the amount to be received from the customer is RMĀ 300.00, pass the value as 30000.

amount_paid

integer Amount paid by the customer against the invoice.

amount_due

integer The remaining amount to be paid by the customer for the issued invoice.

currency

string The currency associated with the invoice. Possible value is MYR.

description

string A brief description of the invoice. The maximum character length is 2048.

notes

object Any custom notes added to the invoice. Maximum of 2048 characters.

short_url

string The short URL that is generated. Share this link with customers to accept payments.

date

integer Timestamp, in Unix format, that indicates the issue date of the invoice.

terms

string Any terms to be included in the invoice. Maximum of 2048 characters.

comment

string Any comments to be added in the invoice. Maximum of 2048 characters.

Given below is the workflow for accepting payments using Invoices APIs:

  1. You can create a blank invoice (with no details at all) in draft state.
  2. Update it with necessary information. You can use to create items which you can later use as a template to create line items in an invoice.
  3. Issue it at a later time with the .
  4. You will get a short URL in the response after you issue the invoice to the customer.
  5. Send this URL to the customer to accept payments.

Was this page helpful?