1. Home
  2. API
  3. API Documentation

API Documentation

PLANERGY’s API documents are guides that outline the application programming interface for developers, providing them with details to interact with PLANERGY programmatically.  

These documents include information on endpoints, authentication methods, request and response formats, specific functionalities, and features supported by PLANERGY’s API.

The following is the list of various PLANERGY API Documents.


PLANERGY Setup API User Manual

Authentication and Authorization

PLANERGY has implemented OAuth2 as its chosen protocol for authorizing calls to its API.   OAuth2 is the current widely recognized standard security protocol designed for authorizing API requests.

This protocol uses client ID and client secret credentials to obtain requests, access, and refresh tokens while maintaining a strict approach of never storing user credentials on any third-party infrastructure. 

For more information on the OAuth2 authorization framework, refer to https://tools.ietf.org/html/rfc6749.

Note

By implementing OAuth2, we prioritize the protection of user data and reinforce the trustworthiness of our system.

Outline of PLANERGY – OAuth2 Workflow 

The following diagram outlines the workflow of PLANERGY with OAuth2.

PLANERGY – OAuth2 Workflow 

Your application communicates with our PLANERGY server to exchange data over the API.

The workflow steps are as given below:

  1. Your app sends a GET request to our server with the URL parameters (https://oauth2web.purchasecontrol.com/OAuth2/Authorize).The URL parameters sent to our server through the GET request are as follows.
    • client_id –  This is the Client ID assigned to your application.
    • scope – The value to be used in this parameter is All as currently, this is the only supported option and it allows you to request access to all available resources or permissions related to the action being performed.
    • redirect_uri – This is a specific URL where the access code should be sent and it must be registered with PLANERGY auth servers before its usage. 
    • response_type – Code – This parameter specifies that the type of response expected from the authentication server when initiating the authorization flow is Code.  It is important to note that the value should be provided as a string without quotation marks.
    • state – This parameter can be used to include any information that you wish to be sent back to your application after the authorization process is completed.
  1. The information sent to our auth server is then verified.  After verification of the information, any of the following can take place.
    • If client_id or redirect_uri or any of the information is invalid, a server error message will be displayed containing the description of the error.
    • If all the information provided is valid, then the user is directed to our Auth page to authenticate the user.

Note

The Username(Email), Password, and Organization fields are mandatory for authentication where the Organization represents your application within PLANERGY.

  1. If the client-provided information in the authentication process is valid, the user will be redirected to a dedicated page to select a company.
    • The company selected here will be granted permission by the user to access the application.
    • If an application uses multiple companies, each one must be given permission separately.  
    • The following image displays an example where there are multiple companies for the user.

      Note


      Note that it is the responsibility of the application to allow access to multiple companies and track all the necessary codes/tokens.
  1. On pressing Connect, the control will be redirected to redirect_uri with the request. The redirection will be initiated through a GET request where the access code is provided as Code and the desired scope is included as a URL.
  1. Upon receiving the information through redirect_uri, the application will then resend this information as a request to the PLANERGY-OAuth2 server  (https://oauth2api.purchasecontrol.com/api/Tokens).  
    • This request should be made as a POST request and is directed to acquire access and refresh tokens that will then be used to make API calls.
    • The Basic authentication header should contain the client id and client secret in a format {clientid}:{clientsecret}.
    • The Basic authentication body should include the forms data collection as its payload containing the following parameters:
      • Grant_type This is the AUTHORIZATION_CODE.
      • Code – This is the code returned to the application in step 4.
      • redirect_uri – This is a specific URL where the access code should be sent and it must be registered with PLANERGY auth servers prior to its usage. 

Note

  • The information provided will then be verified and if found invalid, an error will be returned to the caller containing the JSON primitive Error message.
  • If the information is valid, then the response will be returned to the caller containing access and refresh tokens that can be further used to access API.
The returned payload will be in JSON format and have the following parameters:
    • refresh_token  – This is used to get a new access token when the access token expires.  Note that the refresh token ends itself in 100 days.
    • access_token – This is used to authenticate API calls and has an expiration period of 60 minutes.
    • expires_in – This gives the exact number of seconds within which the access_token will expire.
    • x_refresh_token_expires_in – This gives the exact number of seconds within which the refresh_token will expire.
    • token_type – This always returns the value Bearer.
    • api_url – This returns the uri of the base endpoint API to be used when making calls.

Note

It is the responsibility of the client application to store this information securely and connect to our API.

  1. You can use the retrieved access_token to authenticate to our API endpoint.  This access_token should be sent to API endpoints through the authorization token type Bearer.
    For example – Authorization: Bearer {access_token}
  1. In the event of the access_token expiration or invalidation, the application requiring API access can refresh the token freely as long as the corresponding refresh_token is still valid.
    • The access_token can be refreshed using a POST request similar to the one used for retrieving the access_token.
    • The Basic authentication header should contain the parameters clientid and clientsecret in the format {clientid}:{clientsecret}
    • The Basic authentication body should include forms data collection as its payload containing the following parameters: 
      • Grant_type – This is the REFRESH_TOKEN.
      • Refresh_token –  This is the refresh_token retrieved in step 5.

Note

  • This information will be verified and if found invalid, an error will be returned to the caller with an Error message as JSON primitive Error.
  • If the information is valid, the response will contain the new access token that can be used for accessing API, same as in step 5, .
  1. For disconnecting and invalidating both the access and refresh tokens in PLANERGY OAuth2 Server, you must send a POST request for revocation to the server’s designated endpoint. (https://oauth2api.purchasecontrol.com/api/Disconnect)
    • The Basic authentication header should contain the parameters clientid and clientsecret in the format {clientid}:{clientsecret}
    • The Basic authentication body should include forms data collection as its payload containing the following parameters: 
      • Grant_typeREVOKE – This is to revoke the request.
      • Access_token –  This is the access_token that is returned to the application in step 5.

Note

  • This information will be verified and if found invalid, an error will be returned to the caller with an Error message as JSON primitive Error.
  • If the information is valid, the response will be OK with JSON parameter Success=true.

  1. When accessing API, use the api_uri returned from our server in step 5.  The access token is sent to a selected endpoint of API as the Authorization token of type Bearer

Obtaining ClientId and ClientSecret

In order to use PurchaseControl OAuth2 Authentication, the party interested in connecting to API must obtain ClientId and ClientSecret from the representatives of PLANERGY/PurchaseControl by submitting a support ticket and stating the following:

  1. Who is the party requesting API access?
  2. Who are the developers developing the application using API? (internal resources/third party company and which one it is)
  3. Are development/testing keys also needed?
  4. A list of allowed redirect_uri’s that should be registered

PLANERGY/PurchaseContol will then approve the request for API access internally and provide the client with a set(s) of ClientId/ClientSecret pairs.

Using API

The PLANERGY/PurchaseControl API is RESTFul API.  It is currently in the development stage but supports major Entities needed for integrations with accounting packages.

Note

NotPostedInvoices – This parameter retrieves a list of invoices that have the Not Posted tag in the PLANERGY/PurchaseControl system. Enables marking those invoices as Posted or Unposted.

Endpoints:

    1. Getting a list of not posted invoices [METHOD – GET, parameters: NONE]

Returns: 

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of Invoices with fields.
    • Id – Id of the invoice, type: Guid,
    • InvoiceNumber – Number of the invoice, type: String
    • Supplier – Supplier on the invoice – Type: Object
{
Id – Id of the supplier, type: Guid
SupplierCode – Code of the supplier, type: String
Name – name of the supplier, Type: String
}
    • Total  – Total of the invoice, type: Decimal
    • Tax – Tax on the invoice, type: Decimal
    • TaxOverride – User Corrected Tax value on the invoice: Type: Decimal
    • Terms  – Terms on the Invoice, type: Object
{
Id – Id of the term, 
type: Guid, 
Name – Name of the term, 
type: String
}
    • DueDate – Due Date of the invoice, type: Date
    • InvoiceDate – Invoice Date, type: Date
    • Company – Company to which invoice is related, type: Object


Id – Id of the company, 
type: Guid,
Name – Name of the company, 
type: String
}
Items – Line items of the invoice, type: Object
{
    • Code – code of the invoice line item, type: String
    • Name – Name of the invoice line item, type: String
    • Price – Price of the invoice line item, type: Decimal
    • Quantity – Quantity of the invoice line item, type: Decimal
    • Total – Total sum of the invoice line item, type: Decimal
    • VatTotal – Vat total of the invoice line item, type: Decimal
    • Discount – Discount % of the line item, type: Decimal
    • PurchaseOrder – Order related to the line item, type: Object
      {  
      Id – Id of the order, type: Guid 
      Number – Purchase Order Number, type: String 
      }
    • Department – Department related to the invoice line item, type: Object
      { 
      Id – Id of the Department, type: Guid 
      Name – Name of the Department, type: String 
      }
    • GeneralLedger – General Ledger Account related to the line item, Type Object
      { 
      Id – Id of the General Ledger Account, type: Guid 
      Code – Code othe General Ledger Account, type: String 
      }
}
  1. Marking invoice(s) as posted/unposted in PurchaseControl [METHOD – POST, parameters – JSON formatted list of Invoices Id’s and action]
    Receives:

    • Ids – List of Id’s of the invoices upon which the action should be taken, type List of Guid’s
    • Action – An action that should be done on the invoice(s) in question, type: Enum (Post=0, Unpost=1)

    Returns:

      • Status: Ok – When the request is valid and has been completed without errors, the Status returns Ok.
      • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access and modify invoices to posted/unposted, the Status returns as Unauthorized.

    Documents – The Documents allows manipulation, retrieval, addition, edition, and deletion of uploaded documents related to PurchaseControl entities.

  2. Getting a list of documents without downloading them for a specified entity [METHOD – GET, parameters: EntityType and EntityId]Receives:
    • EntityType – type of the entity for which we want to retrieve a list of documents, type: Enum {Invoice = 8, PurchaseOrder = 23, StockRequisition = 24, WorksOrder = 56}
    • EntityId – unique identifier of the entity, type: Guid

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok and displays the formatted list of Documents with their names and metadata.
    • Status: NoContent – If there are no Documents found for the given EntityType and EntityId, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access the entity and its documents, the Status returns Unauthorized.

    If Status: Ok returns JSON formatted list of Documents with fields)

    {
    Id – Id of the document, type: Guid
    Name – Name of the document, type: String
    Extension – Extension of the document, type: String
    Size – Size of the document, type: Long
    IsAttached – Is the document attached to an email when sending an order to a supplier (valid only for an EntityType PurchaseOrder, type: Boolean
    }
  3. Downloading a single document [METHOD – GET, parameters – Id, unique identifier of the document]
    Receives:

    • Id – Unique identifier of the document, type: Guid

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok and displays the application/ octet-stream containing document that is requested
    • Status: NoContent – When the Document with such Id is not found OR a document with such Id belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access the entity and permissions related to the document and its document(s), the Status returns Unauthorized.
  4. Adding document(s) to an Entity
    [Method – POST, parameters: Multipart form data containing a file to be uploaded and a string parameter called data containing JSON formatted EntityId and EntityType]

    Receives:Multipart form data with file(s) to be uploaded and a form part called data containing JSON formatted object with two properties:

    • EntityType – type of the entity for which we want to retrieve a list of documents, type: Enum {Invoice = 8, PurchaseOrder = 23, StockRequisition = 24, WorksOrder = 56}
    • EntityId – unique identifier of the entity, type: Guid

    Returns:

    • Status: Created – The Status returns Created when a document is added to the entity and the JSON formatted list of Document metadata is displayed.
    • Status: NoContent – When the related entity does not exist, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access the entity and permissions related to the document and its document(s), the Status returns Unauthorized.

    If Status: Ok returns JSON formatted list of Documents with fields)

    {
    Id – Id of the document, type: Guid
    Name – Name of the document, type: String
    Extension – Extension of the document, type: String
    Size – Size of the document, type: Long
    IsAttached – Is the document attached to an email when sending an order to a supplier (valid only for an EntityType=PurchaseOrder, type: Boolean
    }

    Note

    The same method can be used for updating document contents.  If the document has the same name as the previously uploaded document, it will be overwritten with the content of the new file.
  5. Tagging a document as Is Attached/Not Attached (marking it to be sent to a supplier with the order or not) is valid only for documents attached to entities of EntityType: PurchaseOrder. [Method – PUT, parameters: Id (from URL) and flag IsAttached (From Body)]
    Receives:

    • Id – Id of the document, type: Guid
    • IsAttached – Is the document attached to an email when sending an order to a supplier (valid only for an EntityType PurchaseOrder, type: Boolean

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok and the JSON formatted Document metadata.
    • Status: NoContent – When the Document with such Id is not found OR a document with such Id belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access the entity and the related document(s), the Status returns Unauthorized.

    If Status: Ok returns JSON formatted list of Documents with fields)

    {
    Id – Id of the document, type: Guid
    Name – Name of the document, type: String
    Extension – Extension of the document, type: String
    Size – Size of the document, type: Long
    IsAttached – Is the document attached to an email when sending an order to a supplier (valid only for an EntityType PurchaseOrder, type: Boolean
    }
  6. Deleting a document [Method – Delete, parameters:Id (from URL)]
    Receives:

    • Id – Id of the document, type: Guid

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok.
    • Status: NoContent – When the Document with such Id is not found OR a document with such Id belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access the entity and the related document(s), the Status returns as Unauthorized.
    • Client ID: af344913d68d4d44a7bd07a5dc91e217ADHi2hhxsah23ih32i
    • Client Secret: 2031c86211f04f61929937c3198f47c3dasdewe

Cost Codes API Outlet User Manual

Cost Codes API Overview

The Cost Codes API is an endpoint or API outlet that enables developers to interact with a system to perform various operations related to cost codes associated with PLANERGY entities such as retrieving, adding, editing, and deleting the Cost Codes.

In this guide, we will learn the methods, parameters, and returns used in developing the applications to track and manage the lifecycle of Cost Codes.

/CostCodes

  1. Getting the list of cost codes related to the specified company [METHOD – Get]
    Receives:

    • SearchString for filtering cost codes of an entity by any string field or part of it: String
    • Name for filtering cost codes specifically by Name field or part of it: String
    • Description for filtering cost codes specifically by Description field or part of it: String
    • IsActive for filtering cost codes specifically by IsActive tag: nullable Boolean
    • IncludeArchived for filtering cost codes specifically by archived tag: Boolean
    • DeliveryLocationIdfor filtering cost codes specifically by DeliveryLocation field or part of it: nullable Guid
    • Archived for including cost codes that are archived (deleted) in the list: Boolean
    • ImportedStatus – for including cost codes that are imported from some other external system: Boolean
    • PageNumber all Lists for entities are paged by default, first page is always 1, and retrieved number of records is maximum 1000: Int
    • RowsPerPage all Lists for entities are paged by default, how many rows are returned by the action can be defined – default and maximum number of records is 1000

    Note

    If any nullable Boolean field is null, cost codes will be returned regardless of the value of that field.

    Returns:

    • Status: OK – When the request is valid, the Status returns OK and displays the JSON formatted list of Cost Codes.
    • Status: NoContent – When there are no Cost Codes found for the sent filters, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized – When the user registered for the API usage does not have enough permissions to access Cost Codes, the Status returns Unauthorized.

    If Status: OK returns JSON formatted list of cost codes with fields.

    {
    RowCount – total number of found records by sent search filters: Int
    PageNumber – numeric page of the records returned – matches the PageNumber sent in the search, repeated here for checking: Int
    RowsPerPage – numeric number of records returned on the – matches the RowsPerPage sent in the search, repeated here checking: Int
    
     ListOf:
    
      {
        Id – Id of the cost code: Guid 
        Code – Code of the cost code: String
        Name – Name of the cost code: String
        Description – Description of the cost code: String 
        IsImported – Is this cost code imported from some other external system
        IsActive – Is cost code Active: Boolean 
        IsArchived – Is cost code deleted (archived): Boolean
        Company: Complex
        { 
           Id – Id of the company the cost code is related to: Guid
           Name – Name of the company the cost code is related to: String
        }
        DeliveryLocation: Complex
        { 
          Id – Id of the delivery location the cost code is related to: Guid
          Name – Name of the delivery location the cost code is related to: String
        }
      }
    }
  2. Getting a single cost code [METHOD– GET parameters: Id, unique identifier of the cost code
    Receives:

    • Id Unique identifier of the cost code, type: Guid

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok.

    Cost code Data:

    {
    Id – Id of the cost code: Guid 
    Code – Code of the cost code: String
    Name – Name of the cost code: String
    Description – Description of the cost code: String 
    IsImported – Is this cost code imported from some other external system
    IsActive – Is cost code Active: Boolean 
    IsArchived – Is cost code deleted (archived): Boolean
    Company: Complex
      { 
        Id – Id of the company the cost code is related to: Guid
        Name – Name of the company the cost code is related to: String
      }
      DeliveryLocation: Complex
      { 
        Id – Id of the delivery location the cost code is related to: Guid
        Name – Name of the delivery location the cost code is related to: String
      }
    }
    • Status: NoContent – When there are no Cost Codes found for the sent filters, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –   When the user registered for the API usage does not have enough permissions to access Cost Codes, the Status returns Unauthorized.
  3. Adding a cost code to a CompanyMethod – POSTReceives:
    { 
    Name – Name of the cost code: String
    Description – Description of the cost code: String 
    IsActive – Is cost code Active: Boolean 
    IsArchived – Is cost code deleted (archived): Boolean
    DeliveryLocationId – delivery location id: nullable Guid
    }

    Returns: 

    • Status: Created – When a new Cost Code is created, the Status returns Created.
    {
    Id – Id of the cost code: Guid 
    Code – Code of the cost code: String
    Name – Name of the cost code: String
    Description – Description of the cost code: String 
    IsImported – Is this cost code imported from some other external system
    IsActive – Is cost code Active: Boolean 
    IsArchived – Is cost code deleted (archived): Boolean
    Company: Complex
      {
        Id – Id of the company the cost code is related to: Guid
        Name – Name of the company the cost code is related to: String
      }
    DeliveryLocation: Complex
      { 
        Id – Id of the delivery location the cost code is related to: Guid
        Name – Name of the delivery location the cost code is related to: String
      }
    }
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –   When the user registered for the API usage does not have enough permissions to access Cost Codes, the Status returns Unauthorized.
  4. Editing a cost code [Method – PUT]
    Receives:

    • FROM URL Id of the cost code: GuidExample: {apiURL}/CostCodes/59fd193b-ba8e-4e65-88b8-d4fe1dc5acd7
    • FROM BODY – JSON
      { 
      Name – Name of the cost code: String
      Description – Description of the cost code: String 
      IsActive – Is cost code Active: Boolean 
      IsArchived – Is cost code deleted (archived): Boolean
      DeliveryLocationId – delivery location id: nullable Guid
      }

    Returns: 

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of Cost Codes.
    {
    Id – Id of the cost code: Guid 
    Code – Code of the cost code: String
    Name – Name of the cost code: String
    Description – Description of the cost code: String 
    IsImported – Is this cost code imported from some other external system
    IsActive – Is cost code Active: Boolean 
    IsArchived – Is cost code deleted (archived): Boolean
    Company: Complex
      {
        Id – Id of the company the cost code is related to: Guid
        Name – Name of the company the cost code is related to: String
      }
    DeliveryLocation: Complex
      { 
        Id – Id of the delivery location the cost code is related to: Guid
        Name – Name of the delivery location the cost code is related to: String
      }
    }
    • Status: NoContent – If a Cost Code with such Id is not found or Id belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –   When the user registered for the API usage does not have enough permissions to access Cost Codes, the Status returns Unauthorized.
  5. Deleting a cost code [Method – Delete, parameters: Id (from URL)]
    Receives:

    • Id – Id of the document, type: Guid

    Returns:

    • Status: Ok – When the deletion of the Cost Code is completed, the Status returns Ok.
    • Status: NoContent – If a Cost Code with such ID is not found or ID belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized – When the user registered for the API usage does not have enough permissions to access the entity and the related documents, the Status returns Unauthorized.

Currency API Outlet User Manual

Currency API Overview

The Currency API is an endpoint or API outlet that enables developers to interact with a system to perform various operations related to currencies associated with PLANERGY entities such as retrieving, adding, editing, and deleting the Currency.

In this guide, we will learn the methods, parameters, and returns used in developing the applications to track and manage the lifecycle of Currency.

/Currencies

  1. Getting a list of currency related to the specified company [METHOD – Get]
    Receives:

      • SearchString for filtering currency of an entity by any string field or part of it: String 
      • Codefor filtering currency specifically by Code field or part of it: String
      • Name for filtering currency specifically by Name field or part of it: String 
      • Symbolfor filtering currency specifically by Code field or part of it: String
      • IsActive for filtering currency specifically by IsActive tag: nullable Boolean
      • Archived for including currency that are archived (deleted) in the list: Boolean
      • PageNumber all Lists for entities are paged by default, first page is always 1, and retrieved number of records is maximum 1000: Int
      • RowsPerPage all Lists for entities are paged by default, how many rows are returned by the action can be defined – default and maximum number of records is 1000

    Note

    If any nullable Boolean field is null, the currency will be returned regardless of the value of that field.

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of Currencies.
    • Status: NoContent – When there are no Currencies found for the sent filters, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized – When the user registered for the API usage does not have enough permissions to access General Ledgers, the Status returns Unauthorized.

    If Status: OK returns JSON formatted list of Currencies with fields.

    {
    RowCount – total number of found records by sent search filters: Int
    PageNumber – numeric page of the records returned – matches the PageNumber sent in the search, repeated here for checking: Int
    RowsPerPage – numeric number of records returned on the – matches the RowsPerPage sent in the search, repeated here checking: Int
     ListOf:
      {
        Id – Id of the currency: Guid 
        Name – Name of the currency: String 
        Symbol – Code of the currency: String
        Code – Code of the currency: String
        ThreeLetterCode – Three letter code of the currency: String
        Rate – Rate: Decimal
        IsActive – Is currency Active: Boolean 
        IsArchived – Is currency deleted (archived): Boolean
      }
    }
  2. Getting a single currency [METHOD – GET parameters: Id, unique identifier of the currency]
    Receives:

      • Id – Unique identifier of the currency, type: Guid

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok.

    Currency Data:

    {
    Id – Id of the currency: Guid 
    Name – Name of the currency: String 
    Symbol – Code of the currency: String
    Code – Code of the currency: String
    ThreeLetterCode – Three letter code of the currency: String
    Rate – Rate: Decimal
    IsActive – Is currency Active: Boolean 
    IsArchived – Is currency deleted (archived): Boolean
    }
    • Status: NoContent – When there are no Currencies found for the sent filters, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –   When the user registered for the API usage does not have enough permissions to access Currencies, the Status returns Unauthorized.
  1. Adding a currency to a Company [Method – POST]
    Receives:

    {
    ThreeLetterCode – Three letter code of the currency: String 
    Code – Code of the currency: Int 
    Symbol – Code of the currency: String
    IsActive – Is currency Active: Boolean 
    Rate – Rate: Decimal
    }

    Returns: 

    • Status: Created – When a new Currency is created, the Status returns Created.
    {
    Id – Id of the currency: Guid 
    Name – Name of the currency: String 
    Symbol – Code of the currency: String
    Code – Code of the currency: String
    ThreeLetterCode – Three letter code of the currency: String
    Rate – Rate: Decimal
    IsActive – Is currency Active: Boolean 
    IsArchived – Is currency deleted (archived): Boolean
    }
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –   When the user registered for the API usage does not have enough permissions to access Currencies, the Status returns Unauthorized.
  2. Editing a currency [Method – PUT]
    Receives:

    • FROM URL Id of the currency: GuidExample: {apiURL}/Currency/59fd193b-ba8e-4e65-88b8-d4fe1dc5acd7
    • FROM BODY – JSON
      {
      ThreeLetterCode – Three letter code of the currency: String 
      Code – Code of the currency: Int 
      Symbol – Code of the currency: String
      IsActive – Is currency Active: Boolean 
      Rate – Rate: Decimal
      }

    Returns: 

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of Currencies.
    {
    Id – Id of the currency: Guid 
    Name – Name of the currency: String 
    Symbol – Code of the currency: String
    Code – Code of the currency: String
    ThreeLetterCode – Three letter code of the currency: String
    Rate – Rate: Decimal
    IsActive – Is currency Active: Boolean 
    IsArchived – Is currency deleted (archived): Boolean
    }
    • Status: NoContent – If a Currency with such Id is not found or Id belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –   When the user registered for the API usage does not have enough permissions to access Currencies, the Status returns Unauthorized.
  1. Deleting a currency [Method – Delete, parameters: Id (from URL)]
    Receives:

    • Id – Id of the document, type: Guid

    Returns:

    • Status: Ok – When the deletion of the Currency is completed, the Status returns Ok.
    • Status: NoContent – If a Currency with such ID is not found or ID belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized – When the user registered for the API usage does not have enough permissions to access the entity and the related documents, the Status returns Unauthorized.

Department API Outlet User Manual

Department API Overview

The Department API is an endpoint or API outlet that enables developers to interact with a system to perform various operations related to departments associated with PLANERGY entities such as retrieving, adding, editing, and deleting the Departments.

In this guide, we will learn the methods, parameters, and returns used in developing the applications to track and manage the lifecycle of the Department.

/Departments

  1. Getting a list of departments related to the specified companyMETHOD GetReceives:
    • SearchString for filtering departments of an entity by any string field or part of it: String
    • Codefor filtering departments specifically by Code field or part of it: String
    • Name  – for filtering departments specifically by Name field or part of it: String
    • IsActive for filtering departments specifically by IsActive tag: nullable Boolean
    • Imported for filtering departments specifically by Imported tag: nullable Boolean
    • Addressfor filtering departments specifically by Address field or part of it: String
    • ParentDepartmentName for filtering departments specifically by Master Department field: String
    • ParentDepartmentCode for filtering departments specifically by Master Department field: String
    • BudgetRangeFrom for filtering departments specifically by Total budget field: nullable decimal
    • BudgetRangeTofor filtering departments specifically by Total budget field: nullable decimal
    • Archived for including departments that are archived (deleted) in the list: Boolean
    • PageNumber  all Lists for entities are paged by default, first page is always 1, retrieved number of records is maximum 1000: Int
    • RowsPerPage all Lists for entities are paged by default, how many rows are returned by the action can be defined – default and maximum number of records is 1000

    Note

    If any nullable Boolean field is null, departments will be returned regardless of the value of that field.

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of Departments.
    • Status: NoContent – When there are no Departments found for the sent filters, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized – When the user registered for the API usage does not have enough permissions to access Departments, the Status returns Unauthorized.

    If Status: OK returns JSON formatted list of Departments with fields.

    {
    RowCount – total number of found records by sent search filters: Int
    PageNumber – numeric page of the records returned – matches the PageNumber sent in the search, repeated here for checking: Int
    RowsPerPage – numeric number of records returned on the – matches the RowsPerPage sent in the search, repeated here checking: Int
    ListOf:
      {
        Id – Id of the department: Guid 
        Code – Code of the department: String
        Name – Name of the department: String
        Address – Address of the department: String
        Type – Type of the department: String 
        IsImported – Is this department imported from some other external system
        IsActive – Is department Active: Boolean 
        IsArchived – Is department deleted (archived): Boolean
        Company: Complex
          { 
            Id – Id of the company the department is related to: Guid
            Name – Name of the company the department is related to: String
          }
        GeneralLedger: Complex
          {
            Id – General Ledger  id assigned to the department: Guid
            Code – Code  assigned to the general ledger assigned to the departmeent: String
          }
        ParentDepartment: Complex
          {
            Id – Department  id set as master department of the  department: Guid
            Code – Code  of master department assigned  to the departmeent: String
            Name  – Name  of master department assigned  to the departmeent: String
          }
         Budgets: Array
          {
            BudgetType – Type of budget (Project, Annual, AnnualRevolving): String
            TotalBudget – Total budget: nullable decimal
            StartDate – Budget Start Date (null for Annual BudgetType): nullable datetime
            EndDate – Budget End Date (null for Annual BudgetType): nullable datetime
            MontlyLimit01 – Budget limit for first month: nullable decimal
            MontlyLimit02 – Budget limit for second month: nullable decimal
            MontlyLimit03 – Budget limit for third month: nullable decimal
            MontlyLimit04 – Budget limit for fourth month: nullable decimal
            MontlyLimit05 – Budget limit for fifth month: nullable decimal
            MontlyLimit06 – Budget limit for sixth month: nullable decimal
            MontlyLimit07 – Budget limit for seventh month: nullable decimal
            MontlyLimit08 – Budget limit for eighth month: nullable decimal
            MontlyLimit09 – Budget limit for ninth month: nullable decimal
            MontlyLimit10 – Budget limit for tenth month: nullable decimal
            MontlyLimit11 – Budget limit for eleventh month: nullable decimal
            MontlyLimit12 – Budget limit for twelfth month: nullable decimal
            OpenBudget – Is budget open or closed: boolean
          }
       }
    }

 

  1. Getting a single department [METHOD – GET, parameters: Id, unique identifier of the department]
    Receives:

    • Id – Unique identifier of the department, type: Guid

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok.

    Department Data:

    {
      RowCount – total number of found records by sent search filters: Int
      PageNumber – numeric page of the records returned – matches the PageNumber sent in the search, repeated here for checking: Int
      RowsPerPage – numeric number of records returned on the – matches the RowsPerPage sent in the search, repeated here checking: Int
      ListOf:
      {
        Id – Id of the department: Guid 
        Code – Code of the department: String
        Name – Name of the department: String
        Address – Address of the department: String
        Type – Type of the department: String 
        IsImported – Is this department imported from some other external system
        IsActive – Is department Active: Boolean 
        IsArchived – Is department deleted (archived): Boolean
        Company: Complex
        { 
          Id – Id of the company the department is related to: Guid
          Name – Name of the company the department is related to: String
        }
        GeneralLedger: Complex
        {
          Id – General Ledger  id assigned to the department: Guid
          Code – Code  assigned to the general ledger assigned to the departmeent: String
        }
        ParentDepartment: Complex
        {
          Id – Department  id set as master department of the  department: Guid
          Code – Code  of master department assigned  to the departmeent: String
          Name  – Name  of master department assigned  to the departmeent: String
        }
        Budgets: Array
        {
           BudgetType – Type of budget (Project, Annual, AnnualRevolving): String
           TotalBudget – Total budget: nullable decimal
           StartDate – Budget Start Date (null for Annual BudgetType): nullable datetime
           EndDate – Budget End Date (null for Annual BudgetType): nullable datetime
           MontlyLimit01 – Budget limit for first month: nullable decimal
           MontlyLimit02 – Budget limit for second month: nullable decimal
           MontlyLimit03 – Budget limit for third month: nullable decimal
           MontlyLimit04 – Budget limit for fourth month: nullable decimal
           MontlyLimit05 – Budget limit for fifth month: nullable decimal
           MontlyLimit06 – Budget limit for sixth month: nullable decimal
           MontlyLimit07 – Budget limit for seventh month: nullable decimal
           MontlyLimit08 – Budget limit for eighth month: nullable decimal
           MontlyLimit09 – Budget limit for ninth month: nullable decimal
           MontlyLimit10 – Budget limit for tenth month: nullable decimal
           MontlyLimit11 – Budget limit for eleventh month: nullable decimal
           MontlyLimit12 – Budget limit for twelfth month: nullable decimal
           OpenBudget – Is budget open or closed: boolean
         }
       }
    }
    • Status: NoContent – When there are no Departments found for the sent filters, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –   When the user registered for the API usage does not have enough permissions to access the Department, the Status returns Unauthorized.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –   When the user registered for the API usage does not have enough permissions to access the Department, the Status returns Unauthorized.
  2. Adding a department to a Company [Method – POST]
    Receives:

    
    Code – Code of the department: String
    Name – Name of the department: String
    Address – Address of the department: String
    Type – Type of the department: String 
    IsActive – Is department Active: Boolean 
    IsArchived – Is department deleted (archived): Boolean
    GeneralLedgerCode – Code  assigned to the general ledger assigned to the departmeent: String
    ParentDepartmentCode – Code  of master department assigned  to the departmeent: String
    ParentDepartmentName  – Name  of master department assigned  to the departmeent: String
    Budgets: Budgets assigned to the department: Array
      {
        BudgetType – Type of budget (Project, Annual, AnnualRevolving): String
        TotalBudget – Total budget: nullable decimal
        StartDate – Budget Start Date (null for Annual BudgetType): nullable datetime
        EndDate – Budget End Date (null for Annual BudgetType): nullable datetime
        MontlyLimit01 – Budget limit for first month: nullable decimal
        MontlyLimit02 – Budget limit for second month: nullable decimal
        MontlyLimit03 – Budget limit for third month: nullable decimal
        MontlyLimit04 – Budget limit for fourth month: nullable decimal
        MontlyLimit05 – Budget limit for fifth month: nullable decimal
        MontlyLimit06 – Budget limit for sixth month: nullable decimal
        MontlyLimit07 – Budget limit for seventh month: nullable decimal
        MontlyLimit08 – Budget limit for eighth month: nullable decimal
        MontlyLimit09 – Budget limit for ninth month: nullable decimal
        MontlyLimit10 – Budget limit for tenth month: nullable decimal
        MontlyLimit11 – Budget limit for eleventh month: nullable decimal
        MontlyLimit12 – Budget limit for twelfth month: nullable decimal
        OpenBudget – Is budget open or closed: boolean
       }
    }

    Returns: 

    • Status: Created – When a new Department is created, the Status returns Created.
    {
    RowCount – total number of found records by sent search filters: Int
    PageNumber – numeric page of the records returned – matches the PageNumber sent in the search, repeated here for checking: Int
    RowsPerPage – numeric number of records returned on the – matches the RowsPerPage sent in the search, repeated here checking: Int
      ListOf:
      {
        Id – Id of the department: Guid 
        Code – Code of the department: String
        Name – Name of the department: String
        Address – Address of the department: String
        Type – Type of the department: String 
        IsImported – Is this department imported from some other external system
        IsActive – Is department Active: Boolean 
        IsArchived – Is department deleted (archived): Boolean
          Company: Complex
            { 
              Id – Id of the company the department is related to: Guid
              Name – Name of the company the department is related to: String
            }
           GeneralLedger: Complex
             {
               Id – General Ledger  id assigned to the department: Guid
               Code – Code  assigned to the general ledger assigned to the departmeent: String
             }
           ParentDepartment: Complex
             {
               Id – Department  id set as master department of the  department: Guid
               Code – Code  of master department assigned  to the departmeent: String
               Name  – Name  of master department assigned  to the departmeent: String
             }
           Budgets: Array
             {
               BudgetType – Type of budget (Project, Annual, AnnualRevolving): String
               TotalBudget – Total budget: nullable decimal
               StartDate – Budget Start Date (null for Annual BudgetType): nullable datetime
               EndDate – Budget End Date (null for Annual BudgetType): nullable datetime
               MontlyLimit01 – Budget limit for first month: nullable decimal
               MontlyLimit02 – Budget limit for second month: nullable decimal
               MontlyLimit03 – Budget limit for third month: nullable decimal
               MontlyLimit04 – Budget limit for fourth month: nullable decimal
               MontlyLimit05 – Budget limit for fifth month: nullable decimal
               MontlyLimit06 – Budget limit for sixth month: nullable decimal
               MontlyLimit07 – Budget limit for seventh month: nullable decimal
               MontlyLimit08 – Budget limit for eighth month: nullable decimal
               MontlyLimit09 – Budget limit for ninth month: nullable decimal
               MontlyLimit10 – Budget limit for tenth month: nullable decimal
               MontlyLimit11 – Budget limit for eleventh month: nullable decimal
               MontlyLimit12 – Budget limit for twelfth month: nullable decimal
               OpenBudget – Is budget open or closed: boolean
             }
        }
    }
  3. Editing a department [Method – PUT]
    Receives:

    • FROM URL Id of the department: GuidExample: {apiURL}/departments/59fd193b-ba8e-4e65-88b8-d4fe1dc5acd7
    • FROM BODY – JSON
      { 
      Code – Code of the department: String
      Name – Name of the department: String
      Address – Address of the department: String
      Type – Type of the department: String 
      IsActive – Is department Active: Boolean 
      IsArchived – Is department deleted (archived): Boolean
      GeneralLedgerCode – Code  assigned to the general ledger assigned to the departmeent: String
      ParentDepartmentCode – Code  of master department assigned  to the departmeent: String
      ParentDepartmentName  – Name  of master department assigned  to the departmeent: String
        Budgets: Budgets assigned to the department: Array
          {
            BudgetType – Type of budget (Project, Annual, AnnualRevolving): String
            TotalBudget – Total budget: nullable decimal
            StartDate – Budget Start Date (null for Annual BudgetType): nullable datetime
            EndDate – Budget End Date (null for Annual BudgetType): nullable datetime
            MontlyLimit01 – Budget limit for first month: nullable decimal
            MontlyLimit02 – Budget limit for second month: nullable decimal
            MontlyLimit03 – Budget limit for third month: nullable decimal
            MontlyLimit04 – Budget limit for fourth month: nullable decimal
            MontlyLimit05 – Budget limit for fifth month: nullable decimal
            MontlyLimit06 – Budget limit for sixth month: nullable decimal
            MontlyLimit07 – Budget limit for seventh month: nullable decimal
            MontlyLimit08 – Budget limit for eighth month: nullable decimal
            MontlyLimit09 – Budget limit for ninth month: nullable decimal
            MontlyLimit10 – Budget limit for tenth month: nullable decimal
            MontlyLimit11 – Budget limit for eleventh month: nullable decimal
            MontlyLimit12 – Budget limit for twelfth month: nullable decimal
            OpenBudget – Is budget open or closed: boolean
          }
      }

    Returns: 

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of Department.
    {
    RowCount – total number of found records by sent search filters: Int
    PageNumber – numeric page of the records returned – matches the PageNumber sent in the search, repeated here for checking: Int
    RowsPerPage – numeric number of records returned on the – matches the RowsPerPage sent in the search, repeated here checking: Int
      ListOf:
      {
        Id – Id of the department: Guid 
        Code – Code of the department: String
        Name – Name of the department: String
        Address – Address of the department: String
        Type – Type of the department: String 
        IsImported – Is this department imported from some other external system
        IsActive – Is department Active: Boolean 
        IsArchived – Is department deleted (archived): Boolean
        Company: Complex
        { 
          Id – Id of the company the department is related to: Guid
          Name – Name of the company the department is related to: String
        }
        GeneralLedger: Complex
        {
          Id – General Ledger  id assigned to the department: Guid
          Code – Code  assigned to the general ledger assigned to the departmeent: String
        }
        ParentDepartment: Complex
        {
          Id – Department  id set as master department of the  department: Guid
          Code – Code  of master department assigned  to the departmeent: String
          Name  – Name  of master department assigned  to the departmeent: String
        }
        Budgets: Array
        {
          BudgetType – Type of budget (Project, Annual, AnnualRevolving): String
          TotalBudget – Total budget: nullable decimal
          StartDate – Budget Start Date (null for Annual BudgetType): nullable datetime
          EndDate – Budget End Date (null for Annual BudgetType): nullable datetime
          MontlyLimit01 – Budget limit for first month: nullable decimal
          MontlyLimit02 – Budget limit for second month: nullable decimal
          MontlyLimit03 – Budget limit for third month: nullable decimal
          MontlyLimit04 – Budget limit for fourth month: nullable decimal
          MontlyLimit05 – Budget limit for fifth month: nullable decimal
          MontlyLimit06 – Budget limit for sixth month: nullable decimal
          MontlyLimit07 – Budget limit for seventh month: nullable decimal
          MontlyLimit08 – Budget limit for eighth month: nullable decimal
          MontlyLimit09 – Budget limit for ninth month: nullable decimal
          MontlyLimit10 – Budget limit for tenth month: nullable decimal
          MontlyLimit11 – Budget limit for eleventh month: nullable decimal
          MontlyLimit12 – Budget limit for twelfth month: nullable decimal
          OpenBudget – Is budget open or closed: boolean
        }
      }
    }
    • Status: NoContent – If a Department with such Id is not found or Id belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –   When the user registered for the API usage does not have enough permissions to access Department, the Status returns Unauthorized.
  4. Deleting a department [Method – Delete, parameters: Id (from URL)]
    Receives:

    • Id – Id of the document, type: Guid

    Returns:

    • Status: Ok – When the deletion of the Department is successfully completed, the Status returns Ok.
    • Status: NoContent – If a Department with such Id is not found or Id belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized – When the user registered for the API usage does not have enough permissions to access the entity and the related documents, the Status returns Unauthorized.

General Ledger API Outlet User Manual

General Ledger API Overview

The General Ledger API is an endpoint or API outlet that enables developers to interact with a system to perform various operations related to general ledgers associated with PLANERGY entities such as retrieving, adding, editing, and deleting the GL Codes.

In this guide, we will learn the methods, parameters, and returns used in developing the applications to track and manage the lifecycle of GL Codes.

/GeneralLedgers

  1. Getting a list of general ledgers related to the specified company [METHOD – Get]
    Receives:

    • SearchString for filtering general ledgers of an entity by any string field or part of it: String
    • Codefor filtering general ledgers specifically by Code field or part of it: String
    • Description for filtering general ledgers specifically by Description field or part of it: String
    • IsActive for filtering general ledgers specifically by IsActive tag: nullable Boolean
    • Imported for filtering general ledgers specifically by Imported tag: nullable Boolean
    • Archived for including general ledgers that are archived (deleted) in the list: Boolean
    • PageNumber all Lists for entities are paged by default, first page is always 1, retrieved number of records is maximum 1000: Int
    • RowsPerPage all Lists for entities are paged by default, how many rows are returned by the action can be defined – default and maximum number of records is 1000

    Note

    If any nullable Boolean field is null, general ledgers will be returned regardless of the value of that field.

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of General Ledgers.
    • Status: NoContent – When no General Ledgers are found for the sent filters, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized – When the user registered for the API usage does not have enough permissions to access General Ledgers, the Status returns Unauthorized.

    If Status: OK returns JSON formatted list of General ledgers with fields.

    {
    RowCount – total number of found records by sent search filters: Int
    PageNumber – numeric page of the records returned – matches the PageNumber sent in the search, repeated here for checking: Int
    RowsPerPage – numeric number of records returned on the – matches the RowsPerPage sent in the search, repeated here checking: Int
      ListOf:
        {
          Id – Id of the general ledger: Guid 
          Code – Code of the general ledger: String
          Description – Description of the general ledger: String 
          IsActive – Is general ledger Active: Boolean 
          IsArchived – Is general ledger deleted (archived): Boolean
          Company: Complex
            { 
              Id – Id of the company the general ledger is related to: Guid
              Name – Name of the company the general ledger is related to: String
            }
        }
    }
  2. Getting a single general ledger [METHOD – GET, parameters: Id, unique identifier of the general ledger]
    Receives:

    • Id – Unique identifier of the general ledger, type: Guide

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok.

    General ledger Data:

    {
    Id – Id of the general ledger: Guid 
    Code – Code of the general ledger: String
    Description – Description of the general ledger: String 
    IsActive – Is general ledger Active: Boolean 
    IsArchived – Is general ledger deleted (archived): Boolean
    Company: Complex
      { 
        Id – Id of the company the general ledger is related to: Guid
        Name – Name of the company the general ledger is related to: String
      }
    }
    • Status: NoContent – When there are no General Ledgers found for the sent filters, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –   When the user registered for the API usage does not have enough permissions to access General Ledgers, the Status returns Unauthorized.
  3. Adding a general ledger to a Company [Method – POST]
    Receives:

    { 
    Code – Code of the general ledger: String
    Description – Description of the general ledger: String 
    IsActive – Is general ledger Active: Boolean 
    }

    Returns: 

    • Status: Created – When a new General Ledger is created, the Status returns Created.
    {
    Id – Id of the general ledger: Guid 
    Code – Code of the general ledger: String
    Description – Description of the general ledger: String 
    IsActive – Is general ledger Active: Boolean 
    IsArchived – Is general ledger deleted (archived): Boolean
    Company: Complex
      { 
        Id – Id of the company the general ledger is related to: Guid
        Name – Name of the company the general ledger is related to: String
      }
    }
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –   When the user registered for the API usage does not have enough permissions to access General Ledgers, the Status returns Unauthorized.
  4. Editing a general ledgerMethod PUTReceives:
    • FROM URL Id of the general ledger: GuidExample: {apiURL}/general ledgers/59fd193b-ba8e-4e65-88b8-d4fe1dc5acd7
    • FROM BODY – JSON
      { 
      Code – Code of the general ledger: String
      Description – Description of the general ledger: String 
      IsActive – Is general ledger Active: Boolean 
      }

    Returns: 

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of General Ledger.
    {
    Id – Id of the general ledger: Guid 
    Code – Code of the general ledger: String
    Description – Description of the general ledger: String 
    IsActive – Is general ledger Active: Boolean 
    IsArchived – Is general ledger deleted (archived): Boolean
    Company: Complex
      { 
        Id – Id of the company the general ledger is related to: Guid
        Name – Name of the company the general ledger is related to: String
      }
    }
    • Status: NoContent – If a General Ledger with such Id is not found or Id belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –   When the user registered for the API usage does not have enough permissions to access General Ledgers, the Status returns Unauthorized.
  5. Deleting a general ledger [Method – Delete, parameters: Id (from URL)]
    Receives:

    • Id – Id of the document, type: Guid

    Returns:

    • Status: Ok – When the deletion of General Ledger is completed, the Status returns Ok.
    • Status: NoContent – If a General Ledger with such ID is not found or ID belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized – When the user registered for the API usage does not have enough permissions to access the entity and the related documents, the Status returns Unauthorized.

Invoices API Outlet User Manual

Invoices API Overview

The Invoices API is an endpoint that enables developers to interact with a system to retrieve invoices related to PLANERGY entities.

In this guide, we will learn the methods, parameters, and returns used in developing the applications to retrieve invoices.

/Invoices

  1. Getting a list of invoices related to the specified company [METHOD – Get]
    Receives:

    • InvoiceNumber for filtering invoices specifically by Invoice Number field or part of it: String
    • PONumberfor filtering invoices specifically by Purchase Order Number field or part of it: String
    • SupplierName  – for filtering invoices specifically by Supplier Name field or part of it: String
    • DepartmentName for filtering invoices specifically by Department Name field or part of it: String
    • CostCode for filtering invoices specifically by Cost Code field or part of it: String
    • CreatedOnFrom for filtering invoices specifically by date of creation starting from this date: nullable DateTime
    • CreatedOnTo for filtering invoices specifically by date of creation that ends with this date: nullable DateTime
    • PostedStatus for filtering invoices specifically by Status: String. Can have following values:
      • WaitingForApproval
      • Approved
      • Rejected
    • PostedStatus for filtering invoices specifically by posted status: String. Can have following values:
      • Posted
      • NotPosted
    • PageNumber   all Lists for entities are paged by default, first page is always 1, retrieved number of records is maximum 1000: Int
    • RowsPerPage all Lists for entities are paged by default, how many rows are returned by the action can be defined – default and maximum number of records is 1000

    Note

    If any nullable field is set as null all results will be returned regardless of the value of that field.

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of purchase orders.
    • Status: NoContent – When there are no invoices found for the sent filters, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized – When the user registered for the API usage does not have enough permissions to access purchase orders, the Status returns Unauthorized.

    If Status: Ok returns JSON formatted list of invoices with fields.

    {
    RowCount – total number of found records by sent search filters: Int
    PageNumber – numeric page of the records returned – matches the PageNumber sent in the search, repeated here for checking: Int
    RowsPerPage – numeric number of records returned on the – matches the RowsPerPage sent in the search, repeated here checking: Int
    ListOf:
      {
        Id – Id of invoice: Guid
        SupplierName – Supplier Name on invoice: string
        SupplierCode – Supplier Code on invoice: string
        CompanyName – Company Name on invoice: string
        CompanyCode – Company Code on invoice: string
        InvoiceDate – Invoice Date: datetime
        ReceiptDate – Receipt date on invoice: nullable datetime
        DueDate – Due date: nullable datetime
        CurrencyName – Currency Name: string
        BaseCurrencyName – Base Currency Name: string
        Terms – Terms used on invoice: string
        Notes – Notes on invoice: string
        NetTotal – Net total amount: decimal
        Tax – Tax amount: decimal
        Total – Total value of invoice: decimal
        BaseCurrencyTotal – Total amount in base currency: decimal
        ApprovalStatus – Approval status: string
        PostingStatus – Posting status: string
        ForwardedTo – Forwarded for approval to user: string
        PostedBy – Posted by user: string
        AuthorisedBy – Authorised by user: string
        RejectedBy – Rejected by user: string
        PostedDate – Date posted: nullable datetime
        AuthorisedDate – Date authorized : nullable datetime
        RejectedDate – Date rejected: nullable datetime
        ForwardedDate – Date forwarded: nullable datetime
        CreatedBy – Created by user: string
        CreatedOn – Created on date: datetime
        ModifiedOn – Last modified date: nullable datetime
        NonPOInvoice – Is non PO invoice: boolean
        InvoiceItems: Array
          {
            OrderNumber – Order number used on invoice item: string
            DepartmentName – Dapartment name of order used on item: string
            DepartmentCode - Dapartment code of order used on item: string
            ItemCode – Item code: string
            ItemDescription – Item name: string
            GlCode – General ledger code: string
            ItemPrice – Item price: decimal
            OrderItemQty – Quantity set on order: decimal
            Unit – Unit of measure: string
            ItemDiscount – Item discount: decimal
            ItemTotal – Item total: decimal
            ItemBaseCurrencyTotal – Item total in base currency: decimal
            ConversionRate – Currency conversion rate: decimal
            TaxCode – Tax code: string
            TaxRate – Tax rate: decimal
          }
       }
    }

Purchase Orders API Outlet User Manual

Purchase Order API Overview

The Purchase Order API is an API outlet or endpoint that allows developers to interact with a system to retrieve purchase orders associated with PLANERGY entities.

In this guide, we will learn the methods, parameters, and returns used in developing the applications to track and manage the lifecycle of a purchase order.

/PurchaseOrders

METHOD – Get

Receives:

  • OrderNumber – for filtering purchase orders specifically by Order Number field or part of it: String
  • RequisitionNumber – for filtering purchase orders specifically by Requisition Number field or part of it: String
  • SupplierName  – for filtering purchase orders specifically by Supplier Name field or part of it: String
  • DepartmentName – for filtering purchase orders specifically by Department Name field or part of it: String
  • DeliveryLocation – for filtering purchase orders specifically by Ship To field or part of it: String
  • RequestedDateFrom – for filtering purchase orders specifically by date of creation starting from this date: nullable DateTime
  • RequestedDateTo – for filtering purchase orders specifically by date of creation that ends with this date: nullable DateTime
  • DeliveryDateFrom – for filtering purchase orders specifically by due date starting from this date: nullable DateTime
  • DeliveryDateTo – for filtering purchase orders specifically by due date that ends with this date: nullable DateTime
  • OrderStatis – for filtering purchase orders specifically by status: string. It can have some of following values:
    • InCreation – In Creation (Saved)
    • InApprovalProcess – In Approval Process
    • ForwarderForFirstApproval – Forwarded for First approval
    • PartiallyApprovedNotForwarded – Partially approved – Not forwarded
    • PartiallyApprovedForwarded – Partially approved – Forwarded
    • EditedNotApproved – Edited not Approved
    • Approved – Approved POs
    • Open – Open
    • ApprovedUnreceived – Not Received
    • Unsent – Unsent
    • Sent – Sent
    • SentNotSeen – PO Not Viewed
    • SentSeen – PO Viewed
    • SentPrinted – PO Printed
    • SentAccepted – PO Accepted
    • SentRejected – PO Rejected
    • PartiallyReceived – Partially Received
    • Edited – Edited
    • Closed – Closed
    • ClosedCompleted – Closed Completed
    • ClosedInCompleted – Closed Uncompleted
    • NotApproved – Not Approved
    • CancelledRequisition – Cancelled Requisition
    • Rejected – Rejected
    • CancelledOrder – Cancelled Order
    • ManuallyCompleted – Invoicing Manually Closed
  • Archived – for including purchase orders that are archived (deleted) in the list: nullable Boolean
  • PageNumber  – all Lists for entities are paged by default, first page is always 1, retrieved number of records is maximum 1000: Int
  • RowsPerPage – all Lists for entities are paged by default, how many rows are returned by the action can be defined – default and maximum number of records is 1000

Note

When any nullable field is set as null, all results will be returned regardless of the value of that field.

Returns:

  • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of purchase orders
  • Status: NoContent – When the request is valid and no purchase orders are found for the sent filters, the Status returns NoContent.
  • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
  • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access units of measure, the Status returns Unauthorized.

If Status: Ok returns JSON formatted list of purchase orders with fields.

{
RowCount – total number of found records by sent search filters: Int
PageNumber – numeric page of the records returned – matches the PageNumber sent in the search, repeated here for checking: Int
RowsPerPage – numeric number of records returned on the – matches the RowsPerPage sent in the search, repeated here checking: Int
 ListOf:
 {
  {
  Guid – Id of the purchase order: Guid 
  OrderNumber – Order Number: string
  OrderRequisitionNumber – Requisiton Number : string
  OrderStatus – Status of order: string
  OrderArchived – Is order archived: boolean
  OrderTotal – Order total value: decimal
  OrderTotalTax – Order total value with tax: decimal
  OrderTotalBaseCurrency – Order total in base currency: decimal
  OrderReceivedTotal – Total amount received: decimal
  OrderInvoicedTotal – Total amount invoiced: decimal
  OrderNotInvoicedTotal – Total amount not invoiced: decimal
  OrderAccruedTotal – Total accrued: decimal
  OrderCurrency – Order currency: string
  OrderCurrencySymbol – Order currency symbol: string
  OrderExchangeRate – Currency exchange rate: decimal
  OrderBaseCurrencySymbol – Order base currency symbol: string
  OrderBaseCurrencyName – Order base currency name: string
  OrderSupplierName – Order supplier name : string
  OrderSupplierCode – Order supplier code: string
  OrderSupplierPhone – Order supplier phone: string
  OrderSupplierEmail – Order supplier email: string
  OrderDepartmentName – Order department name: string
  OrderDepartmentCode – Order department code: string
  OrderCompanyName – Order company name: string
  OrderCompanyCode – Order company code: string
  OrderBudgetMonth – Budget month on order : string
  OrderCreditTerms – Terms on order: string
  OrderDeliveryRecipient – Recipient on order: string
  OrderDeliveryAddress – Address of the order: string
  OrderDeliveryPhone – Order Location phone number: string
  OrderDeliveryPaidBy – Paid by field on order: string
  OrderDeliveryDate – Due date: datetime
  OrderRequestedDate – Date and time when order was created: datetime
  OrderRequestedBy – Order was created by this user: string
  OrderRejectedDate – Order rejected on date: nullable DateTime
  OrderRejectedBy – Order was rejected by this user: string
  OrderCancelledDate– Order cancelled on date: nullable DateTime
  OrderCancelledBy – Order was cancelled by this user: string
  OrderInternalNotes – Order internal notes: string
  OrderSupplierNotes – Supplier notes on order: strng
  OrderModifiedOn – Last date that order was modified on: nullable datetime
  OrderItems: Array
    {
      ItemName – Item name: string
      ItemCode – item code: string
      ItemPrice – item price: decimal
      ItemDiscount – Item discount: decimal
      ItemQuantityOrdered – Quantity ordered: decimal
      ItemQuantityReceived – Quantity received: decimal
      ItemQuantityReceivedInvoiced – Quantity received and invoiced: decimal
      ItemQuantityReceivedNotInvoiced – Quantity received but not invoiced: decimal
      ItemUnit – Unit of measure: string
      ItemCostCodeName – Cost code name: string
      ItemTotal – Item total value: decimal
      ItemTotalBaseCurrency – Item total value in base currency: decimal
      ItemInvoicedTotal – Item total amount invoiced : decimal
      ItemNotInvoicedTotal– Item total amount not invoiced : decimal
      ItemTotalReceived – Item total amount received: decimal
      ItemAccruedTotal – Item total accrued: decimal
    }
}

Suppliers API Outlet User Manual

Suppliers API Outlet Overview

The Suppliers API is an endpoint that enables developers to interact with a system to perform various operations related to Suppliers associated with PLANERGY entities such as manipulating, retrieving, adding, editing, and deleting the Suppliers.

In this guide, we will learn the methods, parameters, and returns used in developing the applications to track and manage supplier details.

/Suppliers

  1. Getting a list of suppliers related to the specified company [METHOD – Get]
    Receives:

    • SearchString for filtering suppliers of an entity by any string field or part of it: String
    • Codefor filtering suppliers specifically by Code field or part of it: String
    • Name  – for filtering suppliers specifically by Name field or part of it: String
    • IsActive for filtering suppliers specifically by IsActive tag: nullable Boolean

      Note

      If left null, all the suppliers regardless of the IsActive status will be returned.
    • IncludeArchived for including suppliers that are archived (deleted) in the list: Boolean
    • PageNumber  all Lists for entities are paged by default, first page is always 1, retrieved number of records is maximum 1000: Int
    • RowsPerPage all Lists for entities are paged by default, how many rows are returned by the action can be defined – default and maximum number of records is 1000

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of Suppliers.
    • Status: NoContent – When there are no Suppliers found for the sent filters, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized – When the user registered for the API usage does not have enough permissions to access Suppliers, the Status returns Unauthorized.

    If Status: Ok returns JSON formatted list of Suppliers with fields)

    {
    RowCount – total number of found records by sent search filters: Int
    PageNumber – numeric page of the records returned – matches the PageNumber sent in the search, repeated here for checking: Int
    RowsPerPage – numeric number of records returned on the – matches the RowsPerPage sent in the search, repeated here checking: Int
     ListOf:
       {
         Id – Id of the supplier: Guid 
         Code – Code of the supplier: String
         Name – Name of the supplier: String
         Phone – Phone of the supplier: String
         Email – Email of the supplier: String
         Address – Address of the supplier: String
         OnlineCatalogURL – Online catalog URL of the supplier: String
         IsNOnPOSupplier – Is this supplier tagged as the NonPOSupplier in the Planergy: Boolean 
         ContactName – Main contact name within the supplier: String
         ContactPhone – Main contact phone within the supplier: String
         ContactEmail – Main contact email within the supplier: String
         IsEarlyPaymentDiscountEnabled – Is Early Payment Discount Enabled on the supplier: Boolean 
         IsEarlyPaymentDiscountPrepopulated – Should Early payment discount be prepopulated on the supplier in Planergy: Boolean 
         PercentageOfEarlyPaymentDiscount – percentage value of the Prepayment discount for the supplier: Int 
         EarlyPaymentDiscountNoDays – Numeric value for the number of the days before which the percentage of the discount is applied: Int
         EarlyPaymentDiscountAppliedIncludingVAT – Is the total percentage value applied to only total or total with VAT: boolean 
         IsActive, – Is supplier Active: Boolean 
         IsArchived – Is supplier deleted (archived): Boolean
         Company: Complex
           { 
             Id – Id of the company the supplier is related to: Guid
             Name – Name of the company the supplier is related to: String
           }
         Currency: Complex
           {
             Id – Currency id assigned to the supplier: Gui 
             ThreeLetterCode – Three letter code assigned to the currency assigned ot the supplier: String
           }
         GeneralLedger: Complex
           {
             Id – Id of the General Ledger assigned to the supplier: Guid
             Code – Code of the General Ledger assigned to the supplier: String 
           }
        }
    }
  2. Getting a single supplier [METHOD – GET, parameters: Id, unique identifier of the supplier]
    Receives:

    • Id – Unique identifier of the supplier, type: Guid

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok.

    Supplier Data:

    {
    Id – Id of the supplier: Guid 
    Code – Code of the supplier: String
    Name – Name of the supplier: String
    Phone – Phone of the supplier: String
    Email – Email of the supplier: String
    Address – Address of the supplier: String
    OnlineCatalogURL – Online catalog URL of the supplier: String
    IsNOnPOSupplier – Is this supplier tagged as the NonPOSupplier in the Planergy: Boolean 
    ContactName – Main contact name within the supplier: String
    ContactPhone – Main contact phone within the supplier: String
    ContactEmail – Main contact email within the supplier: String
    IsEarlyPaymentDiscountEnabled – Is Early Payment Discount Enabled on the supplier: Boolean 
    IsEarlyPaymentDiscountPrepopulated – Should Early payment discount be prepopulated on the supplier in Planergy: Boolean 
    PercentageOfEarlyPaymentDiscount – percentage value of the Prepayment discount for the supplier: Int 
    EarlyPaymentDiscountNoDays – Numeric value for the number of the days before which the percentage of the discount is applied: Int
    EarlyPaymentDiscountAppliedIncludingVAT – Is the total percentage value applied to only total or total with VAT: boolean 
    IsActive, – Is supplier Active: Boolean 
    IsArchived – Is supplier deleted (archived): Boolean
      Company: Complex
      { 
        Id – Id of the company the supplier is related to: Guid
        Name – Name of the company the supplier is related to: String
      }
      Currency: Complex
      {
        Id – Currency id assigned to the supplier: Gui 
        ThreeLetterCode – Three letter code assigned to the currency assigned ot the supplier: String
      }
      GeneralLedger: Complex
      {
        Id – Id of the General Ledger assigned to the supplier: Guid
        Code – Code of the General Ledger assigned to the supplier: String 
      }
    }
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –   When the user registered for the API usage does not have enough permissions to access Suppliers, the Status returns Unauthorized.
  1. Adding a supplier to a Company[Method – POST]
    Receives:

    { 
    Code – Code of the supplier: String
    Name – Name of the supplier: String
    Phone – Phone of the supplier: String
    Email – Email of the supplier: String
    Address – Address of the supplier: String
    OnlineCatalogURL – Online catalog URL of the supplier: String
    IsNOnPOSupplier – Is this supplier tagged as the NonPOSupplier in the Planergy: Boolean 
    ContactName – Main contact name within the supplier: String
    ContactPhone – Main contact phone within the supplier: String
    ContactEmail – Main contact email within the supplier: String
    IsEarlyPaymentDiscountEnabled – Is Early Payment Discount Enabled on the supplier: Boolean 
    IsEarlyPaymentDiscountPrepopulated – Should Early payment discount be prepopulated on the supplier in Planergy: Boolean 
    PercentageOfEarlyPaymentDiscount – percentage value of the Prepayment discount for the supplier: Int 
    EarlyPaymentDiscountNoDays – Numeric value for the number of the days before which the percentage of the discount is applied: Int
    EarlyPaymentDiscountAppliedIncludingVAT – Is the total percentage value applied to only total or total with VAT: boolean 
    IsActive, – Is supplier Active: Boolean 
    Company: Complex
    { 
    Id – Id of the company the supplier is related to: Guid
    }
    Currency: Complex
    {
    Id – Currency id assigned to the supplier: Guid
    }
    GeneralLedger: Complex
    {
    Id – Id of the General Ledger assigned to the supplier: Guid 
    }
    }

    Returns: 

    • Status: Created When a new Tax is created, the Status returns Created.
    {   
    Id – Id of the supplier: Guid 
    Code – Code of the supplier: String
    Name – Name of the supplier: String
    Phone – Phone of the supplier: String
    Email – Email of the supplier: String
    Address – Address of the supplier: String
    OnlineCatalogURL – Online catalog URL of the supplier: String
    IsNOnPOSupplier – Is this supplier tagged as the NonPOSupplier in the Planergy: Boolean 
    ContactName – Main contact name within the supplier: String
    ContactPhone – Main contact phone within the supplier: String
    ContactEmail – Main contact email within the supplier: String
    IsEarlyPaymentDiscountEnabled – Is Early Payment Discount Enabled on the supplier: Boolean 
    IsEarlyPaymentDiscountPrepopulated – Should Early payment discount be prepopulated on the supplier in Planergy: Boolean 
    PercentageOfEarlyPaymentDiscount – percentage value of the Prepayment discount for the supplier: Int 
    EarlyPaymentDiscountNoDays – Numeric value for the number of the days before which the percentage of the discount is applied: Int
    EarlyPaymentDiscountAppliedIncludingVAT – Is the total percentage value applied to only total or total with VAT: boolean 
    IsActive, – Is supplier Active: Boolean 
    IsArchived – Is supplier deleted (archived): Boolean
      Company: Complex
      { 
        Id – Id of the company the supplier is related to: Guid
        Name – Name of the company the supplier is related to: String
      }
      Currency: Complex
      {
        Id – Currency id assigned to the supplier: Guid
        ThreeLetterCode – Three letter code assigned to the currency assigned ot the supplier: String
      }
      GeneralLedger: Complex
      {
        Id – Id of the General Ledger assigned to the supplier: Guid
        Code – Code of the General Ledger assigned to the supplier: String 
      }
    }
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access Suppliers, the Status returns Unauthorized.
  1. Editing a supplier [Method – PUT]
    Receives:

    • FROM URL Id of the supplier: GuidExample: {apiURL}/suppliers/59fd193b-ba8e-4e65-88b8-d4fe1dc5acd7
    • FROM BODY – JSON
      
      Code – Code of the supplier: String
      Name – Name of the supplier: String
      Phone – Phone of the supplier: String
      Email – Email of the supplier: String
      Address – Address of the supplier: String
      OnlineCatalogURL – Online catalog URL of the supplier: String
      IsNOnPOSupplier – Is this supplier tagged as the NonPOSupplier in the Planergy: Boolean 
      ContactName – Main contact name within the supplier: String
      ContactPhone – Main contact phone within the supplier: String
      ContactEmail – Main contact email within the supplier: String
      IsEarlyPaymentDiscountEnabled – Is Early Payment Discount Enabled on the supplier: Boolean 
      IsEarlyPaymentDiscountPrepopulated – Should Early payment discount be prepopulated on the supplier in Planergy: Boolean 
      PercentageOfEarlyPaymentDiscount – percentage value of the Prepayment discount for the supplier: Int 
      EarlyPaymentDiscountNoDays – Numeric value for the number of the days before which the percentage of the discount is applied: Int
      EarlyPaymentDiscountAppliedIncludingVAT – Is the total percentage value applied to only total or total with VAT: boolean 
      IsActive, – Is supplier Active: Boolean 
        Company: Complex
        { 
          Id – Id of the company the supplier is related to: Guid
        }
        Currency: Complex
        {
          Id – Currency id assigned to the supplier: Guid
        }
        GeneralLedger: Complex
        {
          Id – Id of the General Ledger assigned to the supplier: Guid 
        }
      }

    Returns: 

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of Suppliers. 
    {
    
    Id – Id of the supplier: Guid 
    Code – Code of the supplier: String
    Name – Name of the supplier: String
    Phone – Phone of the supplier: String
    Email – Email of the supplier: String
    Address – Address of the supplier: String
    OnlineCatalogURL – Online catalog URL of the supplier: String
    IsNOnPOSupplier – Is this supplier tagged as the NonPOSupplier in the Planergy: Boolean 
    ContactName – Main contact name within the supplier: String
    ContactPhone – Main contact phone within the supplier: String
    ContactEmail – Main contact email within the supplier: String
    IsEarlyPaymentDiscountEnabled – Is Early Payment Discount Enabled on the supplier: Boolean 
    IsEarlyPaymentDiscountPrepopulated – Should Early payment discount be prepopulated on the supplier in Planergy: Boolean 
    PercentageOfEarlyPaymentDiscount – percentage value of the Prepayment discount for the supplier: Int 
    EarlyPaymentDiscountNoDays – Numeric value for the number of the days before which the percentage of the discount is applied: Int
    EarlyPaymentDiscountAppliedIncludingVAT – Is the total percentage value applied to only total or total with VAT: boolean 
    IsActive, – Is supplier Active: Boolean 
    IsArchived – Is supplier deleted (archived): Boolean
    Company: Complex
      { 
        Id – Id of the company the supplier is related to: Guid
        Name – Name of the company the supplier is related to: String
      }
    Currency: Complex
      {
        Id – Currency id assigned to the supplier: Guid
        ThreeLetterCode – Three letter code assigned to the currency assigned ot the supplier: String
      }
    GeneralLedger: Complex
      {
        Id – Id of the General Ledger assigned to the supplier: Guid
        Code – Code of the General Ledger assigned to the supplier: String 
      }
    }
    • Status: NoContent – If a Supplier with such Id is not found or Id belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request. 
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access Suppliers, the Status returns Unauthorized.
  1. Deleting a supplier [Method – Delete, parameters: Id (from URL)]
    Receives:

    • Id – Id of the document, type: Guid

    Returns:

    • Status: Ok – When the deletion of the Supplier is completed, the Status returns Ok.
    • Status: NoContent – If a Supplier with such ID is not found or ID belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized – When the user registered for the API usage does not have enough permissions to access the entity and the related documents, the Status returns Unauthorized.

Taxes API Outlet User Manual

Taxes API Overview

The Taxes API is an endpoint that enables developers to interact with a system to perform various operations related to Taxes associated with PLANERGY entities such as retrieving, adding, editing, and deleting the Taxes.

In this guide, we will learn the methods, parameters, and returns used in developing the applications to track and manage the lifecycle of Taxes.

/Taxes

  1. Getting a list of taxes related to the specified company [METHOD – Get]
    Receives:

    • SearchString for filtering taxes of an entity by any string field or part of it: String
    • Typefor filtering taxes specifically by Code field or part of it: String
    • Rate for filtering taxes specifically by Name field or part of it: String
    • IsActive for filtering taxes specifically by IsActive tag: nullable Boolean
    • Imported for filtering taxes specifically by Imported tag: nullable Boolean
    • Archived for including taxes that are archived (deleted) in the list: Boolean
    • PageNumber all Lists for entities are paged by default, first page is always 1, and retrieved number of records is maximum 1000: Int
    • RowsPerPage all Lists for entities are paged by default, how many rows are returned by the action can be defined – default and maximum number of records is 1000

    Note

    If any nullable Boolean field is null, taxes will be returned regardless of the value of that field.

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of Taxes
    • Status: NoContent – When there are no Taxes found for the sent filters, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized – When the user registered for the API usage does not have enough permissions to access Taxes, the Status returns Unauthorized.

    If Status: Ok returns JSON formatted list of Taxes with fields.

    {
    RowCount – total number of found records by sent search filters: Int
    PageNumber – numeric page of the records returned – matches the PageNumber sent in the search, repeated here for checking: Int
    RowsPerPage – numeric number of records returned on the – matches the RowsPerPage sent in the search, repeated here checking: Int
    ListOf:
      {
        Id – Id of the tax: Guid 
        Type – Code of the tax: String
        Description – Description of the tax: String
        Label – Label of the tax: String 
        IsDefault – Is tax Default: Boolean 
        Rate – Rate: Decimal 
        Company: Complex
        {  
          Id – Id of the company the tax is related to: Guid
          Name – Name of the company the tax is related to: String
        }
      }
    }
  2. Getting a single tax [METHOD – GET, parameters: Id, unique identifier of the tax
    Receives:

    • Id – Unique identifier of the tax, type: Guid

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok.

    Tax Data:

    {
    Id – Id of the tax: Guid 
    Type – Code of the tax: String
    Description – Description of the tax: String
    Label – Label of the tax: String 
    IsDefault – Is tax Default: Boolean 
    Rate – Rate: Decimal 
    Company: Complex
      { 
        Id – Id of the company the tax is related to: Guid
        Name – Name of the company the tax is related to: String
      }
    }
    • Status: NoContent – When there are no Taxes found for the sent filters, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –   When the user registered for the API usage does not have enough permissions to access Tax, the Status returns Unauthorized.
  1. Adding a tax to a Company [Method – POST]
    Receives:

    { 
    Type – Code of the tax: String
    Rate – Name of the tax: Decimal
    Label – Address of the tax: String
    Description – Type of the tax: String 
    IsActive – Is tax Active: Boolean 
    IsDefault – Is tax Default: Boolean
    }

    Returns: 

    • Status: Created – When a new Tax is created, the Status returns Created.
    {
    Id – Id of the tax: Guid 
    Type – Code of the tax: String
    Description – Description of the tax: String
    Label – Label of the tax: String 
    IsDefault – Is tax Default: Boolean 
    Rate – Rate: Decimal 
    Company: Complex
      { 
        Id – Id of the company the tax is related to: Guid
        Name – Name of the company the tax is related to: String
      }
    }
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request. 
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access Taxes, the Status returns Unauthorized.
  1. Editing a tax [Method – PUT]
    Receives:

    • FROM URLId of the tax: Guid

      Example: {apiURL}/taxes/59fd193b-ba8e-4e65-88b8-d4fe1dc5acd7
    • FROM BODY – JSON
      { 
      Type – Code of the tax: String
      Rate – Name of the tax: Decimal
      Label – Address of the tax: String
      Description – Type of the tax: String 
      IsActive – Is tax Active: Boolean 
      IsDefault – Is tax Default: Boolean
      }

    Returns: 

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of Taxes.
    {
    Id – Id of the tax: Guid 
    Type – Code of the tax: String
    Description – Description of the tax: String
    Label – Label of the tax: String 
    IsDefault – Is tax Default: Boolean 
    Rate – Rate: Decimal 
    Company: Complex
      { 
        Id – Id of the company the tax is related to: Guid
        Name – Name of the company the tax is related to: String
      }
    }
    • Status: NoContent – If a Tax with such Id is not found or Id belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request. 
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access Taxes, the Status returns Unauthorized.
  1. Deleting a tax [Method – Delete, parameters: Id (from URL)]
    Receives:

    • Id – Id of the document, type: Guid

    Returns:

    • Status: Ok – When the deletion of the Tax is completed, the Status returns Ok.
    • Status: NoContent – If a Tax with such ID is not found or ID belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized – When the user registered for the API usage does not have enough permissions to access the entity and the related documents, the Status returns Unauthorized.

Terms API Outlet User Manual

Terms API Overview

The Terms API is an endpoint that enables developers to interact with a system to perform various operations related to Terms associated with PLANERGY entities such as retrieving, adding, editing, and deleting the Terms.

In this guide, we will learn the methods, parameters, and returns used in developing the applications to track and manage the lifecycle of the Terms.

/Terms

  1. Getting a list of terms related to the specified company [METHOD – Get]
    Receives:

    • SearchString for filtering terms of an entity by any string field or part of it: String
    • Name for filtering terms specifically by Name field or part of it: String
    • IsActive for filtering terms specifically by IsActive tag: nullable Boolean
    • Imported for filtering terms specifically by Imported tag: nullable Boolean
    • Archived for including terms that are archived (deleted) in the list: Boolean 
    • CreditDays for including terms with defined credit days: nullable Int
    • PageNumber all Lists for entities are paged by default, first page is always 1, and retrieved number of records is maximum 1000: Int
    • RowsPerPage all Lists for entities are paged by default, how many rows are returned by the action can be defined – default and maximum number of records is 1000

    Note

    If any nullable Boolean field is null, terms will be returned regardless of the value of that field.

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of Terms.
    •  Status: NoContent – When there are no Terms found for the sent filters, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access Terms, the Status returns Unauthorized.

    If Status: Ok returns JSON formatted list of Terms with fields.

    {
    RowCount – total number of found records by sent search filters: Int
    PageNumber – numeric page of the records returned – matches the PageNumber sent in the search, repeated here for checking: Int
    RowsPerPage – numeric number of records returned on the – matches the RowsPerPage sent in the search, repeated here checking: Int
      ListOf:
      {
        Id – Id of the term: Guid 
        Name – Name of the term: String
        Description – Description of the term: String
        IsActive – Is term Active: Boolean 
        IsArchived – Is term deleted (archived): Boolean 
        CreditDays – Credit days of the term: int
        Company: Complex
        { 
          Id – Id of the company the term is related to: Guid
          Name – Name of the company the term is related to: String
        }
      }
    }
  2. Getting a single term [METHOD – GET, parameters: Id, unique identifier of the term]
    Receives:

    • Id – Unique identifier of the term, type: Guid

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok.

    Term Data:

    {
    Id – Id of the term: Guid 
    Name – Name of the term: String
    Description – Description of the term: String
    IsActive – Is term Active: Boolean 
    IsArchived – Is term deleted (archived): Boolean 
    CreditDays – Credit days of the term: Int
    Company: Complex
      { 
        Id – Id of the company the term is related to: Guid
        Name – Name of the company the term is related to: String
      }
    }
    • Status: NoContent – When there are no Terms found for the sent filters, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request. 
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access Terms, the Status returns Unauthorized.
  1. Adding a term to a Company [METHOD – POST]
    Receives:

    { 
    Name – Name of the term: String
    Description – Address of the term: String 
    IsActive – Is term Active: Boolean 
    CreditDays – Credit days of the term: Int 
    }

    Returns: 

    • Status: Created – When a new Term is created, the Status returns Created.
    {
    Id – Id of the term: Guid 
    Name – Name of the term: String
    Description – Description of the term: String
    IsActive – Is term Active: Boolean 
    IsArchived – Is term deleted (archived): Boolean 
    CreditDays – Credit days of the term: Int
    Company: Complex
      { 
        Id – Id of the company the term is related to: Guid
        Name – Name of the company the term is related to: String
      }
    }
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request. 
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access Terms, the Status returns Unauthorized.
  1. Editing a term [METHOD – PUT]
    Receives:

    • FROM URLId of the term: GuidExample: {apiURL}/terms/59fd193b-ba8e-4e65-88b8-d4fe1dc5acd7
    • FROM BODY – JSON
      { 
      Name – Name of the term: String
      Description – Address of the term: String 
      IsActive – Is term Active: Boolean 
      CreditDays – Credit days of the term: Int 
      }

    Returns: 

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of Terms.
    {
    Id – Id of the term: Guid 
    Name – Name of the term: String
    Description – Description of the term: String
    IsActive – Is term Active: Boolean 
    IsArchived – Is term deleted (archived): Boolean 
    CreditDays – Credit days of the term: Int
    Company: Complex
      { 
        Id – Id of the company the term is related to: Guid
        Name – Name of the company the term is related to: String
      }
    }
    • Status: NoContent – If a Term with such Id is not found or Id belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request. 
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access Terms, the Status returns Unauthorized.
  1. Deleting a term [Method – Delete, parameters: Id (from URL)]
    Receives:

    • Id – Id of the document, type: Guid

    Returns:

    • Status: Ok – When the deletion of the Term is completed, the Status returns Ok.
    • Status: NoContent – If a Term with such Id is not found or Id belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request. 
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access Terms, the Status returns Unauthorized.

 


Units of Measure API Outlet User Manual

Units of Measure API Outlet Overview

The UOM API outlet is an endpoint that enables developers to interact with a system to perform various operations related to units of measure associated with PLANERGY entities such as retrieving, adding, editing, and deleting the units of measure.

In this guide, we will learn the methods, parameters, and returns used in developing the application to track and manage the lifecycle of a unit of measure.

/UOM

  1. Getting the list of units of measures related to the specified company [METHOD – Get]
    Receives:

    • SearchString for filtering units of measures of an entity by any string field or part of it: String
    • Namefor filtering units of measures specifically by Code field or part of it: String
    • Symbol for filtering units of measures specifically by Symbol field or part of it: String
    • IsActive for filtering units of measures specifically by IsActive tag: nullable Boolean
    • Type for filtering units of measures specifically by Type tag: nullable Int
    • Archived for including units of measures that are archived (deleted) in the list: Boolean
    • PageNumber all Lists for entities are paged by default, first page is always 1, and retrieved number of records is maximum 1000: Int
    • RowsPerPage all Lists for entities are paged by default, how many rows are returned by the action can be defined – default and maximum number of records is 1000

    Note

    When any nullable Boolean field is null, units of measures will be returned regardless of the value of that field.

    Note

    Returns:

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted list of Units of measures
    • Status: NoContent – When there are no Units of Measures found for the sent filters, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access units of measure, the Status returns Unauthorized.

    If Status: Ok returns JSON formatted list of Units of measures with fields.

    {
    RowCount – total number of found records by sent search filters: Int
    PageNumber – numeric page of the records returned – matches the PageNumber sent in the search, repeated here for checking: Int
    RowsPerPage – numeric number of records returned on the – matches the RowsPerPage sent in the search, repeated here checking: Int
      ListOf:
      {
        Id – Id of the unit of measure: Guid 
        Name – Code of the unit of measure: String
        Symbol – Name of the unit of measure: String
        Type – Type of the unit of measure: String 
        IsActive – Is unit of measure Active: Boolean 
        IsArchived – Is unit of measure deleted (archived): Boolean
       }
    }
  2. Getting a single unit of measure [METHOD – GET, parameters: Id, unique identifier of the unit of measure]
    Receives:

    • Id – Unique identifier of the unit of measure, type: Guid

    Returns:

    • Status: Ok – When the request is valid, the Status returns OK and displays Units of measures data.

    Unit of measure Data:

    {
    Id – Id of the unit of measure: Guid 
    Name – Code of the unit of measure: String
    Symbol – Name of the unit of measure: String
    Type – Type of the unit of measure: String 
    IsActive – Is unit of measure Active: Boolean 
    IsArchived – Is unit of measure deleted (archived): Boolean
    }
    • Status: NoContent – When no Units of Measures are found for the sent filters, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access units of measure, the Status returns Unauthorized.
  3. Adding a unit of measure to a Company [Method – POST]
    Receives:

    { 
    Name – Name of the unit of measure: String
    Symbol – Symbol of the unit of measure: String
    IsActive – Is unit of measure Active: Boolean 
    Type – Is unit of measure Type: Int
    }

    Returns: 

    • Status: Created
    {
    Id – Id of the unit of measure: Guid 
    Name – Code of the unit of measure: String
    Symbol – Name of the unit of measure: String
    Type – Type of the unit of measure: String 
    IsActive – Is unit of measure Active: Boolean 
    IsArchived – Is unit of measure deleted (archived): Boolean
    }
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access units of measure, the Status returns Unauthorized.
  1. Editing a unit of measure [Method – PUT]
    Receives:

    • FROM URL

      Id of the unit of measure:
      GuidExample: {apiURL}/units of measures/59fd193b-ba8e-4e65-88b8-d4fe1dc5acd7
    • FROM BODY JSON
      { 
      Name – Name of the unit of measure: String
      Symbol – Symbol of the unit of measure: String
      IsActive – Is unit of measure Active: Boolean 
      Type – Is unit of measure Type: Int
      }

    Returns: 

    • Status: Ok – When the request is valid, the Status returns Ok and displays the JSON formatted Units of measures
    {
    Id – Id of the unit of measure: Guid 
    Name – Code of the unit of measure: String
    Symbol – Name of the unit of measure: String
    Type – Type of the unit of measure: String 
    IsActive – Is unit of measure Active: Boolean 
    IsArchived – Is unit of measure deleted (archived): Boolean
    }
    • Status: NoContent If a unit of measure with such Id is not found or Id belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns as ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access units of measure, the Status returns as Unauthorized.
  1. Deleting a unit of measure [Method – Delete, parameters: Id (from URL)]
    Receives:

    • Id – Id of the document, type: Guid

    Returns:

    • Status: Ok When the deletion of the unit of measure is completed, the Status returns Ok.
    • Status: NoContent If a unit of measure with such ID is not found OR ID belongs to an Entity registered to another company, the Status returns NoContent.
    • Status: ExpectationsFailed – When the request sent is not completed, the Status returns ExpectationsFailed with a message describing the error for the unsuccessful completion of the request.
    • Status: Unauthorized –  When the user registered for the API usage does not have enough permissions to access units of measure, the Status returns Unauthorized.
Updated on December 5, 2024
Was this article helpful?