Introduction

Welcome to the Silvasoft API documentation! The Silvasoft API allows you to retreive and add data to the Silvasoft cloud in a simple, programmatic way, using the Silvasoft REST API. The endpoints are intuitive and powerful, allowing you to easily make calls to retrieve or add information.

Mandatory parameters
If a parameter in the API has an asterix (*) indicator, it means the parameter is mandatory. If a parameter has a double asterix (**) indicator, it means that either one of the parameters with a double asterix is mandatory.

Explanation of the documentation structure
The API documentation will start with a general overview about the design and technology that has been implemented, followed by information about specific endpoints. Every endpoint includes an example CURL request and example responses.

Missing something?
Are you missing endpoints in the Silvasoft API? Please file a ticket from your Silvasoft account and we are happy to discuss this and possibly put it on the roadmap for API development.

Get started!
Scroll down to read through the documentation, or directly jump to a specific endpoint using the navigation.

Request and request methods

Request endpoint

The API endpoint base URL is:  https://rest-api.silvasoft.nl. A request is done to the base URL + /rest/endpoint/. For example:  https://rest-api.silvasoft.nl/rest/ListRelations. In the documentation below we have included an example per endpoint.

You can also access the API through the legacy URL’s: https://mijn.silvasoft.nl and https://mijn.offective.nl. Please note that support for these URL’s might be discontinued in the future.

Request methods

Any tool that is fluent in HTTP can communicate with the API simply by requesting the correct URI. Requests should be made using the HTTPS protocol so that traffic is encrypted. The interface responds to different methods depending on the action required.

Method Usage
GET For retrieval of information from your Silvasoft administration, you should use the GET method. The information you request will be returned to you as a JSON object. Any request using the GET method is read-only and will not affect any of the objects you are querying.
DELETE To delete data from your administration and remove it entirely from the Silvasoft database, use the DELETE method. This will remove the specified object if it is found. If it is not found, the operation will return a response indicating that the object was not found. The final state will be the same regardless of its existence.
PUT To update existing information, the PUT method is available. You cannot create new data using the PUT method.
POST To create a new object, your request should specify the POST method. The POST request includes all of the attributes necessary to create a new object. When you wish to create a new object, send a POST request to the target endpoint.

Authentication

In order to interact with the Silvasoft API, you or your application must authenticate. The Silvasoft API handles this through an API key which you can retreive from within your Silvasoft dashboard.

The API key functions as the most important part in the authentication process. In effect, it acts as a substitute for a password. Because of this, it is absolutely essential that you keep your API key secure. Upon generation from within Silvasoft, the web interface will only display the token a single time in order to prevent the token from being compromised.

So, in order to authenticate you must make sure you have the API module enabled in your Silvasoft account and you have an API key. To authenticate, Silvasoft expects two header parameters within every request: ApiKey and Username. The username obviously is the username you login to Silvasoft with.

An simple CURL example request can be found for every endpoint documentation on this website. The example includes the authentication headers.

Response

When a request is successful, a response body will typically be sent back in the form of a JSON object or an array of JSON objects.  Every endpoint description on this site includes an example response and explanation of all possible response parameters.

Silvasoft maintains the following response policies:

For every request:

  • HTTP status 401 including an errorMessage JSON object will be returned if authentication fails or ratelimit is exceeded. More information about error messages below.
  • HTTP status 400 including an errorMessage JSON object will be returned if the request was not processed correctly due to for example an error in submitted data or validation errors.
  • HTTP status 500 including an errorMessage JSON object will be returned if a technical error has occurred.

For PUT and POST requests:

  • HTTP status 200 with an empty JSON object will be returned if the object was not updated or created.
  • HTTP status 400 will probably occur instead, which will contain detailed information as to why the request did not succeed.
  • HTTP status 200 with an JSON representation of the update or newly created object will be returned if the request succeeded.

For GET requests:

  • HTTP status 200 with an empty JSON response with will be returned if no objects are found.
  • HTTP status 200 with an JSON array of items will be returned if there are objects found.

In general, when an error occurs, the response will contain JSON information about the error. A typical JSON error message will look like this:

Most common errors are:

  • HTTP 401, UNAUTHORIZED: Ratelimit exceeded
    You have exceeded the maximum requests for the past hour.
  • HTTP 401, UNAUTHORIZED: Invalid authentication credentials
    Your API key or username is incorrect or the combination of both is incorrect.
  • HTTP 400, INVALID_JSON: JSON is incorrect
    You have requested with invalid JSON data. The details are usually in the ‘errorMessage’
  • HTTP 405, METHOD_NOT_ALLOWED: Invalid HTTP method
    The request method is invalid or incompatible with the destination endpoint. 
  • HTTP 500, SYSTEMERROR: An system error has occured within Silvasoft
    If your call generates an technical error within Silvasoft, this error will be returned. 
    • GET rest/listrelations/

      • Get a list of relations

This GET method allows you to retreive a list of relations including contact and address details from your administration.

Note:

  • Sorting on “CustomerNumber” or “SupplierNumber” will return zero’s / null values first. Therefore it’s recommended to only use these sorting options in combination with the “RelationType” filter. For example, sort on CustomerNumber only if RelationType is set to “Customer” and sort on SupplierNumber only if RelationType is set to “Supplier”.
  • Request
  • Response

Parameters

RelationType String Details
(optional) Defines what type of relations to retreive. Value should be one of the following: All, Supplier, Customer
RelationNumber String Details
(optional) Filter the requested relations by number. This can be either the supplier number or the customer number
RelationName String Details
(optional) Filter the requested relations by the name of the business or private relation
RelationEmail String Details
(optional) Filter the requested relations by the e-mailadres of the relation
RelationVAT String Details
(optional) Filter the requested relations by the VAT number of the relation. Please note when using this filter, only business relations will be returned since private relations cannot have a VAT number. Also note that this parameter should include the VAT number without country code and without VAT addition such as B01 or B02.
RelationGUID Long Details
(optional) Retreive the relation with the specified GUID (unique identifier). This will always return 0 or 1 results.
SearchOperand String Details
When creating a request with multiple parameters, this setting can be used to switch between "AND" or "OR" condition checking. For example: when both parameters RelationName and RelationEmail are submitted and this setting is set to "AND", the query will only return relation where both RelationName AND RelationEmail match the parameters. However, if this setting is set to "OR" the query will return a list of relations that match with either the RelationName or the RelationEmail. This setting defaults to "AND". This setting only applies to the parameters: RelationNumber, RelationName, RelationEmail and RelationVAT.
ChangedSince Long Details
(optional) An UNIX timestamp in seconds. Will return only relations that are changed since the specified timestamp.
CreatedSince String Details
(optional) An UNIX timestamp in seconds. Will return only relations that are created since the specified timestamp.
Limit Integer Details
Defines the limit of items to retreive
Offset Integer Details
Defines the offset for the retreive
Sorting String Details
An optional sorting parameter. Recommended to use when using LIMIT and OFFSET parameters. Allowed sorting values: RelationGUID, CreatedDate, ChangedDate, CustomerNumber, SupplierNumber, RelationName
SortDir String Details
Defaults to "DESC". Allowed values: "ASC" (low to high) and "DESC" (high to low)

Request Example

Parameters

Email String More info
Relation e-mail address
Phone String More info
Relation phone number
Address_City String More info
City of the correspondence address
Address_Street String More info
Street of the correspondence address
Address_PostalCode String More info
Postalcode of the correspondence address
Address_CountryCode String More info
ISO 3166 (A2) country code of the correspondence address
Address_Unit String More info
Unit number of the correspondence address
Address_UnitAppendix String More info
Appendix (e.g. appartment/suite/floor) for the address unit
GroupName String More info
The name of the CRM group this relation is assoicated with.
IsCustomer Boolean (true|false) More info
Whether the relation is marked as customer or not
IsSupplier Boolean (true|false) More info
Whether the relation is marked as supplier or not
IsOther Boolean (true|false) More info
Wheter the relation is marked as other customer or not
SupplierNumber Integer More info
If the relation is a supplier, this will be the suppliers number
CustomerNumber Integer More info
If the relation is a customer, this will be the relations customernumber
RegistrationNumber String More info
This is the national registration number of the company
TaxIdentificationNumber String More info
This is the VAT number of the company
Relation_Contact Array More info
An JSON array containing the relation contacts
Relation_Contact > Email String More info
Contact e-mail address
Relation_Contact > Phone String More info
Contact phonenumber
Relation_Contact > Sex String More info
Contact Sex (Man|Vrouw)
Relation_Contact > LastName String More info
Contact last name
Relation_Contact > FamilyName String More info
Deprecated, use LastName instead.
Relation_Contact > FirstName String More info
Contact first name
Relation_Contact > Preposition String More info
The family name preposition (In Dutch: tussenvoegsel).
Relation_Contact > ContactNotes String More info
Notes to be added to the contact
Relation_Contact > DefaultContact String More info
Whether this contact is the relations main / default contact or not
PrivateOrBusiness String More info
Wether the relation is a private (cunsumer) or business relation. (PrivateRelation|BusinessRelation)
RelationGUID Long More info
Unique identifier for this relation. This will never change and always stay unique.
CreatedOn Long More info
An UNIX timestamp in seconds reflecting the date and time of creation.
ChangedOn Long More info
An UNIX timestamp in seconds reflecting the date and time of last change.
Relation_CustomField Array More info
An array of custom fields and their values for this relation.
Relation_CustomField > Label String More info
The custom field name / label
Relation_CustomField > DataType String More info
The datatype of this custom field. Can be used to determine which value field is needed. Possible data types: Decimal, Boolean, String, Integer, DateTime
Relation_CustomField > DateTimeValue String Date (dd-MM-yyyy) More info
The date value of the custom field.
Relation_CustomField > DecimalValue Float More info
The decimal value of the custom field
Relation_CustomField > BooleanValue Boolean (true|false) More info
The boolean value of the custom field
Relation_CustomField > StringValue String More info
The string value of the custom field
Relation_CustomField > IntValue String More info
The integer value of the custom field
Relation_CustomField > FieldType String More info
The field type as specified in Sivasoft. Possible field types: Integer, Date, Decimal, TextSmall, TextLarge, Hyperlink, Checkbox, List
Relation_CustomField > TypeOfRelation String More info
Possible values: Customer, Supplier, Other. Specifies whether the field is a customer field, supplier field or other relation field.

