Arcadia Webhooks API
The Webhooks API from Arcadia — 8 operation(s) for webhooks.
The Webhooks API from Arcadia — 8 operation(s) for webhooks.
openapi: 3.0.3
info:
title: Arcadia API Reference Auth Webhooks API
version: 0.3.0
contact:
email: platformsupport@arcadia.com
servers:
- url: https://api.arcadia.com
security:
- bearerAuth: []
tags:
- name: Webhooks
paths:
/webhook/endpoints:
get:
tags:
- Webhooks
summary: List webhook endpoints
description: Returns a paginated list of webhook endpoints.
operationId: getWebhooks
parameters:
- $ref: '#/components/parameters/paginationLimitParam'
- $ref: '#/components/parameters/paginationUpdatedAfterParam'
- $ref: '#/components/parameters/paginationUpdatedBeforeParam'
- $ref: '#/components/parameters/paginationOrderParam'
- $ref: '#/components/parameters/arcVersionInHeaderParam'
responses:
'200':
description: Success
headers:
Arcadia-Version:
$ref: '#/components/headers/ArcVersion'
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedWebhookEndpoints'
post:
tags:
- Webhooks
summary: Create a webhook endpoint
description: After creating a webhook endpoint, we will POST to the webhook URL whenever certain events happen in our system.
operationId: createWebhook
parameters:
- $ref: '#/components/parameters/arcVersionInHeaderParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateWebhookBodyParams'
responses:
'200':
description: Success
headers:
Arcadia-Version:
$ref: '#/components/headers/ArcVersion'
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookEndpoint'
'422':
description: Unprocessable Entity
headers:
Arcadia-Version:
$ref: '#/components/headers/ArcVersion'
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookEndpointUnprocessableEntityError'
/webhook/endpoints/{webhook_endpoint_id}:
delete:
tags:
- Webhooks
summary: Delete a webhook endpoint
description: 'Delete a webhook endpoint and all associated webhook events and delivery attempt data. This will stop POST requests to the endpoint.
_**Note**: deletion will take place asynchronously and may not be complete when this request returns._
'
operationId: deleteWebhook
parameters:
- $ref: '#/components/parameters/webhookEndpointIdInPathParam'
- $ref: '#/components/parameters/arcVersionInHeaderParam'
responses:
'202':
description: Accepted
headers:
Arcadia-Version:
$ref: '#/components/headers/ArcVersion'
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookEndpoint'
get:
tags:
- Webhooks
summary: Get a webhook endpoint
description: Returns a single webhook endpoint specified by ID.
operationId: getWebhookEndpoint
parameters:
- $ref: '#/components/parameters/webhookEndpointIdInPathParam'
- $ref: '#/components/parameters/arcVersionInHeaderParam'
responses:
'200':
description: Success
headers:
Arcadia-Version:
$ref: '#/components/headers/ArcVersion'
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookEndpoint'
patch:
tags:
- Webhooks
summary: Update a webhook endpoint
description: Updates a single webhook endpoint specified by ID.
operationId: updateWebhookEndpoint
parameters:
- $ref: '#/components/parameters/webhookEndpointIdInPathParam'
- $ref: '#/components/parameters/arcVersionInHeaderParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateWebhookBodyParams'
responses:
'200':
description: Success
headers:
Arcadia-Version:
$ref: '#/components/headers/ArcVersion'
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookEndpoint'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookEndpointUnprocessableEntityError'
/webhook/endpoints/{webhook_endpoint_id}/test:
put:
tags:
- Webhooks
summary: Triggers a test webhook event
description: Request a `test` event be sent to this webhook endpoint. Useful for debugging webhook implementations.
operationId: requestWebookTestEvent
parameters:
- $ref: '#/components/parameters/arcVersionInHeaderParam'
- $ref: '#/components/parameters/webhookEndpointIdInPathParam'
responses:
'202':
description: Success
headers:
Arcadia-Version:
$ref: '#/components/headers/ArcVersion'
/webhook/endpoints/{webhook_endpoint_id}/events:
get:
tags:
- Webhooks
summary: List webhook events
description: 'Returns a paginated list of webhook events for a particular webhook endpoint.
_**Note**: webhook events are currently retained for 30 days._
'
operationId: getWebhookEvents
parameters:
- $ref: '#/components/parameters/webhookEndpointIdInPathParam'
- name: delivered
in: query
required: false
description: Optionally filter webhook events by whether they were delivered successfully or not.
schema:
type: boolean
- $ref: '#/components/parameters/arcVersionInHeaderParam'
responses:
'200':
description: Success
headers:
Arcadia-Version:
$ref: '#/components/headers/ArcVersion'
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedWebhookEvents'
/webhook/endpoints/{webhook_endpoint_id}/events/{webhook_event_id}:
get:
tags:
- Webhooks
summary: Get a single webhook event
description: 'Returns a full representation of a webhook event, including the `data` payload and delivery attempts.
_**Note**: webhook events are currently retained for 30 days._
'
operationId: getWebhookEvent
parameters:
- $ref: '#/components/parameters/webhookEndpointIdInPathParam'
- $ref: '#/components/parameters/webhookEventIdInPathParam'
- $ref: '#/components/parameters/arcVersionInHeaderParam'
responses:
'200':
description: Success
headers:
Arcadia-Version:
$ref: '#/components/headers/ArcVersion'
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookEvent'
/sandbox/webhook/trigger/new_utility_statement_available:
post:
tags:
- Webhooks
summary: Trigger a new_utility_statement_available webhook event
description: 'This endpoint will create a new utility statement for the associated utility account and emit a new_utility_statement_available webhook event.
Only available in sandbox.
'
operationId: triggerNewUtilityStatementAvailable
parameters:
- $ref: '#/components/parameters/arcVersionInHeaderParam'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- utility_account_id
properties:
utility_account_id:
type: integer
responses:
'202':
description: Success
headers:
Arcadia-Version:
$ref: '#/components/headers/ArcVersion'
'422':
description: Unprocessable Entity
headers:
Arcadia-Version:
$ref: '#/components/headers/ArcVersion'
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookTriggerError'
/sandbox/webhook/trigger/new_utility_intervals_available:
post:
tags:
- Webhooks
summary: Trigger a new_utility_intervals_available webhook event
description: 'This endpoint will emit a new_utility_intervals_available webhook event.
Note: While the new_utility_statement_available trigger creates a new utility statement record, the new_utility_intervals_available trigger does not generate new interval data records. Instead, the new_utility_intervals_available trigger simply creates an event for existing interval data. New interval data is added-on to test account interval data records daily.
Only available for sandboxed UtilityAccounts with test scenario interval data.
'
operationId: triggerNewUtilityIntervalsAvailable
parameters:
- $ref: '#/components/parameters/arcVersionInHeaderParam'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- utility_account_id
properties:
utility_account_id:
type: integer
responses:
'202':
description: Success
headers:
Arcadia-Version:
$ref: '#/components/headers/ArcVersion'
'422':
description: Unprocessable Entity
headers:
Arcadia-Version:
$ref: '#/components/headers/ArcVersion'
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookTriggerError'
/sandbox/webhook/trigger/utility_credential_revoked:
post:
tags:
- Webhooks
summary: Trigger a utility_credential_revoked webhook event
description: 'This endpoint will revoke a given utility credential (mimicing the severance of a customer''s connection with a utility, typically due to a change in password) and emit a utility_credential_revoked webhook event.
Only available in sandbox.
'
operationId: triggerUtilityCredentialRevoked
parameters:
- $ref: '#/components/parameters/arcVersionInHeaderParam'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- utility_credential_id
properties:
utility_credential_id:
type: integer
responses:
'202':
description: Success
headers:
Arcadia-Version:
$ref: '#/components/headers/ArcVersion'
'422':
description: Unprocessable Entity
headers:
Arcadia-Version:
$ref: '#/components/headers/ArcVersion'
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookTriggerError'
components:
headers:
ArcVersion:
description: The Arcadia-Version for the response
schema:
type: string
example: '2022-10-13'
required: true
parameters:
webhookEventIdInPathParam:
name: webhook_event_id
in: path
required: true
schema:
type: string
example: ff95f020-8ef9-409d-bff6-8489e880359c
arcVersionInHeaderParam:
name: Arcadia-Version
in: header
example: '2022-10-13'
description: The Arcadia-Version for the request
required: true
schema:
type: string
default: '2022-10-13'
paginationUpdatedBeforeParam:
in: query
name: updated_before
required: false
description: ISO8601 datetime, used to traverse paginated responses. Use of this parameter is mutually exclusive with `updated_after`.
schema:
type: string
format: date-time
paginationUpdatedAfterParam:
in: query
name: updated_after
required: false
description: ISO8601 datetime, used to traverse paginated responses. Use of this parameter is mutually exclusive with `updated_before`.
schema:
type: string
format: date-time
webhookEndpointIdInPathParam:
name: webhook_endpoint_id
in: path
required: true
schema:
type: string
example: 3847dd41-8c90-499a-ac6e-10a027dd231f
paginationLimitParam:
in: query
name: limit
required: false
schema:
type: integer
minimum: 1
default: 10
paginationOrderParam:
in: query
name: order
required: false
description: Used to specify the order in which records should be returned. Currently ordered by `updated_at` timestamp.
schema:
type: string
enum:
- asc
- desc
default: desc
schemas:
WebhookEventSummary:
required:
- id
- created_at
- updated_at
- webhook_endpoint_id
- type
- sandboxed
- delivered
properties:
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
id:
type: string
format: uuid
example: 3847dd41-8c90-499a-ac6e-10a027dd231f
webhook_endpoint_id:
type: string
format: uuid
example: 3847dd41-8c90-499a-ac6e-10a027dd231f
type:
type: string
enum:
- test
- utility_credential_verified
- utility_credential_rejected
- utility_credential_revoked
- utility_credential_verification_error
- utility_accounts_discovered
- utility_accounts_discovery_error
- new_utility_statement_available
- invoice_collection_succeeded
- invoice_collection_failed
sandboxed:
type: boolean
example: false
delivered:
type: boolean
example: true
additionalProperties: false
WebhookDeliveryAttempt:
required:
- id
- created_at
- updated_at
- response_body
- response_status_code
- webhook_event_id
- sandboxed
properties:
id:
type: string
format: uuid
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
response_body:
example: '{\"message\":\"ok\"}'
type: string
nullable: true
response_status_code:
example: 200
type: integer
nullable: true
webhook_event_id:
type: string
format: uuid
example: 3847dd41-8c90-499a-ac6e-10a027dd231f
sandboxed:
type: boolean
example: false
additionalProperties: false
WebhookEvent:
required:
- id
- created_at
- updated_at
- webhook_endpoint_id
- type
- sandboxed
- delivered
properties:
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
id:
type: string
format: uuid
example: 3847dd41-8c90-499a-ac6e-10a027dd231f
webhook_endpoint_id:
type: string
format: uuid
example: 3847dd41-8c90-499a-ac6e-10a027dd231f
type:
type: string
enum:
- test
- utility_credential_verified
- utility_credential_rejected
- utility_credential_revoked
- utility_credential_verification_error
- utility_accounts_discovered
- utility_accounts_discovery_error
- new_utility_statement_available
sandboxed:
type: boolean
example: false
delivered:
type: boolean
example: true
data:
type: object
description: Original `data` payload of the webhook event. See [webhook events](#tag/Webhook-Events) for schema details.
delivery_attempts:
type: array
items:
$ref: '#/components/schemas/WebhookDeliveryAttempt'
additionalProperties: false
UpdateWebhookBodyParams:
properties:
enabled:
type: boolean
description: 'Determines whether this webhook endpoint will receive webhook events. Webhook endpoints that are `enabled: true` will receive webhook events. Webhook endpoints that are `enabled: false` will not receive webhook events'
example: 'true'
arc_version:
type: string
description: The version of the Arcadia API this endpoint is designed to understand. The JSON body corresponding to a webhook event type may change across versions. Arcadia will continue to send events to this endpoint using the event schemas as they existed in the selected version, insulating you from breaking changes.
example: '2022-10-13'
additionalProperties: false
CreateWebhookBodyParams:
required:
- url
properties:
url:
type: string
description: The URL that webhook events should be POSTed to.
example: https://example.com/webhook-endpoint
arc_version:
type: string
description: The version of the Arcadia API this endpoint is designed to understand. The JSON body corresponding to a webhook event type may change across versions. Arcadia will continue to send events to this endpoint using the event schemas as they existed in the selected version, insulating you from breaking changes.
example: '2022-10-13'
additionalProperties: false
WebhookTriggerError:
required:
- error
properties:
error:
type: object
required:
- description
- type
- details
properties:
description:
type: string
enum:
- This endpoint is only supported in the sandboxed API mode
- This endpoint is only supported in the sandboxed API mode using a UtilityAccount with test scenario interval data
type:
type: string
enum:
- BAD_REQUEST
details:
type: object
nullable: true
additionalProperties: false
PaginatedWebhookEvents:
required:
- data
- total_count
properties:
data:
type: array
items:
$ref: '#/components/schemas/WebhookEventSummary'
total_count:
type: integer
example: 1
additionalProperties: false
WebhookEndpointUnprocessableEntityError:
required:
- error
properties:
error:
type: object
required:
- description
- type
- details
properties:
description:
type: string
enum:
- Provided url is not valid, see details for validation errors
- Provided arc_version is not valid, see details for validation errors
type:
type: string
enum:
- BAD_REQUEST
details:
type: object
oneOf:
- required:
- url
- required:
- arc_version
properties:
url:
type: array
items:
type: string
arc_version:
type: array
items:
type: string
additionalProperties: false
WebhookEndpoint:
required:
- created_at
- updated_at
- id
- signing_key
- url
- sandboxed
- enabled
- arc_version
properties:
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
id:
type: string
format: uuid
example: 3847dd41-8c90-499a-ac6e-10a027dd231f
signing_key:
type: string
example: MIZ1ImBK1FiVisS1
url:
type: string
example: https://example.com/webhook-endpoint
sandboxed:
type: boolean
example: false
enabled:
type: boolean
example: true
arc_version:
type: string
example: '2022-10-13'
additionalProperties: false
PaginatedWebhookEndpoints:
required:
- data
- total_count
properties:
data:
type: array
items:
$ref: '#/components/schemas/WebhookEndpoint'
total_count:
type: integer
example: 1
additionalProperties: false
securitySchemes:
bearerAuth:
type: http
scheme: bearer
x-readme:
proxy-enabled: false
headers:
- key: from-readme
value: true
x-tagGroups:
- name: General
tags:
- Auth
- Webhooks
- Webhook Events
- name: Connections
tags:
- Utility Credentials
- Utility Accounts
- Utility Meters (Beta)
- Users
- name: Products
tags:
- Plug
- Spark