Technical¶
Table and Field Definitions Lime CRM¶
Endpoints / Messages¶
The resources Xellent posts messages to are:
| Method | Message | URL |
|---|---|---|
| POST | Customer | https://<lime server DNS>/<application name>/limepkg-xellent-integration/xellent/customer/ |
| POST | Customeragreement | https://<lime server DNS>/<application name>/limepkg-xellent-integration/xellent/customeragreement/ |
| POST | Customeragreementpart | https://<lime server DNS>/<application name>/limepkg-xellent-integration/xellent/customeragreementpart/ |
| POST | Agreement | https://<lime server DNS>/<application name>/limepkg-xellent-integration/xellent/agreement/ |
| POST | Utilinstall | https://<lime server DNS>/<application name>/limepkg-xellent-integration/xellent/utilinstall/ |
| POST | DPDetail | https://<lime server DNS>/<application name>/limepkg-xellent-integration/xellent/dpdetail/ |
| POST | Timereadings | https://<lime server DNS>/<application name>/limepkg-xellent-integration/xellent/timereadings/ |
| POST | Connectedsupplier | https://<lime server DNS>/<application name>/limepkg-xellent-integration/xellent/connectedsupplier/ |
| POST | Billingmethod | https://<lime server DNS>/<application name>/limepkg-xellent-integration/xellent/billingmethod/ |
| POST | Pricearea | https://<lime server DNS>/<application name>/limepkg-xellent-integration/xellent/pricearea/ |
| POST | Docuref | https://<lime server DNS>/<application name>/limepkg-xellent-integration/xellent/docuref/ |
| POST | Pricecontractpart | https://<lime server DNS>/<application name>/limepkg-xellent-integration/xellent/pricecontractpart/ |
| POST | Estimatedconsumption | https://<lime server DNS>/<application name>/limepkg-xellent-integration/xellent/estimatedconsumption/ |
| POST | Estimatedconsumptionfjv | https://<lime server DNS>/<application name>/limepkg-xellent-integration/xellent/estimatedconsumptionfjv/ |
Customer¶
Summary: Corresponds to the customer (Kund) object in Xellent and Lime.
Limetype(s): [company] is the intended limetype
Example Message Customer
{
"ChangeId": "AMR123456789",
"CustTable": {
"AccountNum": "1337",
"Address": "Limevägen 1\n12345 Limevalla",
"AddressTable_DirParty": [
{
"City": "Limevalla",
"CountryRegionId": "SE",
"IsPrimary": "Yes",
"Street": "Limevalla 1",
"ZipCode": "12345"
},
{
"City": "Limeköping",
"CountryRegionId": "SE",
"IsPrimary": "No",
"Street": "Citrusgatan 2",
"ZipCode": "54321"
}
],
"CellularPhone": "072-XXXXXXX",
"Currency": "SEK",
"CustClassificationId": "",
"CustGroup": "K",
"EGS_AutoGiroStatus": "None",
"EGS_DateOfDeath": "",
"EGS_Death": "No",
"EGS_eMailInvoice": "",
"EGS_EnergyAccount": "No",
"EGS_MovingInAgreement": "No",
"EGS_Protect": "No",
"EGS_SMSInvoice": "",
"Email": "kontakt@lime.tech",
"ExtCodeValueTable": [],
"EXU_AdditionalName": "",
"EXU_AlternativeCustomerNumber": "199005211111",
"EXU_TechnicGroup1": "",
"EXU_TechnicGroup2": "",
"EXU_TechnicMemo1": "",
"EXU_TechnicTxt3": "",
"MainContactId": "",
"Memo": "",
"Name": "Lenny Lennsson",
"ParentAccountNum": "",
"PartyType": "Organization",
"PaymMode": "BGOCR",
"PaymTermId": "30 N",
"Phone": "010-1234567",
"RecId": "6546546546",
"Website": ""
},
"MessageType": "Update"
}
Customeragreement¶
Summary: Corresponds to the customer agreement (Kontrakt) object in Xellent and Lime.
Limetype(s): [customeragreement] is the intended limetype
Example Message Customeragreement
{
"ChangeId": "AMR0078123123",
"EXU_ContractTable": {
"AttachmentNum": "9504601",
"BillingBasis": "Prepayment",
"BillingPlanNum": "MÅNAD",
"ContractEndDate": "",
"ContractNum": "7164833",
"ContractStartDate": "2023-06-13",
"ContractTemplateNum": "B12 Sch IN",
"ContractType": "Installation",
"CustAccount": "1337",
"CustPaymCode": "30 N",
"EGS_CustRef": "",
"EGS_EDIInvoice": "No",
"EGS_EDIReference": "",
"EGS_eMailInvoice": "",
"EGS_PEPPOLInvoice": "No",
"EGS_SelfBilling": "No",
"EGS_SMSInvoice": "",
"EInvoiceEANNum": "",
"InvoiceAddress": [
{
"Address": "Box 3 ",
"City": "Limeholm",
"CountryRegionId": "",
"Street": "Box 3",
"ZipCode": "11111"
}
],
"InvoiceLinesExclTax": "TaxExcluded",
"LockDueDate": "No",
"NextBillingIncludeDate": "2023-06-30",
"PrePaymentPrincip": "Period",
"PrintWellcomeLetter": "No",
"ReadingControl": "NextBillingEndDate",
"ReasonToEndCalcDate": "",
"ReasonToEndCalcGroup": "",
"ReasonToEndCalcTxt": "",
"RecId": "1342426291",
"ReferenceToMainContract": "",
"TakeOffInvoiceNumGroup": ""
},
"MessageType": "Update"
}
Customeragreementpart¶
Summary: Corresponds to the customer agreement part (Kontraktsdel) object in Xellent and Lime.
Limetype(s): [customeragreementpart] is the intended limetype
Example Message Customeragreementpart
{
"ChangeId": "AMR007123123",
"ContractPartTable": {
"AMRCode": "",
"CntrPartPriceMngmt": [],
"CompanyId": "XYZ",
"ContractNum": "712345",
"ContractPartSubReferenceType": "Blank",
"ContractType": "Installation",
"DeliveryCategory": "BB",
"DeliveryGroupNum_RateCode": "100/10Mb",
"EGS_EffektReconciliation": "No",
"EGS_EnvironmentCode": "",
"EndDate": "",
"InstAgreeNum": "100123",
"ProductNum": "PrivMån",
"ProductTable": [
{
"DeliveryCategory": "BB",
"ProductNum": "PrivMån",
"ProductTxt": "BB Privat",
"StartDate": "2023-01-01"
}
],
"RecId": "123123123123",
"StartDate": "2023-06-01"
},
"MessageType": "Insert"
}
Agreement¶
Summary: Corresponds to the agreement (Avtal) object in Xellent and Lime.
Limetype(s): [agreement] is the intended limetype
Example Message Agreement
{
"":""
}
Utilinstall¶
Summary: Corresponds to the installationhead (Anläggning), installation (Nyttighet), meter (Mätare) and meterpoint (Mätpunkt) objects in Xellent and Lime.
Limetype(s): [installationhead], [installation], [meter], [meteringpoint] are the intended limetypes
Example Message Utilinsall
{
"ChangeId": "AMR007321321",
"EXU_UtilInstallation": {
"CategoryNum": "13",
"CloseDate": "",
"CompanyId": "XYZ",
"DeliveryCategory": "FJV",
"EXU_ContractPart": [
{
"CompanyId": "XYZ",
"ContractNum": "7111222",
"ContractType": "Installation",
"DeliveryCategory": "FJV",
"EndDate": "",
"InstAgreeNum": "22333444",
"ProductNum": "FJV Normal",
"Startdate": "2014-06-01"
}
],
"EXU_DelPoint": [
{
"AttachmentNum": "22333444",
"CompanyId": "XYZ",
"DeliveryCategory": "FJV",
"DelpointGroupCode1": "",
"EGS_ConsumptionYearTable": [],
"EGS_DelPointTechnicalNo": "",
"EGS_MeterPointTypeCode": "",
"EMS_NetArea": "",
"EMS_ProductCode_SE": "2055",
"EXU_Relations": [
{
"CompanyId": "XYZ",
"DeliveryCategory": "FJV",
"EndDate": "",
"EXU_MeterTable": [
{
"CompanyId": "XYZ",
"ControlDate": "2024-11-19",
"DeliveryCategory": "FJV",
"DispStartDate": "",
"FabricationNumberAlfa": "1234567",
"MeterNum": "AB-112233",
"MeterStatus": "Active",
"MeterTechnicGroup2": "",
"MeterType": "AB",
"PurchaseDate": "2014-01-01",
"Qp": "0",
"Real1": "0",
"Real2": "0",
"Real3": "0",
"Real4": "0",
"Real5": "0",
"Real6": "0",
"Txt1": ""
}
],
"MeterNum": "AB-112233",
"StartDate": "2014-11-19"
}
],
"FuzeSize": 0,
"MeteringPoint": "",
"NetCompany": "0",
"Num": "StdFJV",
"Position": "",
"PositionName": "Nyckel HVC",
"SupplierName": "0"
}
],
"EXU_FixedUnitTrans": [
{
"AttachmentNum": "22333444",
"DeliveryCategory": "FJV",
"DelPointNum": "StdFJV",
"FromDate": "2013-01-01",
"Num": "Effekt FV"
}
],
"EXU_Installation": [
{
"AddrLocation": "Fastighet",
"City_SE": "Limespång",
"CountyNum": "3232",
"InstAddressFormatted": "Limeladan 1 - 9, Fastighet, 55465 Limespång",
"InstApartment": "",
"InstBBRNum": "Limemannen 3-7",
"InstFloor": "",
"InstGroupNum": "Standard",
"InstHouseNumStart": "1",
"InstNum": "22333444",
"ReadingPlanNum": "Mån-Fjärr",
"StreetName": "Limeladan",
"StreetNum": "0700",
"Street_SE": "Limeladan 1-9",
"ZipCodeId": "55456"
}
],
"EXU_InstDistr": [
{
"DataAreaId": "XYZ",
"DistrCat": "Avläsning",
"DistrNum": "1010",
"InstNum": "22333444",
"ReadingPortion": ""
}
],
"InstNum": "22333444",
"InstStatus": "Active",
"ProductionType": "None",
"ReadingPlanNum": "Mån-fjärr",
"ReasonToClose": "",
"RecId": "1342198269",
"ReopeningDate": "",
"SupplyNum": "FjvGrd20",
"UtilInstStartDate": "2013-01-01"
},
"MessageType": "Update"
}
Meterpoints (Mätpunkter)¶
Summary: Meterpoints are created from EXU_DelPoint entries within the Utilinstall message. Each EXU_DelPoint item produces one meteringpoint record in Lime.
Limetype: [meteringpoint]
How it works:
When a Utilinstall message is processed (Insert or Update), the handle_meter_points logic:
- Checks if
meterpoint_schemais configured and enabled in Lime Admin. - Iterates over all
EXU_DelPointentries nested underEXU_UtilInstallation. - For each
EXU_DelPoint, creates or updates ameteringpointrecord using the configuredmapped_values(e.g.MeteringPoint,Num,AttachmentNum, etc.). - Attaches the meterpoint to the parent
installationvia a relation.
Fixed Unit (EXU_FixedUnitTrans) mapping:
The EXU_FixedUnitTrans table contains fixed unit information linked to delivery points. The connection between the two tables is:
EXU_FixedUnitTrans.DelPointNum→EXU_DelPoint.Num
For each meterpoint, the code finds the matching EXU_FixedUnitTrans entry and writes its Num value (the fixed unit identifier, e.g. "US140L Mat", "US 240L") to the fixedunit property on the meteringpoint limetype.
Field mappings (meterpoint_schema):
| Xellent Property (EXU_DelPoint) | Lime Property (meteringpoint) |
|---|---|
MeteringPoint |
metering |
AttachmentNum |
attachmentnum |
CompanyId |
companyid |
DeliveryCategory |
deliverycategory |
EMS_ProductCode_SE |
ems_productcode_se |
Num |
num |
EGS_EmptyingCodeNum |
egs_emptyingcodenum |
EGS_EndDate |
egs_enddate |
Position |
position |
PositionName |
positionname |
| Xellent Property (EXU_FixedUnitTrans) | Lime Property (meteringpoint) |
|---|---|
Num |
fixedunit |
Lookup expression: The meterpoint is looked up by MeteringPoint → metering.
DPDetail¶
Summary: Corresponds to the deliverypointdetail (Fast Enhet) object in Xellent and Lime.
Limetype(s): [deliverypointdetail] is the intended limetype
Example Message DPDetail
{
"ChangeId": "AMR001231234",
"EXU_Fixedunittrans": {
"AttachmentNum": "60105901",
"AvailableQty": "0",
"CompanyId": "XYZ",
"DeliveryCategory": "RH",
"DelPointNum": "Restavfall",
"EXU_DelPoint": [
{
"AttachmentNum": "60105901",
"CompanyId": "XYZ",
"DeliveryCategory": "RH",
"EXU_UtilityInstallation": [
{
"CategoryNum": "1",
"CompanyId": "XYZ",
"DeliveryCategory": "RH",
"EXU_Category": [
{
"CategoryNum": "1",
"DeliveryCategory": "RH"
}
],
"InstNum": "60105901",
"SupplyNum": "Linjär",
"UtilInstStartDate": "2000-04-01"
}
],
"Num": "Restavfall"
}
],
"Fromdate": "2023-05-01",
"Num": "US 240L",
"Qty": "1",
"RecId": "5637332078"
},
"MessageType": "Insert"
}
Timereadings¶
Summary: Corresponds to the timereading (Timavläsningar) object in Xellent and Lime.
Limetype(s): [timereading] is the intended limetype
Example Message Timereadings
{
"ChangeId": "AMR007854931",
"EXU_TimeReadPeriod": {
"AttachmentNum": "3401606",
"CompanyId": "XYZ",
"DeliveryCategory": "EL",
"DelPointNum": "StdEL",
"EndDate": "",
"RecId": "1342262030",
"StartDate": "2023-06-09",
"TimeReadings": "No"
},
"MessageType": "Insert"
}
Connectedsupplier¶
Summary: Corresponds to the supplier (Leverantör) object in Xellent and Lime.
Limetype(s): [supplier] is the intended limetype
Example Message Connectedsupplier
{
"ChangeId": "AMR007854591",
"ems_energySupplierTable": {
"AttachmentNum": "29407901",
"CompanyId": "XYZ",
"DeliveryCategory": "EL",
"DelPointNum": "StdEL",
"EndDate": "",
"EXU_Supplier": [
{
"EANNumber": "11111",
"EMS_DeliveryCategory": "EL",
"EMS_FirmID": "556036-2138",
"Name": "Vattenfall AB"
}
],
"RecId": "1342407643",
"StartDate": "2023-09-01",
"Supplier": "11000"
},
"MessageType": "Insert"
}
Billingmethod¶
Summary: Corresponds to the billingmethod (Avräkningsmetod) object in Xellent and Lime.
Limetype(s): [billingmethod] is the intended limetype
Example Message Billingmethod
{
"ChangeId": "AMR001231234",
"exu_billingmethodPeriod": {
"AttachmentNum": "12312312",
"BillingMethod": "HourBilling",
"CompanyId": "XYZ",
"DeliveryCategory": "EL",
"DelPointNum": "StdEL",
"EndDate": "2154-12-31",
"RecId": "1342261280",
"StartDate": "2023-06-08"
},
"MessageType": "Insert"
}
Pricearea¶
Summary: Corresponds to the pricearea (Elområde) object in Xellent and Lime.
Limetype(s): [pricearea] is the intended limetype
Example Message Pricearea
{
}
````
</details>
---
### Docuref
Summary:
Limetype(s):
Message:
### Pricecontractpart
**Summary**: *Corresponds to the pricecontractpart (Pris Kontraktsdel) object in Xellent and Lime.*
**Limetype(s)**: [`pricecontractpart`] is the intended limetype
<details>
<summary>Example Message Pricecontractpart</summary>
```JSON
{
"ChangeId": "AMR007644454",
"EXU_ContractPart": {
"AMRCode": "",
"CompanyId": "XYZ",
"ContractNum": "7051198",
"ContractPartSubReferenceId": "",
"ContractPartSubReferenceType": "Blank",
"DeliveryCategory": "VA",
"EGS_ProdPrices": [
{
"BillingType": "Period",
"ItemId": "VA Fast avgift",
"ItemName": "Årsavgift",
"PriceExTax": "4729",
"PriceIncTax": "5911.25"
},
{
"BillingType": "Metering",
"ItemId": "VA Rörl avg",
"ItemName": "Förbrukning",
"PriceExTax": "17.9",
"PriceIncTax": "22.375"
}
],
"EGS_ProdPricesSum": [
{
"BillingType": "Metering",
"PriceExTax": "17.9",
"PriceIncTax": "22.375"
},
{
"BillingType": "Period",
"PriceExTax": "4729",
"PriceIncTax": "5911.25"
}
],
"EndDate": "2023-03-31",
"InstAgreeNum": "1000101",
"ProductNum": "VA",
"RecId": "1342177341",
"ServiceAgreementNum": "",
"StartDate": "1999-04-01"
},
"MessageType": "Update"
}
````
</details>
---
### Estimatedconsumption
**Summary**: _Corresponds to the estimatedconsumption (Förväntad Årsförbrukning) object in Xellent and Lime._
**Limetype(s)**: [`estimatedconsumption`] is the intended limetype
<details>
<summary>Example Message Estmiatedconsumption</summary>
```JSON
{
"ChangeId": "AMR007806634",
"EGS_ConsumptionYearTable": {
"AttachmentNum": "29310001",
"CompanyId": "XYZ",
"DeliveryCategory": "EL",
"ExpectedYearlyConsumption": "9268",
"Num": "StdEL",
"RecId": "1342183987",
"Unit": "kWh"
},
"MessageType": "Update"
}