Response JSON Example

The response order can vary from the parameter order above
    • POST rest/addbusinessrelation/

      • Add a business relation

This POST method allows you to create a new business relation including contact and address details.

Important!
It is very important to understand how your request will be interpreted since this is a specific process and the outcome of your request can be unexpected.

General
First of all, the mandatory parameters are appended with an asterix (*). The rest of the parameters are not mandatory. The response of this request will be the details of the relation. The response format can be found in the ‘ListRelations’ endpoint response description.

Also, the parameters customerNumber and supplierNumber may not be 0. Sending 0 as number will be interpreted as an empty value.

Existing relations
If a relation already exists based on the submitted e-mailadress, company name, customernumber (if customer) or suppliernumber (if supplier), we will always return the existing relation. We will not execute any updates to this relation. Use ‘UpdateRelation’ endpoint instead.

If the relation already exists you can choose whether you still want to create a new (possibly duplicate) relation or if you want to get the existing relation in the response. Use parameters: OnExistingRelationNumber and OnExistingRelationName. Please see explanation below.

Tip: use the response parameter ‘createdOn’ to quickly check if the relation was just created by you or already created in the past.

Parameters “OnExistingRelationNumber” and “OnExistingRelationName”
Two parameters in this request needs some explanation: OnExistingRelationNumber and OnExistingRelationName. We will explain both parameters below.

OnExistingRelationName This field determines what should happen when the relation you POST already exist, based on the company name. The default behaviour is that we will return the already existing relation. However, if you want the creation of the relation to be forced you can add this parameter in your POST. When set to CONTINUE we will continue creating the relation, resulting in you having multiple relations with exactly the same name.

OnExistingRelationNumber This field determines how we should behave when the relation you POST already exist, based on the customer- or suppliernumber. The default behaviour is that we will return the already existing relation. However, if you want the creation of the relation to be forced you can add this parameter in your POST. When set to CONTINUE we will continue creating the relation, but with a new, unique number. When set to ABORT (default), we will abort the creation and return the already existing relation instead.

Please note that is is not required to post a cusomter- or suppliernumber. If you leave both numbers empty, we will automatically generate a number for you and return the newly created relation. 

  • Request
  • Response

Parameters

Name* String Details
Relation name
OnExistingRelationNumber String Details
ABORT|CONTINUE (defaults to ABORT)
OnExistingRelationName String Details
ABORT|CONTINUE (defaults to ABORT)
Email String Details
Relation e-mail address
Phone String Details
Relation phone number
Address_City String Details
City of the correspondence address
Address_Street String Details
Street of the correspondence address
Address_PostalCode String Details
Postalcode of the correspondence address
Address_CountryCode String Details
ISO 3166 (A2) country code of the correspondence address
Address_Unit String Details
Unit number of the correspondence address
Address_UnitAppendix String Details
Unit number appendix. Examples: a, b, or suite c.
IsCustomer Boolean (true|false) Details
Whether the relation is marked as customer or not
IsSupplier Boolean (true|false) Details
Whether the relation is marked as supplier or not
IsOther Boolean (true|false) Details
Wheter the relation is marked as other relation or not
SupplierNumber Integer Details
If the relation is a supplier, this will be the suppliers number
CustomerNumber Integer Details
If the relation is a customer, this will be the relations customernumber
RegistrationNumber String Details
This is the national registration number of the company
TaxIdentificationNumber String Details
Tax/VAT number without country code. Example: 123456789 or 12345678B01
GroupName String Details
The group to associate this relation with. If the group does not exist yet, a new group with the submitted name will be created.
Relation_Contact Array Details
An JSON array of contacts for the relation. The first contact will be used as the relations main contact.
Relation_Contact > Email String Details
Contact e-mail address
Relation_Contact > Phone String Details
Contact phonenumber
Relation_Contact > Sex String Details
Contact Sex (Man|Vrouw)
Relation_Contact > Preposition String Details
The family name preposition (In Dutch: tussenvoegsel).
Relation_Contact > LastName String Details
Contact last name
Relation_Contact > FirstName String Details
Contact first name
Relation_Contact > ContactNotes String Details
Notes to be added to the contact
Relation_CustomField Array Details
An array of custom field values to add to the relation. Custom field with specified label must already be created in Silvasoft (CRM settings)
Relation_CustomField > Label String Details
The label of the custom field. This must match the label as specified in Silvasoft.
Relation_CustomField > FieldType String Details
The fieldtype. Must correspond with the field type as specified in Silvasoft. Possible field types: Integer, Date, Decimal, TextSmall, TextLarge, Hyperlink, Checkbox, List
Relation_CustomField > TypeOfRelation String Details
(optional) Type of relation. You only need to specify this if you have duplicate field names in your custom field configuration across customers, suppliers or other relations. Allowed values: Customer, Supplier, Other.
Relation_CustomField > IntValue Integer Details
If FieldType is Integer you can specify the integer value here
Relation_CustomField > DecimalValue Float Details
If FieldType is Decimal you can specify the decimal value here
Relation_CustomField > BooleanValue Boolean (true|false) Details
If FieldType is Checkbox you can specify the boolean value here
Relation_CustomField > StringValue String Details
If FieldType is TextSmall or TextLarge or List or Hyperlink you can specify the string value here
Relation_CustomField > DateTimeValue Date String (dd-MM-yyyy) Details
If FieldType is Date you can specify the date string here
CreateSalesLead Boolean (true|false) Details
If set to true, a sales lead (Verkoopkans) will also be created for this relation.
Relation_SalesLead Array Details
A JSON array, containing just one item with more information regarding the sales lead. Optional and only applicable if 'CreateSalesLead' is set to True.
Relation_SalesLead > SalesLeadTitle String Details
A custom title for the sales lead to be created
Relation_SalesLead > SalesLeadStage String Details
The sales stage to put the lead in. If no stage is submitted the default stage will be used.
Relation_SalesLead > SalesLeadNotes String Details
Extra notes to be added to the sales lead

Request Example

The response will be the just created relation, or the already existing relation. The response format will be the same as the response format for endpoint 'ListRelations'. Please view the 'ListRelations' endpoint for details.

Parameters


Response JSON Example

The response order can vary from the parameter order above
    • POST rest/addprivaterelation/

      • Add a private (consumer) relation

This POST method allows you to create a new private relation (consumer) including contact and address details.

Important!
It is very important to understand how your request will be interpreted since this is a specific process and the outcome of your request can be unexpected.

General
First of all, the mandatory parameters are appended with an asterix (*). The rest of the parameters are not mandatory. The response of this request will be the details of the relation. The response format can be found in the ‘ListRelations’ endpoint response description.

Also, the parameter customerNumber may not be 0. Sending 0 as number will be interpreted as an empty value for this parameter.

Existing relations
If a relation already exists based on the submitted e-mailadress or customernumber, we will always return the existing relation. We will not execute any updates to this relation. Use ‘UpdateRelation’ endpoint instead.

If the relation already exists based on the customernumber you can choose whether you still want to create a new (possibly duplicate) relation or if you want to get the existing relation in the response. Use parameter OnExistingRelationNumber for this. Please see explanation below.

Tip: use the response parameter ‘createdOn’ to quickly check if the relation was just created by you or already created in the past.

Parameter “OnExistingRelationNumber”
Use the parameter OnExistingRelationNumber to decide how the API should behave when the relation you POST already exist, based on the customer number. The default behaviour is that we will return the already existing relation. However, if you want the creation of the relation to be forced you can add this parameter in your POST. When set to CONTINUE we will continue creating a new relation, but with a differtent, unique number. When set to ABORT (default), we will abort the creation and return the already existing relation instead.

Please note that is is not required to post a customernumber. If you leave it empty, we will automatically generate a number for you and return the newly created relation.

  • Request
  • Response

