Natural AI Events API

Webhook event log

OpenAPI Specification

natural-ai-events-api-openapi.yml Raw ↑
openapi: 3.1.1
info:
  title: Natural Agent Keys Events API
  version: 0.2.0
  description: 'Natural''s payments API for autonomous agents.


    **Base URL:** `https://api.natural.com`


    AI agents, including coding agents, should prefer the hosted MCP server at `https://mcp.natural.com` when an MCP-aware host runs the agent, the Natural CLI for terminal/CI workflows, and the official SDKs for application runtimes they own. Use direct HTTP only for explicit low-level integrations, unsupported SDK gaps, or infrastructure work where REST is required.


    For support: support@natural.com'
servers:
- url: https://api.natural.com
  description: Production
tags:
- name: Events
  description: Webhook event log
paths:
  /events:
    get:
      operationId: events.list
      summary: List events
      description: List events
      tags:
      - Events
      parameters:
      - name: partyId
        in: query
        schema:
          type: string
          pattern: ^pty_[0-9a-f]{32}$
          description: Defaults to your party. To act for another party, pass the ID of a party that has authorized you to act on its behalf.
        allowEmptyValue: true
        allowReserved: true
      - name: eventType
        in: query
        schema:
          enum:
          - party.updated
          - compliance_case.updated
          - wallet.created
          - external_account.connected
          - agent_delegation_invitation.created
          - agent_delegation_invitation.accepted
          - agent_delegation_invitation.declined
          - agent_delegation_invitation.canceled
          - agent_delegation.revoked
          - delegation.activated
          - delegation.revoked
          - deposit.created
          - deposit.completed
          - deposit.failed
          - deposit.returned
          - deposit.canceled
          - deposit.approval_denied
          - withdrawal.created
          - withdrawal.completed
          - withdrawal.failed
          - withdrawal.returned
          - withdrawal.canceled
          - withdrawal.approval_denied
          - payment.created
          - payment.completed
          - payment.failed
          - payment.returned
          - payment.canceled
          - payment.approval_denied
          - approval.required
          - approval.approved
          - approval.denied
          - approval.canceled
          - payment_request.created
          - payment_request.completed
          - payment_request.canceled
          - payment_request.declined
          - payment_request.incoming
          type: string
          description: Filter by event type. Required when partyId names another party.
        allowEmptyValue: true
        allowReserved: true
      - name: createdAfter
        in: query
        schema:
          type: string
          maxLength: 64
          format: date-time
          description: Return events created after this timestamp.
        allowEmptyValue: true
        allowReserved: true
      - name: createdBefore
        in: query
        schema:
          type: string
          maxLength: 64
          format: date-time
          description: Return events created before this timestamp.
        allowEmptyValue: true
        allowReserved: true
      - name: cursor
        in: query
        schema:
          type: string
          maxLength: 1024
          description: Cursor from the previous page.
        allowEmptyValue: true
        allowReserved: true
      - name: limit
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 50
          description: Maximum results per page.
        allowEmptyValue: true
        allowReserved: true
      - name: X-Agent-ID
        in: header
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 36
            pattern: ^agt_[0-9a-f]{32}$
          - type: 'null'
        description: Agent (agt_*) to attribute this request to when authenticating with a party API key; omit for agent keys and agent-scoped OAuth grants, which already carry agent identity.
      - name: X-Instance-ID
        in: header
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 1024
          - type: 'null'
        description: Caller-chosen identifier for the agent run, session, or conversation, required when an agent moves money.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                          - event
                        id:
                          type: string
                          description: Event ID (evt_*).
                        attributes:
                          type: object
                          properties:
                            eventType:
                              enum:
                              - party.updated
                              - compliance_case.updated
                              - wallet.created
                              - external_account.connected
                              - agent_delegation_invitation.created
                              - agent_delegation_invitation.accepted
                              - agent_delegation_invitation.declined
                              - agent_delegation_invitation.canceled
                              - agent_delegation.revoked
                              - delegation.activated
                              - delegation.revoked
                              - deposit.created
                              - deposit.completed
                              - deposit.failed
                              - deposit.returned
                              - deposit.canceled
                              - deposit.approval_denied
                              - withdrawal.created
                              - withdrawal.completed
                              - withdrawal.failed
                              - withdrawal.returned
                              - withdrawal.canceled
                              - withdrawal.approval_denied
                              - payment.created
                              - payment.completed
                              - payment.failed
                              - payment.returned
                              - payment.canceled
                              - payment.approval_denied
                              - approval.required
                              - approval.approved
                              - approval.denied
                              - approval.canceled
                              - payment_request.created
                              - payment_request.completed
                              - payment_request.canceled
                              - payment_request.declined
                              - payment_request.incoming
                              type: string
                              description: Type of event.
                            resourceId:
                              type: string
                              description: ID of the resource that triggered the event.
                            resourceType:
                              type: string
                              description: Type of the resource (e.g. wallet, payment).
                            payload:
                              type: object
                              properties:
                                object:
                                  description: Point-in-time resource snapshot.
                              additionalProperties: {}
                              description: Event payload containing the resource snapshot. Additional keys may be added in the future.
                            createdAt:
                              type: string
                              format: date-time
                              description: When this event was created.
                          required:
                          - eventType
                          - resourceId
                          - resourceType
                          - payload
                          - createdAt
                          additionalProperties: false
                          title: EventAttributes
                        relationships:
                          type: object
                          properties:
                            party:
                              type: object
                              properties:
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                      - party
                                    id:
                                      type: string
                                  required:
                                  - type
                                  - id
                                  additionalProperties: false
                                  title: ResourceIdentifier
                                  description: Related resource identifier.
                              required:
                              - data
                              additionalProperties: false
                              title: ToOneRelationship
                              description: Party that owns the event.
                          required:
                          - party
                          additionalProperties: false
                          title: EventRelationships
                      required:
                      - type
                      - id
                      - attributes
                      - relationships
                      additionalProperties: false
                      title: EventResource
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          hasMore:
                            type: boolean
                            description: Whether more results are available.
                          nextCursor:
                            anyOf:
                            - type: string
                            - type: 'null'
                            description: Cursor for the next page, or null when there are no more results.
                        required:
                        - hasMore
                        - nextCursor
                        additionalProperties: false
                        title: PaginationMeta
                    required:
                    - pagination
                    additionalProperties: false
                required:
                - data
                - meta
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    data:
                    - type: event
                      id: evt_0192abc1def2789034567890abcdef12
                      attributes:
                        eventType: wallet.created
                        resourceId: wal_7c9e6679e29b41d4a716446655440001
                        resourceType: wallet
                        payload:
                          object:
                            partyId: pty_7c9e6679e29b41d4a716446655440001
                            walletType: standard
                            status: active
                            displayName: My Wallet
                            currency: usd
                            freezeDetails: null
                            createdAt: '2026-03-16T12:00:00Z'
                            updatedAt: '2026-03-16T12:00:00Z'
                            createdBy: usr_550e8400e29b41d4a716446655440000
                            version: 1
                        createdAt: '2026-03-16T12:00:00Z'
                      relationships:
                        party:
                          data:
                            type: party
                            id: pty_7c9e6679e29b41d4a716446655440001
                    meta:
                      pagination:
                        hasMore: false
                        nextCursor: null
          headers:
            X-RateLimit-Limit:
              description: Maximum requests allowed per window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests remaining in current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix timestamp when rate limit resets.
              schema:
                type: integer
        '400':
          description: Validation Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code.
                        detail:
                          type: string
                          description: Safe user-facing error detail.
                        status:
                          type: string
                          description: HTTP status code as a string.
                        source:
                          type: object
                          description: Location of the invalid request value.
                          properties:
                            pointer:
                              type: string
                              description: JSON Pointer to the invalid request value.
                            parameter:
                              type: string
                              description: Name of the invalid query parameter.
                            header:
                              type: string
                              description: Name of the invalid request header.
                          additionalProperties: false
                        meta:
                          type: object
                          description: Additional error context, including support and provider details when available.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting.
                            connectionStatus:
                              type: string
                              enum:
                              - login_required
                              - disconnected
                              description: External account connection state when the error is repairable by relinking.
                            provider:
                              type: object
                              description: Provider error details, when available.
                              properties:
                                name:
                                  type: string
                                  enum:
                                  - plaid
                                  description: Provider that returned the underlying error.
                                errorCode:
                                  type: string
                                  description: Provider error code, when available.
                                errorType:
                                  type: string
                                  description: Provider error type, when available.
                                requestId:
                                  type: string
                                  description: Provider request ID for troubleshooting.
                              required:
                              - name
                              additionalProperties: false
                          required:
                          - supportId
                          additionalProperties: false
                      required:
                      - code
                      - detail
                      - status
                      - meta
                      additionalProperties: false
                required:
                - errors
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    errors:
                    - code: invalid_value
                      detail: The information you entered isn't valid. Please check it and try again.
                      status: '400'
                      meta:
                        supportId: req_a1b2c3d4e5f6
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code.
                        detail:
                          type: string
                          description: Safe user-facing error detail.
                        status:
                          type: string
                          description: HTTP status code as a string.
                        source:
                          type: object
                          description: Location of the invalid request value.
                          properties:
                            pointer:
                              type: string
                              description: JSON Pointer to the invalid request value.
                            parameter:
                              type: string
                              description: Name of the invalid query parameter.
                            header:
                              type: string
                              description: Name of the invalid request header.
                          additionalProperties: false
                        meta:
                          type: object
                          description: Additional error context, including support and provider details when available.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting.
                            connectionStatus:
                              type: string
                              enum:
                              - login_required
                              - disconnected
                              description: External account connection state when the error is repairable by relinking.
                            provider:
                              type: object
                              description: Provider error details, when available.
                              properties:
                                name:
                                  type: string
                                  enum:
                                  - plaid
                                  description: Provider that returned the underlying error.
                                errorCode:
                                  type: string
                                  description: Provider error code, when available.
                                errorType:
                                  type: string
                                  description: Provider error type, when available.
                                requestId:
                                  type: string
                                  description: Provider request ID for troubleshooting.
                              required:
                              - name
                              additionalProperties: false
                          required:
                          - supportId
                          additionalProperties: false
                      required:
                      - code
                      - detail
                      - status
                      - meta
                      additionalProperties: false
                required:
                - errors
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    errors:
                    - code: unauthenticated
                      detail: Authentication is required.
                      status: '401'
                      meta:
                        supportId: req_a1b2c3d4e5f6
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code.
                        detail:
                          type: string
                          description: Safe user-facing error detail.
                        status:
                          type: string
                          description: HTTP status code as a string.
                        source:
                          type: object
                          description: Location of the invalid request value.
                          properties:
                            pointer:
                              type: string
                              description: JSON Pointer to the invalid request value.
                            parameter:
                              type: string
                              description: Name of the invalid query parameter.
                            header:
                              type: string
                              description: Name of the invalid request header.
                          additionalProperties: false
                        meta:
                          type: object
                          description: Additional error context, including support and provider details when available.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting.
                            connectionStatus:
                              type: string
                              enum:
                              - login_required
                              - disconnected
                              description: External account connection state when the error is repairable by relinking.
                            provider:
                              type: object
                              description: Provider error details, when available.
                              properties:
                                name:
                                  type: string
                                  enum:
                                  - plaid
                                  description: Provider that returned the underlying error.
                                errorCode:
                                  type: string
                                  description: Provider error code, when available.
                                errorType:
                                  type: string
                                  description: Provider error type, when available.
                                requestId:
                                  type: string
                                  description: Provider request ID for troubleshooting.
                              required:
                              - name
                              additionalProperties: false
                          required:
                          - supportId
                          additionalProperties: false
                      required:
                      - code
                      - detail
                      - status
                      - meta
                      additionalProperties: false
                required:
                - errors
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    errors:
                    - code: forbidden
                      detail: You do not have permission to perform this action.
                      status: '403'
                      meta:
                        supportId: req_a1b2c3d4e5f6
        '404':
          description: Not Found. Returned when the resource does not exist, or when it exists but is not accessible to your account. The two cases are intentionally indistinguishable, so that resource IDs cannot be enumerated by probing.
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code.
                        detail:
                          type: string
                          description: Safe user-facing error detail.
                        status:
                          type: string
                          description: HTTP status code as a string.
                        source:
                          type: object
                          description: Location of the invalid request value.
                          properties:
                            pointer:
                              type: string
                              description: JSON Pointer to the invalid request value.
                            parameter:
                              type: string
                              description: Name of the invalid query parameter.
                            header:
                              type: string
                              description: Name of the invalid request header.
                          additionalProperties: false
                        meta:
                          type: object
                          description: Additional error context, including support and provider details when available.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting.
                            connectionStatus:
                              type: string
                              enum:
                              - login_required
                              - disconnected
                              description: External account connection state when the error is repairable by relinking.
                            provider:
                              type: object
                              description: Provider error details, when available.
                              properties:
                                name:
                                  type: string
                                  enum:
                                  - plaid
                                  description: Provider that returned the underlying error.
                                errorCode:
                                  type: string
                                  description: Provider error code, when available.
                                errorType:
                                  type: string
                                  description: Provider error type, when available.
                                requestId:
                                  type: string
                                  description: Provider request ID for troubleshooting.
                              required:
                              - name
                              additionalProperties: false
                          required:
                          - supportId
                          additionalProperties: false
                      required:
                      - code
                      - detail
                      - status
                      - meta
                      additionalProperties: false
                required:
                - errors
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    errors:
                    - code: not_found
                      detail: The requested resource was not found.
                      status: '404'
                      meta:
                        supportId: req_a1b2c3d4e5f6
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code.
                        detail:
                          type: string
                          description: Safe user-facing error detail.
                        status:
                          type: string
                          description: HTTP status code as a string.
                        source:
                          type: object
                          description: Location of the invalid request value.
                          properties:
                            pointer:
                              type: string
                              description: JSON Pointer to the invalid request value.
                            parameter:
                              type: string
                              description: Name of the invalid query parameter.
                            header:
                              type: string
                              description: Name of the invalid request header.
                          additionalProperties: false
                        meta:
                          type: object
                          description: Additional error context, including support and provider details when available.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting.
                            connectionStatus:
                              type: string
                              enum:
                              - login_required
                              - disconnected
                              description: External account connection state when the error is repairable by relinking.
                            provider:
                              type: object
                              description: Provider error details, when available.
                              properties:
                                name:
                                  type: string
                   

# --- truncated at 32 KB (121 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/natural-ai/refs/heads/main/openapi/natural-ai-events-api-openapi.yml