It is now possible to set the invoice number using the operationalNumber field during invoice creation.
This enhancement allows users to import an invoice already issued by another software while keeping its original number.
If operationalNumber is provided with a non-empty value, the invoice is automatically set to Closed status.
If operationalNumber is not specified or left empty, the invoice is created without a number and remains in Draft status.
It is possible to query either salesInvoice or directly from salesInvoiceLines.
Querying salesInvoice allows you to retrieve entire documents with all their associated line items.
This is useful when you need the complete context of a document, including all details of the related lines.
Querying salesInvoiceLines directly is beneficial when you want to filter or aggregate specific line item data across multiple documents, such as analyzing product sales, quantities, or prices.
Both known as Sales Invoices in the API context and in the product interface.
This resource is pivotal for invoicing customers after order fulfillment and serves as a legally binding request for payment.
The Sales Invoices entity leverages both standard and custom fields, allowing businesses to create detailed invoices that include necessary information like customer codes, discounts, product lines, and tax details.
This ensures compliance and contributes to a smoother accounts receivable process.
Workflow
Create the Invoice and Optionally View or Modify It: Start by creating a sales invoice using the SalesInvoice service.
Once created, you can view and make any necessary modifications to the invoice before finalizing it.
Close the Invoice to Prevent Further Modifications: Use the CloseSalesInvoice service to confirm the invoice.
This action locks the invoice, ensuring that its content cannot be changed. This step is essential for securing the invoice details before posting.
Post the Invoice to Generate Accounting Entries: After closing, proceed with posting the invoice using the PostSalesInvoice service.
Posting the invoice will generate the necessary accounting entries, making the invoice part of the company’s financial records.
View the Invoice’s Payment Due Dates: Check the payment due dates and related information using the SalesInvoiceOpenItems service.
This allows you to see when payments are expected and track outstanding amounts for the invoice.
Apply Partial or Full Payments to the Invoice: Manage the payments on the invoice by using the SalesOpenItemSettlement service.
You can apply both partial and full payments, keeping track of amounts paid and any remaining balances.
Generate a Credit Note if Necessary: In case of returns, refunds, or corrections, you can issue a credit note related to the invoice using the generateCreditNote service.
For salesInvoices, the operationalNumber is not assigned at the time of creation, unlike other document types.
It is only assigned after the CloseSalesInvoice operation.
Indicates whether a customer is subject to the equivalence surcharge regime.
The equivalence surcharge (totalFeeSurcharge), as applied in Spain, is a form of simplified VAT for retail traders who cannot recover VAT.
The rates of the equivalence surcharge vary according to the VAT rate applicable to the products, with surcharge rates of 5.2% for products with a general VAT of 21%, 1.4% for products with a reduced VAT of 10%, and other rates for different products or categories.
The equivalence surcharge is calculated on amount of general VAT (totalVatFee).
unused for the German market
socialName :
mandatory for the French market
no mandatory for the Spanish market
no mandatory for the Germany market
Specific to sales invoice documents
operationalNumber: It is possible to set the invoice number using this field during invoice creation.
If is provided with a non-empty value, the invoice will automatically be set to Closed status.
If is not specified or left empty, the invoice will be created without a number and remain in Draft status.
operationDate: This is the date on which the delivery of goods or the provision of services is carried out or completed.
It must necessarily be on or before the invoice date(Fulfillment date). COMING SOON This feature is currently in development and will be available in the next version. It’s already documented to keep you informed about its upcoming availability In the next version, it will be possible to specify an operationDate when it differs from the invoice date, allowing more flexibility in tracking the actual operation date separately from the invoicing date.
salesOrderNumber: This field allows the entry of an order number that has not been entered in Sage Active.
Additionally, this field can also accept an external invoice number in the context of importing invoices not entered in Sage Active.
Default value if not specified : “unspecified”
statusUPDATEDModifications have been made to the properties or attributes of this object recently.
Pending: (Draft) The invoice can be modified; it has not yet been transferred to accounting.
Closed: (Unposted) The invoice can no longer be modified; it was supposed to be transferred to accounting, but the operation failed or was canceled.
Posted: (Awaiting collection) The invoice can no longer be modified; it has been transferred to accounting.
PartiallyCollected: (Partially collected) The invoice is partially settled. Payments are pending.
Collected: (Collected) The invoice is fully settled.
Attention!
The Sage Active interface overrides the values Posted and PartiallyCollected of the status field with Overdue and PartiallyOverdue if the value of the firstDueDate field is earlier than the current date.
However, these values Overdue and PartiallyOverdue are not returned by the API, which instead returns Posted and PartiallyCollected, respectively.
To filter invoices that are overdue, you can use the following filter, replacing the date with the desired date (e.g., the current date or the current date minus a few days to allow for a grace period in overdue days):
If the query targets salesInvoices, then use lines to get the details of the lines.
If the query targets salesInvoiceLines, access the following fields directly, including the option to retrieve information on the parent salesInvoices.
Common to all documents
Fields
Type
Description
Length
idSSystem field that cannot be assigned
UUID
Id
creationDate SSystem field that cannot be assigned
DateTime
Date of creation
modificationDate SSystem field that cannot be assigned
DateTime
Last modification date
salesInvoices Parent Information
salesInvoices DATALOADERUtilize the DATALOADER feature to enrich your query by adding additional resource fields directly in the query.
salesInvoice
Fields of the parent salesInvoices
36
salesInvoiceId
UUID
salesInvoice ID
Product Information
productDATALOADERUtilize the DATALOADER feature to enrich your query by adding additional resource fields directly in the query.
Product ID See InfoAdditional information is available in the Info block below
productCode
String
Product code
15
productName
String
Product name
2500
unitOfMeasurementDATALOADERUtilize the DATALOADER feature to enrich your query by adding additional resource fields directly in the query.COMING SOON This feature is currently in development and will be available in the next version. It’s already documented to keep you informed about its upcoming availability
Unit of Measurement
Fields of Unit of Measurement
unitOfMeasurementIdDIn creation, this field can have a default value automatically calculatedCOMING SOON This feature is currently in development and will be available in the next version. It’s already documented to keep you informed about its upcoming availability
UUID
Unit of Measurement ID See InfoAdditional information is available in the Info block below
Tax and Price Information
totalQuantity
Int
Quantity product
unitPrice
Decimal
Unit price
totalNet
Decimal
Net price
vatPercentage RThis field is read-only, its value cannot be assigned
Decimal
VAT percentage See InfoAdditional information is available in the Info block below
equivalenceSurchargePercentageRThis field is read-only, its value cannot be assigned
Decimal
Surcharge percentage See InfoAdditional information is available in the Info block below
Discounts
firstDiscount
Decimal
First discount percentage See InfoAdditional information is available in the Info block below
Info
unitOfMeasurementId: COMING SOON This feature is currently in development and will be available in the next version. It’s already documented to keep you informed about its upcoming availability UUID specifying the ID of the unit of measurement associated with the product.
firstDiscount: Various levels of discounts applicable to the document line. These are optional fields and are usually filled in based on promotional schemes or contractual obligations.
productId: The unique identifier for the product. Automatically filled when selecting a product.
vatPercentage: The percentage of Value Added Tax (VAT) applicable to this line. Important for accounting and for generating accurate invoices.
equivalenceSurchargePercentage: The percentage of equivalence surcharge applied in Spain .
salesInvoices/openItems
An Open Item is a financial transaction that allows you to know if it has been fully settled or paid.
Each open item includes detailed information such as the total amount, accumulated amount paid, and the payment due date.
For a single invoice, there can be as many open items as there are different payment installments, which is why openItems is structured as an array to accommodate multiple entries per invoice.
The payment status provides insight into the progress of settling each item.
Additionally, the identifier of the payment method used is provided to track the settlement method.
Fields
Type
Description
idSSystem field that cannot be assigned
UUID
Id
creationDate SSystem field that cannot be assigned
DateTime
Creation Date
modificationDate SSystem field that cannot be assigned
DateTime
Modification Date
amount
Decimal
Total amount of the item See InfoAdditional information is available in the Info block below
paidAmountAccumulated
Decimal
Accumulated amount that has been paid See InfoAdditional information is available in the Info block below
dueDate
DateTime
Due date for the payment See InfoAdditional information is available in the Info block below
status
NOT_SPECIFIED
COLLECTED
PAID
PARTIAL
Status of the payment See InfoAdditional information is available in the Info block below
paymentMeanDATALOADERUtilize the DATALOADER feature to enrich your query by adding additional resource fields directly in the query.
creationDate : Indicates when the item was initially created.
modificationDate : Timestamp of the last update to the item, null if no updates have been made.
paidAmountAccumulated : Total amount that has been paid towards the item up to the current date.
dueDate : Date by which the payment for the item is due.
status: Represents the current status of the payment, indicating the extent to which the item has been settled. The possible values are:
NOT_SPECIFIED: No specific payment status has been detailed.
COLLECTED: Payment has been fully collected from customers.
PAID: Not used for Customers
PARTIAL: Payment for the item has been made partially.
salesInvoices/addresses
Common to all documents
Do not use the addresses[] array.
Instead, use mainAddress for the primary address and deliveryAddress for the delivery address.
Each of these objects contains only one address, representing a singular primary or delivery address, respectively.
countryDATALOADERUtilize the DATALOADER feature to enrich your query by adding additional resource fields directly in the query.
String
Fields of Country
countryIsoCodeAlpha2MutThis field can only be used in mutations, not in queries
String
Country Code See InfoAdditional information is available in the Info block below
2
countryNameRThis field is read-only, its value cannot be assigned
String
CountryName
name
String
Code
50
firstLine
String
First Line
35
secondLine
String
Second Line
35
city
String
Town
35
zipCode
String
Postal Code
9
province
String
Province
25
Info
countryIsoCodeAlpha2 : ISO2 country code.
This field can be used for creation and serves as a simple alternative to assign the country of the address by using the ISO2 code directly, rather than the country ID in the Countries resource.