Parameters

OnExistingRelationNumber String Details
ABORT|CONTINUE (defaults to ABORT)
Address_City String Details
City of the correspondence address
Address_Street String Details
Street of the correspondence address
Address_PostalCode String Details
Postalcode of the correspondence address
Address_CountryCode String Details
ISO 3166 (A2) country code of the correspondence address
Address_Unit String Details
Unit number of the correspondence address
Address_UnitAppendix String Details
Unit number appendix. Examples: a, b, or suite c.
IsCustomer Boolean (true|false) Details
Whether the relation is marked as customer or not
IsOther Boolean (true|false) Details
Wheter the relation is marked as other relation or not
CustomerNumber Integer Details
If the relation is a customer, this will be the relations customernumber
GroupName String Details
The group to associate this relation with. If the group does not exist yet, a new group with the submitted name will be created.
Relation_Contact * Array Details
An JSON array of contacts for the relation. The first contact will be used as the relations main contact.
Relation_Contact > Email String Details
Contact e-mail address
Relation_Contact > Phone String Details
Contact phonenumber
Relation_Contact > Sex String Details
Contact Sex (Man|Vrouw)
Relation_Contact > LastName * String Details
Contact last name
Relation_Contact > FirstName * String Details
Contact first name
Relation_Contact > ContactNotes String Details
Notes to be added to the contact
Relation_CustomField Array Details
An array of custom field values to add to the relation. Custom field with specified label must already be created in Silvasoft (CRM settings)
Relation_CustomField > Label String Details
The label of the custom field. This must match the label as specified in Silvasoft.
Relation_CustomField > FieldType String Details
Relation_CustomField > FieldType
Relation_CustomField > TypeOfRelation String Details
(optional) Type of relation. You only need to specify this if you have duplicate field names in your custom field configuration across customers, suppliers or other relations. Allowed values: Customer, Supplier, Other.
Relation_CustomField > IntValue Integer Details
If FieldType is Integer you can specify the integer value here
Relation_CustomField > DecimalValue Float Details
If FieldType is Decimal you can specify the decimal value here
Relation_CustomField > BooleanValue Boolean (true|false) Details
If FieldType is Checkbox you can specify the boolean value here
Relation_CustomField > StringValue String Details
If FieldType is TextSmall or TextLarge or List or Hyperlink you can specify the string value here
Relation_CustomField > DateTimeValue String Details
If FieldType is Date you can specify the date string here
CreateSalesLead Boolean (true|false) Details
If set to true, a sales lead (Verkoopkans) will also be created for this relation.
Relation_SalesLead Array Details
A JSON array, containing just one item with more information regarding the sales lead. Optional and only applicable if 'CreateSalesLead' is set to True.
Relation_SalesLead > SalesLeadTitle String Details
A custom title for the sales lead to be created
Relation_SalesLead > SalesLeadStage String Details
The sales stage to put the lead in. If no stage is submitted the default stage will be used.
Relation_SalesLead > SalesLeadNotes String Details
Extra notes to be added to the sales lead

Request Example

The response will be the just created relation, or the already existing relation. The response format will be the same as the response format for endpoint 'ListRelations'. Please view the 'ListRelations' endpoint for details.

Parameters


Response JSON Example

The response order can vary from the parameter order above
    • PUT rest/updaterelation/

      • Update a CRM relation

This PUT method allows you to update information for a CRM relation. The relation to be updated is identified by the ‘RelationGUID’ parameter.

RelationGUID
Every relation has an unique identifier. Using the ListRelations endpoint you can extract the identifier for each relation.

  • Request
  • Response

Parameters

RelationGUID * Long Details
The unique identifier of the relation to be update
Email String Details
Relation e-mail address
Phone String Details
Relation phone number
RegistrationNumber String Details
This is the national registration number of the company. Only applies to business relations.
TaxIdentificationNumber String Details
Tax/VAT number without country code. Example: 123456789 or 12345678B01. Only applies to business relations.
Name String Details
Relation name. Only applies to business relations.
Address_City String Details
City of the correspondence address
Address_Street String Details
Street of the correspondence address
Address_PostalCode String Details
Postalcode of the correspondence address
Address_CountryCode String Details
ISO 3166 (A2) country code of the correspondence address
Address_Unit String Details
Unit number of the correspondence address
Address_UnitAppendix String Details
Unit number appendix. Examples: a, b, or suite c.
SupplierNumber Integer Details
If the relation is a supplier, this will be the suppliers number
CustomerNumber Integer Details
If the relation is a customer, this will be the relations customer number. Please note that this number must be unique in your administration.
IsSupplier Boolean (true|false) Details
Whether the relation is marked as suplier or not
IsCustomer Boolean (true|false) Details
Whether the relation is marked as customer or not
IsOther Boolean (true|false) Details
Whether the relation is marked as other relation or not
Relation_Contact Array Details
An JSON array with contact information to update the relation main contact. At the moment only one contact is supported.
Relation_Contact > Email String Details
Contact e-mail address
Relation_Contact > Phone String Details
Contact phonenumber
Relation_Contact > Sex String Details
Contact Sex (Man|Vrouw)
Relation_Contact > LastName String Details
Contact last name
Relation_Contact > FirstName String Details
Contact first name
Relation_Contact > ContactNotes String Details
Notes to be added to the contact
Relation_CustomField Array Details
An array of custom field values to add to the relation. Custom field with specified label must already be created in Silvasoft (CRM settings)
Relation_CustomField > Label String Details
The label of the custom field. This must match the label as specified in Silvasoft.
Relation_CustomField > FieldType String Details
The fieldtype. Must correspond with the field type as specified in Silvasoft. Possible field types: Integer, Date, Decimal, TextSmall, TextLarge, Hyperlink, Checkbox, List
Relation_CustomField > TypeOfRelation String Details
(optional) Type of relation. You only need to specify this if you have duplicate field names in your custom field configuration across customers, suppliers or other relations. Allowed values: Customer, Supplier, Other.
Relation_CustomField > IntValue Integer Details
If FieldType is Integer you can specify the integer value here
Relation_CustomField > DecimalValue Float Details
If FieldType is Decimal you can specify the decimal value here
Relation_CustomField > BooleanValue Boolean (true|false) Details
If FieldType is Checkbox you can specify the boolean value here
Relation_CustomField > StringValue String Details
If FieldType is TextSmall or TextLarge or List or Hyperlink you can specify the string value here
Relation_CustomField > DateTimeValue Date String (dd-MM-yyyy) Details
If FieldType is Date you can specify the date string here

Request Example

The response will be the updated relation. The response format will be the same as the response format for endpoint 'ListRelations'. Please view the 'ListRelations' endpoint for details.

Parameters


Response JSON Example

The response order can vary from the parameter order above
    • GET rest/listproducts

      • Get a list of products

Retreive a list of products from your administration. A maximum of 100 products will be returned at once. Use offset and limit parameters to retrieve more products over multiple calls. It is also possible to retreive just one specific product by adding the ArticleNumber or EAN request parameter.

  • Request
  • Response

Parameters

Category String Details
An optional parameter to only retreive products from one specific category
ArticleNumber String Details
An optional parameter to retreive only the product with exactly this articlenumber. The result will never be more than one item.
EAN String Details
An optional parameter to retrieve only the product with exactly this EAN code. The result will never be more than one item.
ChangedSince String Details
(optional) An UNIX timestamp in seconds. Will return only relations that are changed since the specified timestamp.
CreatedSince String Details
(optional) An UNIX timestamp in seconds. Will return only relations that are created since the specified timestamp.
Limit Integer Details
Defines the limit of items to retreive
Offset Integer Details
Defines the offset for the retreive
IncludeArchived Boolean (true|false) Details
Whether to include archived products (true) or not (false). Defaults to false.
IncludeStockPositions Boolean (true|false) Details
Whether to include information about stock positions (dutch: "Voorraadposities"). For example stock per warehouse / shelf / batch. Defaults to false.

Request Example

Parameters

