services/pricelists/{plid}

Gets a price lists with all properties, including code, name, discounts, price minima, assigned clients and more.

The services included with a price list (such as Translation from English to French) can be retrieved with other API methods. 

Content:

URL

(GET) /api/services/pricelists/{plid}

PARAMETERS

URL parameters are:

plid

The price list ID

Integer, Mandatory


RESULTS

Main properties

The price list properties are:

plid

The price list ID

int 
codeThe price list code. The default price lists (generally) has an empty string. This field can be set by the user in the UI.string
name

The name of the price list.

string
cid

The company which owns the price list, i.e. which provides the services in the price list.

  • Internal and client price lists are always owned by the master company ("My company"): The master company provides the services to clients!
  • Supplier price lists are always owned by supplier companies. The supplier companies provide services to the master company ("My company") and which then resells services to its clients.

In other words: A price lists is always owned by the company which provides the listed services.

Passing a client company to the API URL will return price lists owned by the master company. Hence be careful to understand the difference between the cid passed in the URL and cid of a price list. It is not necessarily the same!

int
cnameThe company namestring
enabled

Indicates if the price list is enabled or disabled. A disabled price list cannot be used for cost calculation.

bool
isDefault

Boolean. True if this is the default price list of the client, supplier or master company.

bool
isDraft

Indicates if the price list is a draft. Wordbee Translator proposes price list drafting workflows that involve the supplier company. Please check out the online user guides for how this works.

bool
isClientPricelistBoolean. True if this is a client price list. False if it is a supplier price list.bool
currencyA three letter currency code such as EUR or USD. See also: settings/currencies/codesstring
currencytTitle of currency such as "Euro" or "US dollars"string
commentsInternal comments. Not accessible to external users. Empty string if none.string
contractnoInternal contract number assigned to this price list. This field is visible to internal users only. Empty string if none.string
decimalsNumber of decimals of price calculations. For example, you may want to show 2 decimals in invoices. Subtotals and totals will then be rounded accordingly.



reductions

Any reductions defined for pretranslations, fuzzy matches or repetitions.

See description further below.

object
minima

Minimum prices. Used to set for example a minimum of Euro 50 for a batch of work.

See description further below.

object
clients

Used with client price lists. The list of client company IDs to which the price list is assigned. Null if the price list is not a client price list.

See description further below.

object?
default

If the present price list is not the default (see isDefault) then this object contains the complete default price list. Otherwise this property is null.

See description further below.


rights

Access rights details. Specifies the exact actions permitted on the price list.

This information is only relevant if you intend to build a UI to view and edit price lists.

object

Reductions

The reductions object has these properties:


Pretranslation discounts

Discounts applicable for pretranslations.

object
pretranslations.reductionExact

Optional.

The default reduction for any kind of 100% or 110% pretranslations. More specific reductions can be set to override, see below.

Null means that no such reduction is set.

The reduction is a decimal number between 0 and 100. For example, 20.50 means that the calculated price will be reduced by 20.50%. 

decimal?
pretranslations.reductionExactCtx

Optional. Reduction for 110% (perfect) pretranslations.

If null then the discount is taken from pretranslations.reductionExact  

decimal?
pretranslations.reductionExactPrevCtx

Optional. Reduction for 110% (perfect) pretranslations from a previous document version. This applies when you upload a new version of a document and translations are carried over from the previous version while the context (segment before and after) is carried over as well.

If null then the discount is taken from pretranslations.reductionExact

decimal?
pretranslations.reductionExactPrev

Optional. Reduction for 100% (perfect) pretranslations from a previous document version. This applies when you upload a new version of a document and translations are carried over from the previous version while the context (segment before and after) is not carried over. Also compare to reductionExactPrevCtx.

If null then the discount is taken from pretranslations.reductionExact

decimal?
pretranslations.reductionExactMT

Optional. Reduction for machine translations. If null then the discount is taken from pretranslations.reductionExact

decimal?
pretranslations.reductionExactAnySpecialBoolean that summarizes whether any of the specialised discounts reductionExactCtx, reductionExactPrevCtx, reductionExactPrev or reductionExactMT are set.bool
pretranslations.reductionFuzzy

Optional. Reduction for <100% pre-translations.

A word count profile allows to leverage translations for pre-translations even if they do not match exactly. We name this the fuzzy pretranslation threshold.

decimal?




Fuzzy match & repetitions discounts

Groups all discounts for fuzzy matches and repetitions WITHOUT pretranslation. The word count profile defines under which condition hits are leveraged with a translation or not.

A typical case is when the similarity % is below a certain threshold such as 95%.

object
fuzzymatches.anyBoolean indicating if there are any such discounts defined.bool
fuzzymatches.any110Boolean indicating if there are any such discounts defined for 110% (perfect) fuzzy matches / repetitions without pretranslationbool
fuzzymatches.items

All % intervals with the corresponding discount. Example:

