openapi: 3.0.3 info: title: Neon CRM API v2 Accounts Webhooks API description: Neon CRM API v2 is a RESTful, JSON-based rebuild of Neon One's legacy API v1, first launched in 2019. It exposes constituent accounts, households, donations, pledges, recurring donations, campaigns, memberships, events, custom fields and custom objects, orders and the online store, volunteers, and webhook subscriptions. All requests use HTTP Basic Authentication with the organization's Org ID as the username and an API key as the password. Neon CRM API v1 and its legacy webhook structure are scheduled to be retired on July 11, 2026; this document covers API v2 only. This is a representative subset of the full v2 surface, grounded in Neon's public developer documentation and version release notes (v2.0 - v2.11), not an exhaustive mirror of every documented endpoint. version: '2.11' contact: name: Neon One Developer Center url: https://developer.neoncrm.com/ license: name: Proprietary url: https://neonone.com/ servers: - url: https://api.neoncrm.com/v2 description: Production and Sandbox - url: https://trial.z2systems.com/v2 description: Trial instances security: - basicAuth: [] tags: - name: Webhooks description: Outbound webhook subscriptions. paths: /webhooks: get: operationId: listWebhooks tags: - Webhooks summary: List webhook subscriptions responses: '200': description: A list of webhook subscriptions. content: application/json: schema: type: array items: $ref: '#/components/schemas/Webhook' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createWebhook tags: - Webhooks summary: Create a webhook subscription requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WebhookInput' responses: '200': description: The created webhook subscription. content: application/json: schema: $ref: '#/components/schemas/Webhook' '401': $ref: '#/components/responses/Unauthorized' /webhooks/{id}: parameters: - name: id in: path required: true description: The ID of the webhook subscription. schema: type: string get: operationId: getWebhook tags: - Webhooks summary: Retrieve a webhook subscription responses: '200': description: The requested webhook subscription. content: application/json: schema: $ref: '#/components/schemas/Webhook' '404': $ref: '#/components/responses/NotFound' put: operationId: updateWebhook tags: - Webhooks summary: Update a webhook subscription requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WebhookInput' responses: '200': description: The updated webhook subscription. content: application/json: schema: $ref: '#/components/schemas/Webhook' '404': $ref: '#/components/responses/NotFound' patch: operationId: patchWebhook tags: - Webhooks summary: Partially update a webhook subscription requestBody: required: true content: application/json: schema: type: object additionalProperties: true responses: '200': description: The updated webhook subscription. content: application/json: schema: $ref: '#/components/schemas/Webhook' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteWebhook tags: - Webhooks summary: Delete a webhook subscription responses: '200': description: Deletion confirmation. '404': $ref: '#/components/responses/NotFound' components: schemas: WebhookInput: type: object required: - name - url - eventTrigger properties: name: type: string url: type: string format: uri eventTrigger: type: string description: The event that triggers the webhook POST, e.g. createAccount, updateDonation, deleteMembership. contentType: type: string enum: - application/x-www-form-urlencoded - application/json authentication: type: object properties: username: type: string password: type: string additionalProperties: true customParameters: type: object additionalProperties: type: string additionalProperties: true Webhook: allOf: - $ref: '#/components/schemas/WebhookInput' - type: object properties: id: type: string Error: type: object properties: errors: type: array items: type: object properties: code: type: string message: type: string responses: NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Missing or invalid Org ID / API key in the Basic Authorization header. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: basicAuth: type: http scheme: basic description: HTTP Basic Authentication. Username is the Neon CRM organization's Org ID; password is an API key generated for a system user under Settings > User Management.