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
    • Updates an existing customer
      PUT
    • Retrieve customer by phone number
      GET
    • Search customers with optional filters
      GET
    • Retrieve customers based on address details.
      GET
    • Retrieve customer details by ID
      GET
  • CustomerAttachments
    • Upload a file attachment to a customer record
      POST
    • Retrieve attachments for a customer
      GET
  • CustomerNotes
    • Create a note on a customer record
      POST
    • Retrieve all notes for a customer
      GET
    • Update an existing customer note
      PATCH
  • CustomerTags
    • Associate a tag with a customer
      POST
    • Remove a tag from a customer
      DELETE
    • Create a reusable customer tag
      POST
    • Retrieve tags
      GET
  • Item
    • Creates a new inventory item
      POST
    • Retrieve a paginated list of inventory items with optional filters
      GET
    • Bulk update inventory items
      PATCH
    • Updates an existing inventory item
      PATCH
    • Retrieve an inventory item by ID
      GET
    • Retrieve availability of an item across one or more warehouses
      GET
  • ItemCategory
    • Retrieve list of item categories
    • Create a new item category
    • Retrieve item category by id.
    • Partially update an item category
  • SalesTaxCode
    • Retrieve list of sales tax codes
  • WorkOrder
    • Retrieve a paginated list of work orders
    • Retrieve a work order by ID
    • Retrieve work orders at a given address, most recent first
  • Agreement
    • Retrieve list of agreements
    • Retrieve agreement by id.
  • Invoice
    • Retrieve a paginated list of invoices
    • Retrieve an invoice by ID
  • Quote
    • Retrieve a paginated list of quotes
    • Retrieve a quote by ID
  • Task
    • Retrieve a task bundle by ID
    • Retrieve a list of tasks
  • Warehouse
    • Create a new warehouse
    • Retrieve a paginated list of warehouses
    • Update an existing warehouse
    • Retrieve a warehouse by ID
  • Employee
    • Retrieve a paginated list of employees
    • Retrieve an employee by ID
  • 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
work-order.createdA new work order was created
work-order.scheduledA work order was scheduled
work-order.unscheduledA work order was removed from the schedule
work-order.travelingTechnician is traveling to the work order site
work-order.completeWork order was completed
work-order.canceledWork order was canceled
work-order.backorderWork order placed on backorder
work-order.finalizedWork order was finalized
Example payload:
{
  "id": "5759473c-02ff-4ed5-a234-35af7a362c46",
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "source": "work-orders",
  "type": "work-order.created",
  "time": "2026-05-12T14:20:40.654524Z",
  "datacontenttype": "application/json",
  "data": {
    "workOrderId": "b2e0fc82-f56c-4064-a99e-dedaa6c113b4",
    "workOrderNumber": "2174"
  }
}

Invoices — source: "invoices"#

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": "invoices",
  "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 — source: "leads"#

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": "leads",
  "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

Authorization
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 - Example webhook registration response
{
    "data": {
        "webhookId": "9b8df6c2-fc64-4be6-a187-cde2b27cb515",
        "secret": "K7yI1jZq3+UqZtXhY=bH0rN+4bD5zQp7TtX6sSgV6uX9",
        "message": "Webhook registered successfully."
    }
}
Modified at 2026-08-27 11:27:00
Previous
Retrieve company name by ID
Next
Delete the registered webhook for the authenticated account.
Built with