"items": [
	{
		"min": 100,
		"max": 110,
		"reduction": 40.0
	},
	{
		"min": 75,
		"max": 99,
		"reduction": 10.0
	}
]


  • min: The lower inclusive % range
  • max: The upper inclusive % range
  • reduction: The applicable reduction between 0 and 100 (a decimal)




Price minima

The minima object has these properties:

minima.global

An optional minimum amount for a batch of work.

The minimum is typically calculated when costing a batch of work and is reflected in the invoice.

For example, when assigning a job to a supplier, a minimum amount to invoice may apply for the work. In the same way, a minimum fee may be set for any work asked for by clients. 

decimal?
minima.languages

Zero, one or more minima for specific language combinations. The language minima always take precedence over the global minimum.

This is a list of minima with these properties:

  • src: The source language code. Null to indicate "Any language".
  • trg: The target language code. Null to indicate "Any language". You cannot have a minimum with both src and trg set to null.
  • srct: The source language title
  • trgt: The target language title
  • amount: The minimum amount (decimal).

When calculating the grand total for an invoice, the respective language minima will be applied to the sub-totals of the work items in these languages.


object[]


Default price list

The default property contains information of the parent price list and if the present price list inherits services or discounts.

The object is set if and only if the present price list is not the default price list of the company, i.e. isDefault is false.

The object has these properties:

default.plid

The default price list ID

int
default.codeThe default price list code.string
default.currencyA three letter currency code such as EUR or USD.string
default.currencytTitle of currency such as "Euro" or "US dollars"string



default.inheritServices

If true then the price list inherits all the services from the default price list. Of course, it is possible to replace individual prices by simply explicitly adding services with the same languages, task code and product code. This effectively "hides" the inherited service and replaces it.

By default this option is ticked off in any newly created price list. In general you should be careful working with inheritance, it is great to create price lists with global discounts or different currencies but at the same time makes price management a little bit more difficult.

bool
default.inheritReductionIf inheritance is enabled then this optional default will be automatically applied to all unit price amounts of the inherited services. With this feature you can create a price list that inherits all default services but applies a discount such as 5%. That makes it very easy to manage multiple price lists with varying discount levels at (almost) one click.decimal?



default.conversionRateUse if inheritance is enabled but the currency of the price list is NOT the same as the currency of the default price list. The conversion rate is then used to multiply the default price amounts to obtain the amounts for the present price list. With this feature it is easy to add price lists with the exact same services but for different currencies and using a fixed conversion rate.decimal?
default.conversionRateDateAn optional date that can be set for the fixed conversion rate above.datetime?


Assigned clients

The clients object is set if the price list is a client price list. It defines the clients for which the price list can or should be used.

clients.cids

The list of client company IDs to which the price list is explicitly assigned.

int[]
clients.hideIfNoClients

Boolean:

  • true: Price lists can be selected for a client only if explicitly assigned in array cids
  • false: The price list can be used with ANY client whether it was explicitly assigned or not.

When false, the explicit assignment is then for informational purposes for the project manager.

Any client specific price lists should best be configured with hideIfNoClients equals true

bool



EXAMPLES

The following example is for a manager user accessing a job which is proposed to him/her. As a manager, the user has management level actions as well.

{
    "plid": 473,
    "code": "sample",
    "name": "Sample price list",
    "cid": 1308,
    "cname": "Supplier LSP",
    "enabled": true,
    "isDefault": false,
    "isDraft": false,
    "isClientPricelist": false,
    "currency": "EUR",
    "currencyt": "Euro",
    "contractno": "",
    "comments": "",
    "reductions": {
        "fuzzymatches": {
            "any": true,
            "any110": false,
            "items": [
                {
                    "min": 100,
                    "max": 110,
                    "reduction": 40.0
                },
                {
                    "min": 75,
                    "max": 99,
                    "reduction": 10.0
                }
            ]
        },
        "pretranslations": {
            "reductionExact": 10.0,
            "reductionExactCtx": 20.0,
            "reductionExactPrevCtx": 20.0,
            "reductionExactPrev": 20.0,
            "reductionExactMT": null,
            "reductionExactAnySpecial": true,
            "reductionFuzzy": null
        }
    },
    "minima": {
        "global": 0.0000,
        "languages": []
    },
    "clients": null,
    "decimals": 4,
    "default": {
        "plid": 462,
        "code": "",
        "currency": "EUR",
        "currencyt": "Euro",
        "inheritServices": false,
        "inheritReduction": null,
        "conversionRate": null,
        "conversionRateDate": null
    },
    "rights": {
        "hasAccess": true,
        "isClientPricelist": false,
        "isDraft": false,
        "isDefault": false,
        "canEdit": true,
        "canDisableEnable": true,
        "canAmendStart": true,
        "canAmendDone": false,
        "canAmendApprove": false,
        "canAmendReject": false,
        "canClone": true,
        "canDelete": true,
        "canViewAttachedClients": false,
        "canViewRating": true,
        "canViewComments": true,
        "canViewBA": true,
        "canViewBackupServices": true,
        "allowsBackupServices": true,
        "canViewAmendments": false
    }
}





Copyright Wordbee - Buzzin' Outside the Box since 2008