FieldEdge Open API
production
  • production
  • dev
DocsAPIs
DocsAPIs
production
  • production
  • dev
production
  • 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
    • Search customers with optional filters
      GET
    • Retrieve customers based on address details.
      GET
    • Retrieve customer details by ID
      GET
    • Updates an existing customer
      PUT
    • Retrieve customer by phone number
      GET
  • Employee
    • Retrieve a paginated list of employees
      GET
    • Retrieve an employee by ID
      GET
  • ItemCategory
    • Retrieve list of item categories
      GET
    • Create a new item category
      POST
    • Retrieve item category by id.
      GET
    • Partially update an item category
      PATCH
  • Item
    • Creates a new inventory item
      POST
    • Retrieve a paginated list of inventory items with optional filters
      GET
    • Updates an existing inventory item
      PATCH
    • Retrieve an inventory item by ID
      GET
    • Bulk update inventory items
      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
  • WorkOrder
    • Retrieve a work order by ID
    • Retrieve a paginated list of work orders
  • Invoice
    • Retrieve an invoice by ID
    • Retrieve a paginated list of invoices
  • Company
    • Retrieve company name by ID
  • Webhook
    • Register a webhook endpoint to receive event notifications.
      POST
    • Delete the registered webhook for the authenticated account.
      DELETE
    • Rotate the HMAC signing secret for the registered webhook.
      POST
  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"
    }
  }
}
Required scope: webhooks:write

Request

Body Params application/jsonRequired

Examples

Responses

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

🟠400
🟠401
🟠403
🔴500
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://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-06-03 05:20:15
Previous
Retrieve company name by ID
Next
Delete the registered webhook for the authenticated account.
Built with