FieldEdge Open API
dev
  • production
  • dev
DocsAPIs
DocsAPIs
dev
  • production
  • dev
dev
  • production
  • dev
  1. Webhook
  • Lead
    • Creates a new lead with customer details, appointment preferences, and service information.
      POST
    • Fetches lead details based on the provided lead identifier.
      GET
  • Customer
    • Creates a new customer
      POST
    • Updates an existing customer
      PUT
    • Retrieve customers by phone, email, or first name
      GET
    • Retrieve customer details by ID
      GET
    • Retrieve customers based on address details.
      GET
  • Item Category
    • Retrieve list of item categories
      GET
    • Retrieve item category by id.
      GET
    • Create a new item category
      POST
    • Partially update an item category
      PATCH
  • Item
    • Retrieve a paginated list of inventory items with optional filters
      GET
    • Retrieve an inventory item by ID
      GET
    • Creates a new inventory item
      POST
    • Updates an existing inventory item
      PATCH
  • Warehouse
    • Create a new warehouse
      POST
    • Retrieve a paginated list of warehouses
      GET
    • Update an existing warehouse
      PATCH
    • Retrieve a warehouse by ID
      GET
  • Employee
    • Retrieve a paginated list of employees
      GET
    • Retrieve an employee by ID
      GET
  • Company
    • Retrieve company name by ID
  • WorkOrder
    • Retrieve a work order by ID
  • Invoice
    • Retrieve an invoice by ID
  • Webhook
    • Register a webhook endpoint to receive event notifications.
      POST
    • Rotate the HMAC signing secret for the registered webhook.
      POST
    • Delete the registered webhook for the authenticated account.
      DELETE
  1. Webhook

Register a webhook endpoint to receive event notifications.

POST
/v1/webhook
Registers a callback URL that will receive real-time event notifications for work orders, invoices, item categories, and leads.
Once registered, FieldEdge will POST a JSON payload to your callback URL whenever a supported event occurs.

Important: Events Are Notification-Only#

Webhook events are notification-only. Each event contains the identifier of the affected entity and the type of change that occurred, but does not contain the entity's data. To act on an event, consumers must call the corresponding GET endpoint using their scoped API credentials.

Webhook Payload Envelope#

Every event is delivered in the following standard envelope:
{
  "id": "<event-uuid>",
  "companyId": "<company-guid>",
  "source": "<producing-service>",
  "type": "<entity>.<action>",
  "time": "<RFC 3339 UTC timestamp>",
  "datacontenttype": "application/json",
  "data": {
    "<entityId>": "<uuid>",
    "<entityNumber>": "<business-identifier>",
    "metadata": {
      "...": "optional free-form key/value context"
    }
  }
}
Each delivery also includes the header X-FieldEdge-Signature: sha256=<hex> computed from the payload body using your HMAC secret. Validate this header to confirm the request originated from FieldEdge.

Work Orders — source: "work-orders"#

typeDescription
workorder.createdA new work order was created
workorder.scheduledA work order was scheduled
workorder.unscheduledA work order was removed from the schedule
workorder.travelingTechnician is traveling to the work order site
workorder.completeWork order was completed
workorder.canceledWork order was canceled
workorder.backorderWork order placed on backorder
workorder.finalizedWork order was finalized
Example payload:
{
  "id": "5759473c-02ff-4ed5-a234-35af7a362c46",
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "source": "work-orders",
  "type": "workorder.created",
  "time": "2026-05-12T14:20:40.654524Z",
  "datacontenttype": "application/json",
  "data": {
    "workOrderId": "b2e0fc82-f56c-4064-a99e-dedaa6c113b4",
    "workOrderNumber": "2174"
  }
}

Invoices — source: "invoice"#

typeDescription
invoice.createdA new invoice was created
invoice.updatedAn existing invoice was updated
Example payload:
{
  "id": "3dd89180-dbe9-4438-92a4-965f770c5bf9",
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "source": "invoice",
  "type": "invoice.created",
  "time": "2026-05-12T14:10:32.963514Z",
  "datacontenttype": "application/json",
  "data": {
    "invoiceId": "244a8e11-69b8-4f23-9f84-44e741bd7b7b",
    "invoiceNumber": "i50188"
  }
}

Item Categories — source: "item-categories"#

typeDescription
item-category.createdA new item category was created
item-category.updatedAn existing item category was updated
Example payload:
{
  "id": "7c3a1e9f-4b82-4d61-bc2e-9f1a2b3c4d5e",
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "source": "item-categories",
  "type": "item-category.created",
  "time": "2026-05-20T10:30:00.000000Z",
  "datacontenttype": "application/json",
  "data": {
    "categoryId": "f4e3d2c1-b0a9-4876-8765-543210fedcba"
  }
}

Leads / CRM — source: "crm"#

typeDescription
lead.offeredA lead was offered to the partner
lead.acceptedPartner accepted the lead
lead.rejectedPartner rejected the lead
lead.customer_linkedA lead was linked to a customer record
job.createdA job was created from a lead
job.linkedA job was linked to a lead
job.scheduledA job was scheduled
job.canceledA job was canceled
job.travelingTechnician is traveling to the job site
job.startedJob work was started
job.pausedJob was paused
job.completedJob was completed
job.finalizedJob was finalized
quote.acceptedA quote was accepted
quote.rejectedA quote was rejected
quote.expiredA quote expired
Example payload:
{
  "id": "9f1c4e2a-7b88-4a1c-9c2e-2b3d4e5f6a7b",
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "source": "crm",
  "type": "lead.customer_linked",
  "time": "2026-05-12T14:25:11.123456Z",
  "datacontenttype": "application/json",
  "data": {
    "leadId": "d3e118a4-b714-4055-9707-4efcb17c6f74",
    "metadata": {
      "campaign": "Summer Sale",
      "referralSource": "Google Ads"
    }
  }
}

Request

Body Params application/jsonRequired

Examples

Responses

🟢201
application/json
Webhook registered successfully.
Bodyapplication/json

🟠400
🟠401
🔴500
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://dev.api.fieldedge.com/open-api/v1/webhook' \
--header 'Content-Type: application/json' \
--data '{
    "callbackUrl": "https://api.example.com/webhooks/receive",
    "headers": {
        "x-api-key": "12345-ABCDE-67890",
        "x-source": "FieldEdge"
    }
}'
Response Response Example
201 - response
{
    "data": {
        "webhookId": "9b8df6c2-fc64-4be6-a187-cde2b27cb515",
        "secret": "K7yI1jZq3+UqZtXhY=bH0rN+4bD5zQp7TtX6sSgV6uX9",
        "message": "Webhook registered successfully."
    }
}
Modified at 2026-05-21 10:40:18
Previous
Retrieve an invoice by ID
Next
Rotate the HMAC signing secret for the registered webhook.
Built with