Name String More info
The product name
ArticleNumber String More info
The article number (not nessecarily numeric)
Category String More info
Category name for this product
EAN String More info
Product EAN code
Description String More info
Product description, limited to 400 characters
StockQty Float More info
The actual stock quantity
PurchasePrice Float More info
The latest purchase price
Price Float More info
The default sale price excluding VAT
VATPercentage Float More info
The VAT percentage
Unit String More info
The product unit (example: 'piece' or 'hour')
MinimalStockQty Float More info
The minimal amount of stock for this product as specified in Silvasoft.
QtyInSalesOrder String More info
The stock quantity currently reserved by sales orders
QtyInPurchaseOrder String More info
The stock quantity currently expected by purchase orders
QtySalable String More info
The 'salable' stock quantity which is the actual quantity PLUS QtyInPurchaseOrder MINUS QtyInSalesOrder
SupplierArticleNumber String More info
The articlenumber of the default supplier for this article.
CreatedOn Long More info
An UNIX timestamp in seconds reflecting the date and time of creation.
ChangedOn Long More info
An UNIX timestamp in seconds reflecting the date and time of last change.
ProductOrService String More info
Whether the article is marked as 'Product' or as 'Service' in Silvasoft.
DeliveryPeriod String More info
The delivery period (in days) as configured for this product
Archived Boolean (true|false) More info
Whether the product is archived or not.
ProductResponse_CustomField Array More info
An array of custom fields and their values for this product
ProductResponse_CustomField > Label String More info
The custom field name / label
ProductResponse_CustomField > DataType String More info
The datatype of this custom field. Can be used to determine which value field is needed. Possible data types: Decimal, Boolean, String, Integer, DateTime
ProductResponse_CustomField > DateTimeValue String Date (dd-MM-yyyy) More info
The date value of the custom field
ProductResponse_CustomField > DecimalValue Float More info
The decimal value of the custom field
ProductResponse_CustomField Boolean (true|false) More info
The boolean value of the custom field
ProductResponse_CustomField > StringValue String More info
The string value of the custom field
ProductResponse_CustomField > IntValue Integer More info
The integer value of the custom field
ProductResponse_CustomField > FieldType String More info
The field type as specified in Sivasoft. Possible field types: Integer, Date, Decimal, TextSmall, TextLarge, Hyperlink, Checkbox, List
Product_StockPosition Array More info
An array of stock positions for this product
Product_StockPosition > Warehouse String More info
If the position is associated to a warehouse this will show the warehouse name
Product_StockPosition > Shelf String More info
If the position is associated to a shelf this will show the shelf name
Product_StockPosition > Batch String More info
If the position is associated to a batch this will show the batch name / number
Product_StockPosition > MinimalStockQty Float More info
The minimal stock quantity for this position as configured in Silvasoft
Product_StockPosition > StockQty Float More info
The actual stock quantity for this position
Product_StockPosition > QtyInSalesOrder Float More info
The stock quantity currently reserved by sales orders
Product_StockPosition > QtyInPurchaseOrder Float More info
The stock quantity currently expected by purchase orders
Product_StockPosition > QtySalable Float More info
The 'salable' stock quantity which is the actual quantity PLUS QtyInPurchaseOrder MINUS QtyInSalesOrder

Response JSON Example

The response order can vary from the parameter order above
    • POST rest/addproduct/

      • Add a product (article)

This POST method allows you to create a new product (catalog article).

Notes:

  • ArticleNumber, NewName and CategoryName are mandatory fields
  • You can set CategoryCreateIfMissing to true if you want the category to be created if it is not found.
  • The request and response parameters are the same as the request parameters for the endpoint ‘UpdateProduct’. Please see the endpoint updateproduct for more details.
  • Request
  • Response

Parameters

SEE ENDPOINT UpdateProduct String Details
Alle request parameters allowed for the endpoint UpdateProduct are allowed for this endpoint as well. The additional parameters are listed below.

Request Example

The response will be the just created product. The returned parameters are the same as the response parameters for the endpoint UpdateProduct.

Parameters


Response JSON Example

The response order can vary from the parameter order above
    • PUT rest/updateproduct/

      • Update information for a specific product

Update some product fields for a specific product. For example update product stock quantity or product price.

Note that it is not required to set all request parameters. For example, if you just want to update the stock value, there is no need to set the NewName parameter as well.

Updating the stock quantity for a grouped product ('verzamelproduct')?
  • Request
  • Response

Parameters

ArticleNumber ** String Details
You can use either AirtcleNumber or EAN to select the product to be updated.
EAN ** String Details
You can use either AirtcleNumber or EAN to select the product to be updated.
CategoryName String Details
The name of the category to associate the product with.
CategoryCreateIfMissing Boolean (true|false) Details
Defaults to false. Whether to create the category or not if it does not exist. If set to false (default) the product will not be added if the category is not found.
NewName String Details
The updated productname
NewSupplierArticleNumber String Details
The updated articlenumber used by the product's supllier
NewDescription String Details
The updated product description
NewSalePrice Float Details
The update product sale price
NewStockQty Float Details
If you want to update the products stock quantity, enter the amount here.
StockUpdateMode String Details
Choose either "Relative" or "Absolute" (defaults to Relative). Relative means: add the specified amount in the 'NewStockQty' parameter to the product stock quantity. Absolute means: set the product stock quantity to the value of 'NewStockQty'
NewStockMutationComment String Details
An optional description for this stock mutation
NewStockMutationPurchasePrice Float Details
The purchase costs for this stock modification (only applicable if stock is added / if NewStockQty is a positive value).
NewVATPercentage Float Details
The VAT percentage for this product, identified by a numeric %. Example value: 21 to update the VAT to 21%.
TaxCode String Details
The VAT percentage for this product, idenitifed by it's tax code. For example if you have multiple tax codes with the same percentage, you can identify a specific tax code with this parameter.
NewUnit String Details
The name of the product unit (for example: 'piece' or 'hour')
NewPurchasePrice Float Details
The purchase price (for the main / default supplier)
NewPurchasePriceVATPercentage Float Details
The purchase price VAT percentage, indentified by a numeric %. Example value: 21 to update the VAT to 21%.
TaxCodePurchase String Details
The purchase price VAT percentage for this product, idenitifed by it's tax code. For example if you have multiple tax codes with the same percentage, you can identify a specific tax code with this parameter.
Archived Boolean (true|false) Details
If set to true the product will be archived. Defaults to false.
Product_CustomField Array Details
An array of custom field values to add to the product. Custom field with specified label must already be created in Silvasoft (Product module settings)
Product_CustomField > Label String Details
The label of the custom field. This must match the label as specified in Silvasoft.
Product_CustomField > FieldType String Details
The fieldtype. Must correspond with the field type as specified in Silvasoft. Possible field types: Integer, Date, Decimal, TextSmall, TextLarge, Hyperlink, Checkbox, List
Product_CustomField > IntValue Integer Details
If FieldType is Integer you can specify the integer value here
Product_CustomField > DecimalValue Float Details
If FieldType is Decimal you can specify the decimal value here
Product_CustomField > BooleanValue Boolean (true|false) Details
If FieldType is Checkbox you can specify the boolean value here
Product_CustomField > StringValue String Details
If FieldType is TextSmall or TextLarge or List or Hyperlink you can specify the string value here
Product_CustomField > DateTimeValue Date String (dd-MM-yyyy) Details
If FieldType is Date you can specify the date string here
BatchStockUpdateMode String Details
Used in combination with the "Product_Batch" parameters below. Choose either "Relative" or "Absolute" (defaults to Relative). This setting applies to the stock updates performed for batches (see below). Relative means: add the specified amount in the 'BatchStockQty' parameter to the batch stock quantity. Absolute means: set the batch stock quantity to the value of 'BatchStockQty'.
BatchMatchMode String Details
Used in combination with the "Product_Batch" parameters below. Choose either "Description" or "Description_and_date". When set to "Description" we will search for a matching batch based on only the description. When set to "Description_and_date" we will search for a matching batch based on both the description and the expiry date. If no match is found we will create a new batch.
Product_Batch Array Details
An array of batch- or serienumbers to add or update for the product. If an existing batch is found the existing batch will be updated. Otherwise a new batch will be added to the product.
Product_Batch > Description String Details
The description of the batch to be updated / added.
Product_Batch > BatchExpiryDate Date String (dd-MM-yyyy) Details
The expiry date for the batch.
Product_Batch > BatchStockQty Float Details
The new stock quantity for the batch. Leave empty if you do not want to update the stock quantity.

Request Example

Parameters

Name String More info
The updated product name
ArticleNumber String More info
The article number (not nessecarily numeric)
SupplierArticleNumber String More info
The articlenumber of the default supplier for this article.
Category String More info
Category name for this product
EAN String More info
Product EAN code
Description String More info
Product description, limited to 400 characters
StockQty Float More info
The actual stock quantity
PurchasePrice Float More info
The latest purchase price
Price Float More info
The default sale price excluding VAT
VATPercentage Float More info
The VAT percentage
MinimalStockQty Float More info
The minimal required stock quantity for this product as configured in Silvasoft.
UnitsPerPackage Float More info
The suppliers units per package. In Silvasoft this is known as 'verpakkingseenheid'.
Unit String More info
The product unit (for example: 'piece' or 'hour')
CreatedOn String More info
An UNIX timestamp in seconds reflecting the date and time of creation.
ChangedOn String More info
An UNIX timestamp in seconds reflecting the date and time of last change.
ProductResponse_CustomField Array More info
An array of custom fields and their values for this product
ProductResponse_CustomField > Label String More info
The custom field name / label
ProductResponse_CustomField > DataType String More info
The datatype of this custom field. Can be used to determine which value field is needed. Possible data types: Decimal, Boolean, String, Integer, DateTime
ProductResponse_CustomField > DateTimeValue String Date (dd-MM-yyyy) More info
The date value of the custom field
ProductResponse_CustomField > DecimalValue Float More info
The decimal value of the custom field
ProductResponse_CustomField Boolean (true|false) More info
The boolean value of the custom field
ProductResponse_CustomField > StringValue String More info
The string value of the custom field
ProductResponse_CustomField > IntValue Integer More info
The integer value of the custom field
ProductResponse_CustomField > FieldType String More info
The field type as specified in Sivasoft. Possible field types: Integer, Date, Decimal, TextSmall, TextLarge, Hyperlink, Checkbox, List

