Skip to main content
This is a private API and requires secure connection with ERP software!
Transport: AMQP (pub/sub). The platform publishes notifications to broker queues.

Message Envelope (Common)

Notifications are published as domain payloads (no extra wrapper) to the queues listed below.
  • Content-Type: application/json
  • Delivery: at-least-once (consumer should ack after successful processing)
  • Idempotency hint: use the top-level id and event-specific keys to de‑duplicate if your consumer is retried.

1) Customer Change Push Notification

Emitted when a customer is created/updated/deactivated in ERP.
Queue: secom-customer-queue

Notes

  • id corresponds to customerId in the ERP.
  • status can be Active or Passive.

Example Payload (with address/contact fields)

{
  "id": "134719",
  "status": "Active",
  "name": "Customer Name Here",
  "contactMedium": [
    {
      "characteristic": {
        "city": "İSTANBUL(Anadolu)",
        "country": "Türkiye",
        "phoneNumber": "5xxxxxxxxx",
        "socialNetworkId": "11111111111",
        "street1": "içerenköy"
        }
    }
  ]
}
The object MAY include additional customer attributes and arrays (e.g., addresses, contacts) depending on ERP mapping. Treat unknown properties as forward‑compatible.

2) Subscription Change Push Notification

Emitted when a subscription/agreement changes state or details in ERP.
Queue: secom-subscriptions-queue

Notes

  • id corresponds to subscriptionId in the ERP.
  • engagedParty corresponds to customerId in the ERP.

Example Payload (with ERP property bag)

{
   "id":"123462",
   "agreementType":"Kiralama",
   "documentNumber":"108999",
   "name":"RAMAZAN ÖZEKİNCİ",
   "status":"Active",
   "characteristic":[
      {
         "name":"CAMPAIGN",
         "valueType":"String",
         "value":"24 AY TAAHHÜTLÜ"
      },
      {
         "name":"MONTAGEADRESS",
         "valueType":"String",
         "value":"PINAR MAH. ONDOKUZ MAYIS BLV. AK TOWERS NO:42 İÇ KAPI NO:84"
      },
      {
         "name":"MONTAGECOUNTY",
         "valueType":"String",
         "value":"ESENYURT"
      },
      {
         "name":"MONTAGECITY",
         "valueType":"String",
         "value":"İSTANBUL(Avrupa)"
      },
      {
         "name":"MONTAGE_DATE",
         "valueType":"Date",
         "value":"2021-08-16"
      },
      {
         "name":"TOTAL_PAST_DUE_INSTALMENT",
         "valueType":"Float",
         "value":"0.0"
      },
      {
         "name":"PANELBRAND",
         "valueType":"String",
         "value":"EBS"
      },
      {
         "name":"PANELMODEL",
         "valueType":"String",
         "value":"CPX-300W"
      },
      {
         "name":"PANELNO",
         "valueType":"String",
         "value":"1065885"
      },
      {
         "name":"SALESEMP","valueType":"String","value":"ÜMİT"
      },
      {
         "name":"STAGE","valueType":"String","value":"6 - Sinyal Alımı Gerçekleşti"
      }
   ],
   "completionDate":{"endDateTime":"2023-08-16","startDateTime":"2021-08-13"},
   "engagedParty":[ { "id" : "134719" } ]
 }
Schema variance: The ERP may send additional key/value tuples inside properties (triplets of name, valueType, value). Consumers should parse this bag defensively.

Consumer Guidance

  • Ack/Nack: use your AMQP client’s normal ack flow; only ack after persisting/processing.
  • Retries: if your app crashes before ack, the message will be re‑delivered. Make handlers idempotent.
  • Ordering: do not rely on strict global ordering across queues.