Response JSON Example

The response order can vary from the parameter order above
    • GET rest/listorders/

      • Retrieve a list of sales orders

Retrieve a list of sales orders from your administration. A maximum of 50 orders will be returned at once. Use offset and limit parameters to retrieve more orders over multiple calls.

  • Request
  • Response

Parameters

Limit Integer Details
Defines the limit of items to retreive
Offset Integer Details
Defines the offset for the retreive
DateFrom Date String (dd-MM-yyyy) Details
The order from date in format dd-MM-yyyy. (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html). Default to no from date filter.
DateTill Date String (dd-MM-yyyy) Details
The order till date in format dd-MM-yyyy. (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html) Defaults to no till date.
ChangedSince String Details
(optional) An UNIX timestamp in seconds. Will return only relations that are changed since the specified timestamp.
CreatedSince String Details
(optional) An UNIX timestamp in seconds. Will return only relations that are created since the specified timestamp.
HtmlAsPlainText Boolean (true|false) Details
Whether the rich-text fields will be returned as plain text or not. Defaults to false.
OrderStatus String Details
A filter on order status (custom order status in Silvasoft). If specified the request will return only orders with the current status matching the status specified here.

Request Example

The response will be a list (JSON array) of retrieved orders. The returned are exactly the same as the returned parameters which are returned by the endpoint 'AddOrder'. Please check the response specifications for the endpoint 'AddOrder' for more info. For your convenience we have included a response example below.

Parameters


Response JSON Example

The response order can vary from the parameter order above
    • POST rest/addorder/

      • Add a sales order

This POST method allows you to create a new order with multiple orderlines, associated to a customer.

Notes:

  • Maximum 75 orderlines per order allowed.
  • If CustomerNumber is used to identify the customer, the parameters CustomerName and CustomerEmail will be ignored.
  • If CustomerName or CustomerEmail is used to identify the customer, and you have multiple customers that match, we will use the first found match.
  • The parameters CustomerName and CustomerEmail can also be used combined. When both parameters are submitted, the system will search for relations where both name and e-mail match with the submitted parameters.
  • Submitting an address is optional, if no address is submitted the default address for the relation will be used. When an address is submitted we will add the address to the relation file (CRM), if the address does not already exist. You can submit both a billing and shipping address using the ‘Address_Type’ field.
  • When submitting attachments you can either submit it by URL (Silvasoft will download the file from the URL) or as a binary string in the field ‘FileContent’. In both cases the file will be mime checked and it cannot be greater than 10mb. When using ‘FileContent’ you must supply a name as well.
  • Request
  • Response

Parameters

CustomerNumber ** Integer Details
The customer, identified by its customer number, to be associated with the order
CustomerName ** String Details
The customer, identified by its name, to be associated with the order
CustomerEmail ** String Details
The customer, identified by its e-mailaddress, to be associated with the order
OrderDate Date String (dd-MM-yyyy) Details
The order date in format dd-MM-yyyy. (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html) Defaults to current date.
OrderNotes String Details
Custom order notes / order description
OrderDiscountPc Float Details
Discount % to be applied to the order
OrderStatus String Details
Optional orderstatus to be associated with the order. If the status is not present in your Silvasoft administration the order will still be added, but the status will not be added to the order.
DeliveryPeriod Integer Details
The delivery period (in days) for this order
GeneralStatus String Details
Choose between: "concept_quote", "final_quote" and "order". If concept_quote it will be created as a concept quote in Silvasoft. If final_quote it will be created as a final quote in Silvasoft. If order (default) it will be created as order in Silvasoft. This impacts in which overview and with which status the quote/order will be shown in Silvasoft.
OrderReference String Details
Order reference number or text (max. 150 characters)
HtmlAsPlainText Boolean (true|false) Details
Whether the response rich-text fields will be returned as plain text or not. Defaults to false.
PackingSlipNotes String Details
Extra notes for the packing slip
Order_Orderline * Array Details
An JSON array of orderlines
Order_Orderline > ProductNumber ** String Details
The productnumber of the product to be associated with the orderline.
Order_Orderline > ProductEAN ** String Details
The product EAN code of the product to be associated with the orderline.
Order_Orderline > Quantity * Float Details
Quantity of items in this orderline
Order_Orderline > UnitPriceExclTax Float Details
Price per ordered unit
Order_Orderline > TaxPc Float Details
The VAT percentage for this order line, identified by a numeric %. Example value: 21 to use VAT 21%. Please note that this percentage must be available within your Silvasoft administration. If no tax details are submitted Silvasoft will use the tax percentage as configured for the product.
Order_Orderline > TaxCode String Details
The VAT percentage for this order line, idenitifed by it's tax code. For example if you have multiple tax codes with the same percentage, you can identify a specific tax code with this parameter. If no tax details are submitted Silvasoft will use the tax percentage as configured for the product.
Order_Orderline > SubTotalInclTax Float Details
The orderline subtotal, including taxes. When this parameter is set, the price per unit will be ignored and automatically calculated.
Order_Orderline > Description String Details
Orderline description
Order_Orderline > IsTextLine Boolean (true|false) Details
If this is a text line you can set this to true and omit price and tax fields
Order_Orderline > TextLineCategory String Details
Optionally submit the name of the text category. If nothing is submitted the default text category will be used.
Order_Orderline > UseArticlePrice Boolean (true|false) Details
If set to true (default is false) you will not need to supply any price details for this line. Silvasoft will get the default product price and discount rules for the article or article category, as configured within your administration.
Order_Address Array Details
A JSON array of addresses. If no address is submitted the default address for the relation will be used.
Order_Address > Address_City String Details
The address (city) to be used for the invoice. If the address does not already exist it will be added as a new address to the customer (CRM).
Order_Address > Address_Street String Details
The address (street) to be used for the invoice. If the address does not already exist it will be added as a new address to the customer (CRM).
Order_Address > Address_PostalCode String Details
The address (postalcode) to be used for the invoice. If the address does not already exist it will be added as a new address to the customer (CRM).
Order_Address > Address_CountryCode String Details
The address (ISO 3166 (A2) countrycode) to be used for the invoice. If the address does not already exist it will be added as a new address to the customer (CRM).
Order_Address > Address_Unit String Details
The address (unit) to be used for the invoice. If the address does not already exist it will be added as a new address to the customer (CRM).
Order_Address > Address_UnitAppendix String Details
The address (unit appendix) to be used for the invoice. If the address does not already exist it will be added as a new address to the customer (CRM).
Order_Address > Address_Type String Details
Allowed values: ShippingAddress and BillingAddress. Shipping_Address will be used for the packing slip. If no ShippingAddress is submitted the billing address will be used for the packing slip.
Order_Attachment Array Details
An array of attachments to add to this order.
Order_Attachment > FileUrl String Details
Method 1: Add an attachment by using a URL pointing to the file to be attached to the order. The file will be downloaded and added as attachment to the order. If the file is not downloadable, the order will still be created but without the attachment. The file URL must end with one of the following file extensions in order for it to be added to the order: .jpg, .png, .pdf, .doc, .docx, .xls, .xlsx
Order_Attachment > FileContent String Details
Method 2: Add a file as a binary string. When this field is submitted you MUST submit a FileName as well.
Order_Attachment > Internal Boolean (true|false) Details
Whether the attachment is 'Internal' (true) or 'Public' (false). Defaults to false.
Order_Attachment > FileName String Details
The name of the attachment WITH extension. Required when using 'FileContent'. Optional when using 'FileUrl'. If left empty a name will be auto-generated based on the current timestamp.

Request Example

The response will be the just created order. All the parameters available with the AddOrder request will be returned. In addition, the parameters below will be returned (if applicable):

Parameters

OrderTotalInclTax Float More info
The order total value, including taxes and optional discounts.
OrderNumber Integer More info
The automatically determined ordernumber
Order_Address Array More info
A JSON array of order addresses. At the moment this will never contain more then one address, which is the address selected for the order.
Order_Address > Address_CountryCode String More info
ISO 3166 (A2) country code of the order address
Order_Address > Address_PostalCode String More info
Postal / zip code
Order_Address > Address_Street String More info
Order_Address > Address_Unit String More info
Order_Address > Address_City String More info
Order_Address > Address_UnitAppendix String More info
Appendix (e.g. appartment/suite/floor) for the address unit
Order_Address > Address_Type String More info
Will either return 'BillingAddress' or 'ShippingAddress'. The 'BillingAddress' is the main address attached to the order. The 'ShippingAddress' is the packing slip address.
Order_Contact Array More info
A JSON array of order contacts. At the moment this will contain the main order contact and the packingslip contact (if applicable).
Order_Contact > ContactType String More info
Order|PackingSlip
Order_Contact > FirstName String More info
Order_Contact > Phone String More info
Order_Contact > Email String More info
Order_Contact > Sex String More info
Contact sex (Man|Vrouw)
Order_Contact > LastName String More info
Order_Contact > ContactNotes String More info
Custom CRM notes associated with the contact
Order_Contact > DefaultContact Boolean (true|false) More info
Whether the contact is the relations main (default) contact.
CreatedOn Long More info
An UNIX timestamp in seconds reflecting the date and time of creation.
ChangedOn Long More info
An UNIX timestamp in seconds reflecting the date and time of last change.
OrderStatus String More info
The label / name of the current order status

Response JSON Example

The response order can vary from the parameter order above
    • PUT rest/updateorder/

      • Update a sales order

This PUT method allows you to update a few properties on existing orders in your Silvasoft administration.

Notes:

  • If multiple orders are found for the given ordernumber, no order will be updated.
  • If an orderstatus is submitted, but the status is not present in your Silvasoft administration, the order will not be updated and you will receive an error response.
  • The response to the update action will be the updated order. For a response example and explanation on the response parameters, please see the endpoint ‘AddOrder’ as this will give a similar response.
  • You can omit a parameter to not update the field but maintain the original value.
  • Request
  • Response

Parameters

OrderNumber Long Details
The order number to identify the order to be updated.
OrderNotes String Details
Custom order notes / order description
OrderStatus String Details
Optional orderstatus to be associated with the order. If a status is given but not present in your Silvasoft administration the request will thrown an exception.
OrderReference String Details
Order reference number or text (max. 150 characters)
HtmlAsPlainText Boolean (true|false) Details
Whether the response rich-text fields will be returned as plain text or not. Defaults to false.

Request Example

The response to the update action will be the updated order. For a response example and explanation on the response parameters, please see the endpoint 'AddOrder' as this will give a similar response. 

Parameters


Response JSON Example

The response order can vary from the parameter order above
    • GET rest/listsalesinvoices/

      • Get a list of sales invoices including invoice details

This GET method allows you to retrieve a list of invoices from your administration. You can also retreive the details of a single invoice using the InvoiceNumber request parameter.

Notes:

  • Maximum 100 invoices will be returned per request. If “InlcudeInvoiceLinesInResponse” is set to true a maximum of 50 invoices will be returned.
  • You can retrieve more invoices by doing multiple requests and using the offset parameter
  • The returned invoices will be sorted by invoice number (descending)
  • Request
  • Response

Parameters

InvoiceNumber Integer Details
Optional parameter. Use this to retreive the details of a single invoice.
Limit Integer Details
Define an optional limit for the retrieve. Defaults to 100 which is also the maximum. When the parameter "InlcudeInvoiceLinesInResponse" is set to true the maximum is 50.
Offset Integer Details
Define an optional offset for the retrieve.
InlcudeInvoiceLinesInResponse Boolean (true|false) Details
If set to True the response will include invoicelines. Defaults to false.
DateFrom Date String (dd-MM-yyyy) Details
The invoice from date filter in format dd-MM-yyyy. (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html). Default to no from date filter.
DateTill String Details
The invoice till date filter in format dd-MM-yyyy. (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html). Default to no from date filter.

Request Example

Below the parameters you can see an example JSON response, containing 2 sales invoices

Parameters

CustomerNumber Integer More info
The customernumber of the relation associated with this invoice.
CustomerName String More info
The customer name of the relation associated with this invoice.
InvoiceNumber Integer More info
The invoice number
InvoiceNotes String More info
Notes added to the invoice
InvoiceDate String Date (dd-MM-yyyy) More info
The invoice date in format dd-MM-yyyy. (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html) Defaults to current date.
InvoiceReference String More info
If the invoice is created with the Invoicing module, this will return the (optional) invoice reference
InvoiceTotalExclTax Float More info
The total invoice amount excluding taxes
InvoiceTotalInclTax Float More info
The total invoice amount including taxes
InvoiceTaxAmount Float More info
The total VAT amount
InvoiceOutstandingAmount Float More info
The outstanding amount for this invoice (amount still to be payed)
InvoiceDueDate String Date (dd-MM-yyyy) More info
The invoice due date in format dd-MM-yyyy. (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html) Defaults to current date.
PackingSlipNotes String More info
Packing slip notes
ProjectName String More info
If the invoice is associated with a project, the project name will be returned
ProjectNumber String More info
If the invoice is associated with a project, the project number will be returned
InvoiceType String More info
This will either return BOOKKEEPING or INVOICING. If BOOKKEEPING is returned then the invoice is created as a bookkeeping sale transaction. If INVOICING is returned then the invoice is created from the invoicing module of the software.
DiscountPc Float More info
The discount % as configured for the invoice
InvoiceIsSent Boolean (true|false) More info
Whether the invoice has been sent. This will return true if the invoice has been sent per e-mail, or if you have marked the invoice as 'sent' in Silvasoft.
OGM_Belgium String More info
A string containing the structured remittance information (OGM). This is only applicable for Belgian Silvasoft customers.
Invoice_Contact Array More info
This contains a JSON array of contacts associated with the invoice. At the moment this will return the main contact of the invoice and the packing slip contact
Invoice_Contact > ContactType String More info
Invoice|PackingSlip
Invoice_Contact > FirstName String More info
Invoice_Contact > Phone String More info
Invoice_Contact > Email String More info
Invoice_Contact > Sex String More info
Contact sex (Man|Vrouw)
Invoice_Contact > LastName String More info
Invoice_Contact > ContactNotes String More info
Invoice_Contact > DefaultContact Boolean (true|false) More info
Invoice_Address String More info
A JSON array of order addresses. At the moment this will never contain more then one address, which is the address selected for the invoice.
Invoice_Address > Address_CountryCode String More info
ISO 3166 (A2) country code of the order address
Invoice_Address > Address_PostalCode String More info
Postal / zip code
Invoice_Address > Address_Street String More info
Invoice_Address > Address_Unit String More info
Invoice_Address > Address_City String More info
Invoice_Address > Address_UnitAppendix String More info
Appendix (e.g. appartment/suite/floor) for the address unit
Invoice_Address > AddressType String More info
Will either return 'BillingAddress' or 'ShippingAddress'. The 'ShippingAddress' is the address selected as packing slip address.
Invoice_InvoiceLine String More info
A JSON array of invoicelines. Will only be present if in the request "IncludeInvoiceLinesInResponse" is set to true.
Invoice_InvoiceLine > Description String More info
Invoice line description
Invoice_InvoiceLine > UnitPriceExclTax String More info
Price per ordered unit
Invoice_InvoiceLine > DiscountPc String More info
The discount percentages that has been applied to this invoiceline
Invoice_InvoiceLine > TextLineCategory String More info
In this is a 'TextLine' and the textline is associated to a category this will return the text category
Invoice_InvoiceLine > Quantity String More info
Quantity of units of the product for this invoice line
Invoice_InvoiceLine > ProductNumber String More info
The productnumber of the product associated with the invoice line
Invoice_InvoiceLine > SubTotalInclTax String More info
The invoiceline total, including tax and discounts on invoice level and line level.
Invoice_InvoiceLine > ProductEAN String More info
The product EAN code of the product associated with the invoice line.
Invoice_InvoiceLine > LedgerAccountNumber String More info
If the invoiceline is associated with a specific ledger account this field will show the ledger account number
Invoice_InvoiceLine > TaxPc String More info
Numeric representation of the tax % applied for this invoice line
Invoice_InvoiceLine > TaxCode String More info
The tax code applied to this invoice line
Invoice_InvoiceLine > CostCenter String More info
The Cost Center for the invoiceline (Dutch: Kostenplaats)
Invoice_InvoiceLine > IsTextLine String More info
Whether the invoice line is a textline or not
Invoice_InvoiceLine > DeliveryDate String Date (dd-MM-yyyy) More info
Delivery date as specified on the invoice line
Invoice_InvoiceLine > Warehouse String More info
If the invoice line is associated to a warehouse this will show the warehouse name
Invoice_InvoiceLine > Shelf String More info
If the invoice line is associated to a (warehouse) shelf this will show the shelf name
Invoice_InvoiceLine > Batch String More info
If the invoice line is associated to a batch this will show the batch name / number

Response JSON Example

The response order can vary from the parameter order above
    • POST rest/addsalestransaction/

      • Add a sales transaction

This POST method allows you to create a new sales invoice within the ‘Boekhouding’ (bookkeeping) module of our software.

Notes:

  • Maximum 75 invoice lines per invoice allowed.
  • If CustomerNumber is used to identify the customer, the parameters CustomerName and CustomerEmail will be ignored.
  • If CustomerName or CustomerEmail is used to identify the customer, and you have multiple customers that match, we will use the first found match.
  • The parameters CustomerName and CustomerEmail can also be used combined. When both parameters are submitted, the system will search for relations where both name and e-mail match with the submitted parameters.
  • You must add at least one invoice line.
  • Request
  • Response

Parameters

CustomerNumber ** Integer Details
The customer, identified by its customer number, to be associated with the invoice
CustomerName ** String Details
The customer, identified by its name, to be associated with the invoice
CustomerEmail ** String Details
The customer, identified by its e-mailaddress, to be associated with the invoice
InvoiceDate Date String (dd-MM-yyyy) Details
The invoice date in format dd-MM-yyyy. (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html) Defaults to current date.
InvoiceNumber Long Details
An optional invoice number. Please note this number MUST be unique.
InvoiceNotes String Details
The invoice description
InvoiceFileUrl String Details
A file URL containing the file to be attached to the invoice. The file will be downloaded and added as attachment to the invoice. If the file is not downloadable, the invoice will still be created but without attachment. The file URL must end with one of the following file extensions in order for it to be added to the invoice: .jpg, .png, .pdf, .doc, .docx, .gif
InvoiceProject String Details
The project by either projectnumber or project name to be associated with the invoide
SelectProjectBy String Details
Allowed values: NAME or NUMBER. Determines wether the value in the parameter 'InvoiceProject' is the projectname or projectnumber.
Invoice_InvoiceLine * Array Details
An JSON array of invoice lines. At least one record must be present.
Invoice_InvoiceLine > TaxPc ** Float Details
Numeric representation of the tax % to be applied for this invoice line. Please note that this percentage must be available within your Silvasoft administration.
Invoice_InvoiceLine > TaxCode ** String Details
The tax code to apply to this invoice line. For example if you have multiple tax codes with the same percentage, you can identify a specific tax code with this parameter.
Invoice_InvoiceLine > SubTotalInclTax * Float Details
The invoice line subtotal, including taxes. We will automatically calculate the totals excluding taxes based on the given tax percentage.
Invoice_InvoiceLine > Description String Details
Invoiceline description
Invoice_InvoiceLine > CostCenter String Details
The Cost Center for the invoiceline (Dutch: Kostenplaats). If the Cost Center does not exist in your administration, a new one will be created.
Invoice_InvoiceLine > LedgerAccountNumber String Details
The ledger accountnumber (Dutch: Grootboekrekeningnummer) to be associated with the invoiceline. The ledger account must be present in your administration.

Request Example

The response will a JSON array containing 1 record (the just created invoice). For information on the response parameters we refer to the endpoint 'ListSalesInvoices' since that will give exactly the same response. Or see below for a quick example reference.

Parameters


Response JSON Example

The response order can vary from the parameter order above
    • GET rest/listpurchasetransactions/

      • Get a list of purchase transactions (invoices) including invoice details

This GET method allows you to retrieve a list of purchase transactions (invoices) from your administration. You can also retreive the details of a single purchase using the InvoiceNumber request parameter.

Notes:

  • Maximum 100 invoices will be returned per request
  • You can retrieve more invoices by doing multiple requests and using the offset parameter
  • The returned invoices will be sorted by date (descending)
  • Request
  • Response

Parameters

InvoiceNumber Integer Details
Optional parameter. Use this to retreive the details of a single purchase transaction.
Limit Integer Details
Define an optional limit for the retrieve. Defaults to 100 which is also the maximum.
Offset Integer Details
Define an optional offset for the retrieve.
DateFrom Date String (dd-MM-yyyy) Details
The invoice from date filter in format dd-MM-yyyy. (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html). Default to no from date filter.
DateTill Date String (dd-MM-yyyy) Details
The invoice till date filter in format dd-MM-yyyy. (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html). Default to no from date filter.

Request Example

Below the parameters you can see an example JSON response, containing 2 sales invoices

Parameters

SupplierNumber Integer More info
The suppliernumber of the relation associated with this invoice.
SupplierName String More info
The suppliername of the relation associated with this invoice.
InvoiceNumber Integer More info
The invoice number
InvoiceNotes String More info
Notes added to the invoice
InvoiceDate String Date (dd-MM-yyyy) More info
The invoice date in format dd-MM-yyyy. (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html) Defaults to current date.
InvoiceTotalExclTax Float More info
The total invoice amount excluding taxes
InvoiceTotalInclTax Float More info
The total invoice amount including taxes
InvoiceTaxAmount Float More info
The total VAT amount
InvoiceOutstandingAmount Float More info
The outstanding amount for this purchase transaction (amount still to be payed)
InvoiceDueDate String Date (dd-MM-yyyy) More info
The invoice due date in format dd-MM-yyyy. (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html) Defaults to current date.
ProjectName String More info
If the invoice is associated with a project, the project name will be returned
ProjectNumber String More info
If the invoice is associated with a project, the project number will be returned
PurchaseInvoice_Contact Array More info
This contains a JSON array of contacts associated with the supplier. At the moment this will return only the main contact of the supplier.
PurchaseInvoice_Contact > ContactType String More info
Will always return "Invoice"
PurchaseInvoice_Contact > FirstName String More info
PurchaseInvoice_Contact > Phone String More info
PurchaseInvoice_Contact > Email String More info
PurchaseInvoice_Contact > Sex String More info
Contact sex (Man|Vrouw)
PurchaseInvoice_Contact > LastName String More info
PurchaseInvoice_Contact > ContactNotes String More info
PurchaseInvoice_Contact > DefaultContact Boolean (true|false) More info
PurchaseInvoice_Address String More info
A JSON array of customer addresses. At the moment this will never contain more then one address, which is the default address for the supplier.
PurchaseInvoice_Address > Address_CountryCode String More info
ISO 3166 (A2) country code of the order address
PurchaseInvoice_Address > Address_PostalCode String More info
Postal / zip code
PurchaseInvoice_Address > Address_Street String More info
PurchaseInvoice_Address > Address_Unit String More info
PurchaseInvoice_Address > Address_City String More info
PurchaseInvoice_Address > Address_UnitAppendix String More info
Appendix (e.g. appartment/suite/floor) for the address unit
PurchaseInvoice_Address > AddressType String More info
At the moment this will always return "InvoiceAddress"

Response JSON Example

The response order can vary from the parameter order above
    • POST rest/addpurchasetransaction/

      • Add a purchase transaction

This POST method allows you to create a new purchase invoice within the ‘Boekhouding’ (bookkeeping) module of our software.

Notes:

  • Maximum 75 invoice lines per invoice allowed.
  • If CustomerNumber is used to identify the customer, the parameters CustomerName and CustomerEmail will be ignored.
  • If CustomerName or CustomerEmail is used to identify the customer, and you have multiple customers that match, we will use the first found match.
  • The parameters CustomerName and CustomerEmail can also be used combined. When both parameters are submitted, the system will search for relations where both name and e-mail match with the submitted parameters.
  • You must add at least one invoice line.
  • Request
  • Response

Parameters

SupplierNumber ** Integer Details
The customer, identified by its customer number, to be associated with the invoice
SupplierName ** String Details
The customer, identified by its name, to be associated with the invoice
SupplierEmail ** String Details
The customer, identified by its e-mailaddress, to be associated with the invoice
InvoiceDate Date String (dd-MM-yyyy) Details
The invoice date in format dd-MM-yyyy. (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html) Defaults to current date.
InvoiceDueDate Date String (dd-MM-yyyy) Details
The invoice due date in format dd-MM-yyyy. (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html) Defaults to current date.
PurchaseInvoiceNumber Long Details
An optional purchase invoice number.
InvoiceNotes String Details
The invoice description
InvoiceFileUrl String Details
A file URL containing the file to be attached to the invoice. The file will be downloaded and added as attachment to the invoice. If the file is not downloadable, the invoice will still be created but without attachment. The file URL must end with one of the following file extensions in order for it to be added to the invoice: .jpg, .png, .pdf, .doc, .docx, .gif
InvoiceProject String Details
The project by either projectnumber or project name to be associated with the invoide
SelectProjectBy String Details
Allowed values: NAME or NUMBER. Determines wether the value in the parameter 'InvoiceProject' is the projectname or projectnumber.
Invoice_InvoiceLine * Array Details
An JSON array of invoice lines. At least one record must be present.
Invoice_InvoiceLine > TaxPc ** Float Details
Numeric representation of the tax % to be applied for this invoice line. Please note that this percentage must be available within your Silvasoft administration.
Invoice_InvoiceLine > TaxCode ** String Details
The tax code to apply to this invoice line. For example if you have multiple tax codes with the same percentage, you can identify a specific tax code with this parameter.
Invoice_InvoiceLine > SubTotalInclTax * Float Details
The invoice line subtotal, including taxes. We will automatically calculate the totals excluding taxes based on the given tax percentage.
Invoice_InvoiceLine > Description String Details
Invoiceline description
Invoice_InvoiceLine > CostCenter String Details
The Cost Center for the invoiceline (Dutch: Kostenplaats). If the Cost Center does not exist in your administration, a new one will be created.
Invoice_InvoiceLine > LedgerAccountNumber String Details
The ledger accountnumber (Dutch: Grootboekrekeningnummer) to be associated with the invoiceline. The ledger account must be present in your administration.
Invoice_InvoiceLine > PurchaseClassification String Details
Belgium administrations only: a purchase classification for the invoiceline. Can be either 81, 82 or 83.

Request Example

The response will a JSON array containing 1 record (the just created purchase transaction). For information on the response parameters we refer to the endpoint 'ListPurchaseInvoices' since that will give exactly the same response. Or see below for a quick example reference.

Parameters


Response JSON Example

The response order can vary from the parameter order above
    • GET rest/listtaxcodes/

      • Get a list of tax codes from the user's administration

This GET method allows you to retrieve a list of tax codes as configured in the user’s administration.

  • Request
  • Response

Parameters


Request Example

Below the parameters you can see an example JSON response, containing a few tax codes

Parameters

TaxExempt Boolean (true|false) More info
Whether the tax booked on this tax code is exempt or not
TaxPc Float More info
The tax percentages as a number (example: 9.00 or 21.00)
TaxCode String More info
The tax code which is a combination of the tax name and the tax percentages. The tax code is used in other API endpoints as well to idenitfy a tax item.
Name String More info
A user-given name for this tax code
TaxType String More info
Either 'Purchase' or 'Sales'. Please note tax codes of type 'Purchase' can only be used for purchase endpoints (purchasetransactions). Tax codes of type 'Sales' can only be used with sales endpoints (salesinvoice, salestransaction, orders)

Response JSON Example

The response order can vary from the parameter order above
    • POST rest/addsalesinvoice/

      • Add a sales invoice

This POST method allows you to create a new sales invoice and automatically mutate the invoiced products stock levels based on the invoice line quantities. This method will create an invoice within the ‘Facturatie’ (Invoicing) module of our software.

Notes:

  • Maximum 75 invoice lines per invoice allowed.
  • If CustomerNumber is used to identify the customer, the parameters CustomerName and CustomerEmail will be ignored.
  • If CustomerName or CustomerEmail is used to identify the customer, and you have multiple customers that match, we will use the first found match.
  • The parameters CustomerName and CustomerEmail can also be used combined. When both parameters are submitted, the system will search for relations where both name and e-mail match with the submitted parameters.
  • You are required to add at least one invoice line. The invoice line must either contain the parameter ‘ProductNumber‘ or ‘ProductEAN‘. The value entered in either of those fields must refer to an existing product in your Silvasoft administration.
  • A stock mutation for the selected product will be automatically created.
  • Submitting an address is optional, if no address is submitted the default address for the relation will be used. When an address is submitted we will add the address to the relation file (CRM), if the address does not already exist. You can submit both a billing and shipping address using the ‘Address_Type’ field.
  • When submitting attachments you can either submit it by URL (Silvasoft will download the file from the URL) or as a binary string in the field ‘FileContent’. In both cases the file will be mime checked and it cannot be greater than 10mb. When using ‘FileContent’ you must supply a name as well.
  • Request
  • Response

Parameters

CustomerNumber ** Integer Details
The customer, identified by its customer number, to be associated with the invoice
CustomerName ** String Details
The customer, identified by its name, to be associated with the invoice
CustomerEmail ** String Details
The customer, identified by its e-mailaddress, to be associated with the invoice
AddAsDraft Boolean (true|false) Details
Defaults to false. If set to true, the invoice will we added as a draft ('concept' invoice)
InvoiceDate Date String (dd-MM-yyyy) Details
The invoice date in format dd-MM-yyyy. (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html) Defaults to current date.
InvoiceNumber Long Details
An optional invoice number. Please note this number MUST be unique.
InvoiceNotes String Details
The invoice description
InvoiceDiscountPc Float Details
Discount % to be applied to the invoice
InvoiceReference String Details
Invoice reference number or text (max. 150 characters)
InvoiceDueDays Integer Details
In how much days must the invoice be payed? Leave empty or set to 0 to ignore.
InvoiceDueDate Date String (dd-MM-yyyy) Details
The due date for this invoice. Will be ignored and automatically calculated if InvoiceDueDays is set.
PackingSlipNotes String Details
Extra notes for the packing slip
InvoiceProject String Details
The project by either projectnumber or project name to be associated with the invoide
SelectProjectBy String Details
Allowed values: NAME or NUMBER. Determines wether the value in the parameter 'InvoiceProject' is the projectname or projectnumber.
OGM_Belgium String Details
A string containing the structured remittance information (OGM). This is only applicable for Belgian Silvasoft customers. Leave this empty if you want Silvasoft to generate the OGM (the generated OGM will be available in the response).
TemplateName_Invoice String Details
The template name to be used to generate the PDF invoice. If empty or not found the system will fall back to the default template or the template configured for the relation.
TemplateName_Email String Details
The template name to be used to generate the e-mail contents. If empty or not found the system will fall back to the default template or the template configured for the relation.
EmailToCustomer Boolean (true|false) Details
Whether you want to sent the generated invoice to the customer per e-mail. Defaults to false. E-mailing is done in background and there can be an delay of approx. 30 minutes before the mail is sent after the invoice is created.
HtmlAsPlainText Boolean (true|false) Details
Whether the response rich-text fields (notes and packing slip notes) will be returned as plain text or not. Defaults to false.
Invoice_InvoiceLine * Array Details
A JSON array of invoice lines. At least one record must be present.
Invoice_InvoiceLine > ProductNumber ** String Details
The productnumber of the product to be associated with the invoice line.
Invoice_InvoiceLine > ProductEAN ** String Details
The product EAN code of the product to be associated with the invoice line.
Invoice_InvoiceLine > Quantity * Float Details
Quantity of units of the product for this invoice line
Invoice_InvoiceLine > UnitPriceExclTax Float Details
Price per ordered unit
Invoice_InvoiceLine > TaxPc Float Details
Numeric representation of the tax % to be applied for this invoice line. Please note that this percentage must be available within your Silvasoft administration. If no tax details are submitted Silvasoft will use the tax percentage as configured for the product.
Invoice_InvoiceLine > TaxCode String Details
The tax code to apply to this invoice line. For example if you have multiple tax codes with the same percentage, you can identify a specific tax code with this parameter. If no tax details are submitted Silvasoft will use the tax percentage as configured for the product.
Invoice_InvoiceLine > SubTotalInclTax Float Details
The invoice line subtotal, including taxes. When this parameter is set, the price per unit will be ignored and automatically calculated.
Invoice_InvoiceLine > Description String Details
Invoice line description
Invoice_InvoiceLine > CostCenter String Details
The Cost Center for the invoiceline (Dutch: Kostenplaats). If the Cost Center does not exist in your administration, a new one will be created.
Invoice_InvoiceLine > IsTextLine Boolean (true|false) Details
If this is a text line you can set this to true and omit price and tax fields
Invoice_InvoiceLine > TextLineCategory String Details
Optionally submit the name of the text category. If nothing is submitted the default text category will be used.
Invoice_InvoiceLine > UseArticlePrice Boolean (true|false) Details
If set to true (default is false) you will not need to supply any price details for this line. Silvasoft will get the default product price and discount rules for the article or article category, as configured within your administration.
Invoice_Address Array Details
A JSON array of addresses. If no address is submitted the default address for the relation will be used.
Invoice_Address > Address_City String Details
The address (city) to be used for the invoice. If the address does not already exist it will be added as a new address to the customer (CRM).
Invoice_Address > Address_Street String Details
The address (street) to be used for the invoice. If the address does not already exist it will be added as a new address to the customer (CRM).
Invoice_Address > Address_PostalCode String Details
The address (postalcode) to be used for the invoice. If the address does not already exist it will be added as a new address to the customer (CRM).
Invoice_Address > Address_CountryCode String Details
The address (ISO 3166 (A2) countrycode) to be used for the invoice. If the address does not already exist it will be added as a new address to the customer (CRM).
Invoice_Address > Address_Unit String Details
The address (unit) to be used for the invoice. If the address does not already exist it will be added as a new address to the customer (CRM).
Invoice_Address > Address_UnitAppendix String Details
The address (unit appendix) to be used for the invoice. If the address does not already exist it will be added as a new address to the customer (CRM).
Invoice_Address > Address_Type String Details
Allowed values: ShippingAddress and BillingAddress. Shipping_Address will be used for the packing slip. If no ShippingAddress is submitted the billing address will be used for the packing slip.
Invoice_Attachment Array Details
An array of attachments to add to this invoice.
Invoice_Attachment > FileUrl String Details
Method 1: Add an attachment by using a URL pointing to the file to be attached to the invoice. The file will be downloaded and added as attachment. If the file is not downloadable, the order will still be created but without the attachment. The file URL must end with one of the following file extensions in order for it to be added to the order: .jpg, .png, .pdf, .doc, .docx, .xls, .xlsx
Invoice_Attachment > FileContent String Details
Method 2: Add an attachment as a binary string. When this field is submitted you MUST submit a FileName as well.
Invoice_Attachment > Internal Boolean (true|false) Details
Whether the attachment is 'Internal' (true) or 'Public' (false). Defaults to false.
Invoice_Attachment > FileName String Details
The name of the attachment WITH extension. Required when using 'FileContent'. Optional when using 'FileUrl'. If left empty a name will be auto-generated based on the current timestamp.

Request Example

The response will a JSON array containing 1 record (the just created invoice). For information on the response parameters we refer to the endpoint 'ListSalesInvoices' since that will give exactly the same response. Or see below for a quick example reference.

Parameters


Response JSON Example

The response order can vary from the parameter order above