> ## Documentation Index
> Fetch the complete documentation index at: https://docs.synctera.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a webhook

> Create a webhook




## OpenAPI

````yaml openapi-v1.json post /webhooks
openapi: 3.0.3
info:
  description: >-
    This is the official reference documentation for Synctera APIs. If you need
    something specific or have a question, <a class='text-blue-600'
    href='https://synctera.com/contact-us' target='_blank'
    rel='noreferrer'>contact us</a>.</p>
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  title: Synctera API
  version: 1.181.0
servers:
  - description: Production
    url: https://api.synctera.com/v1
  - description: Sandbox (no real world financial impact)
    url: https://api-sandbox.synctera.com/v1
security:
  - bearerAuth: []
tags:
  - description: |
      Requests to create and manage Rewards
    name: Rewards (beta)
  - description: Requests to generate simulated webhooks
    name: Card Webhook Simulations
  - description: >-
      Testing endpoints to simulate in-store cash deposits. Available in sandbox
      environments only.
    name: In-Store Cash Deposit Simulations
  - description: Create and manage spending controls
    name: Spend Controls (beta)
  - description: Rates
    name: Rates
  - description: Requests to create and manage webhooks
    name: Webhooks
  - description: Tenant Config
    name: Tenant Config
  - description: FDX authentication and data transfer using Plaid Core Exchange
    name: Plaid Core Exchange (beta)
  - description: Create and manage disputes
    name: Disputes
  - description: Requests to simulate card payments
    name: Card Simulations
  - description: |
      Manage fee products and fee configs for automated fee collection
    name: Fee Products
  - description: Apple Pay APIs
    name: Apple Pay
  - description: Lending Config
    name: Lending Config
  - description: Payments related to lending accounts
    name: Payments
  - description: Manage negative balance processes
    name: Negative Balance
  - description: Configuration for mapping LoanPro events to Payola transaction parameters
    name: LoanPro Transaction Event Config
  - description: Requests to generate simulated transactions
    name: Cash Transaction Simulations (alpha)
  - description: Create and manage transactions
    name: Transactions (beta)
  - description: Autopay payment records for billing periods
    name: Autopays
  - description: Create and manage accounts
    name: Accounts
  - description: |
      Requests to create and manage batch payments
    name: Batch Payments (alpha)
  - description: Billing rates
    name: Billing Rates
  - description: Bank Delinquency Configuration
    name: Bank Delinquency Configuration
  - description: >-
      Rules that map a posted payment transaction (bank/partner + transaction
      attributes) to a regulatory payment code. NULL match columns act as
      wildcards.
    name: Payment Code Configuration
  - description: Create and manage Synctera Pay templates
    name: SyncteraPay
  - description: |
      Manage reward products and reward configs for automated cashback rewards
    name: Reward Products
  - description: Requests to create and manage card disputes
    name: Card Disputes
  - description: >-
      Per bank/partner account-type mapping to FFIEC collateral codes used for
      regulatory call report furnishment.
    name: Collateral Code Configuration
  - description: Bulk card issuance
    name: Bulk Issuance
  - description: Autopay configuration management for lending accounts
    name: Autopay Configs
  - description: Request to create and manage exclusions
    name: Statements
  - description: Create and manage barcodes for in-store cash deposits
    name: In-Store Cash Deposits
  - description: Customer Service Details for disputes and billing inquiries
    name: Customer Service Details
  - description: Create a credit application.
    name: Applications (beta)
  - description: Requests to generate simulated transactions
    name: Card Transaction Simulations
  - description: Billing period summaries
    name: Billing Period Summaries
  - description: Requests to issue and manage cards
    name: Cards
  - description: Push and pull from cards
    name: External Cards
  - description: |
      Requests to create and manage fees
    name: Fees (beta)
paths:
  /webhooks:
    post:
      tags:
        - Webhooks
      summary: Create a webhook
      description: |
        Create a webhook
      operationId: createWebhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/webhook'
        description: Webhook to create
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/webhook'
          description: Created webhook
        '401':
          $ref: '#/components/responses/unauthorized'
        '500':
          $ref: '#/components/responses/internal_server_error'
      callbacks:
        WebhookRequest:
          '{$request.body#/url}':
            post:
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/webhook_request_object'
                required: true
              responses:
                '200':
                  description: >-
                    Your server returns this code if it accepts the webhook
                    request object
              summary: Send event details to integrator using registered URL
              method: post
              type: path
            path: '{$request.body#/url}'
components:
  schemas:
    webhook:
      description: Webhook object
      properties:
        creation_time:
          description: Webhook creation timestamp in RFC3339 format
          format: date-time
          readOnly: true
          type: string
        description:
          description: A description of what the webhook is used for
          type: string
        enabled_events:
          description: >-
            A list of the events that will trigger the webhook. Subscribing to a
            wildcard event, e.g. ACCOUNT.*, will send all webhooks for all
            events that match that pattern. Note that this can include new event
            types added after the subscription was created.
          items:
            $ref: '#/components/schemas/event_type'
          type: array
        id:
          description: The unique ID of the webhook
          format: uuid
          readOnly: true
          type: string
        is_enabled:
          description: Set the webhook to be enabled or disabled
          type: boolean
        last_updated:
          description: >-
            Timestamp that this webhook was created or the last time any field
            was changed
          format: date-time
          readOnly: true
          type: string
        last_updated_time:
          description: Timestamp of the last Webhook modification in RFC3339 format
          format: date-time
          readOnly: true
          type: string
        metadata:
          description: Additional information stored to the webhook
          type: object
        tenant:
          $ref: '#/components/schemas/tenant_id'
        url:
          description: URL that the webhook will send request to
          format: uri
          maxLength: 1000
          type: string
      required:
        - enabled_events
        - is_enabled
        - url
      title: Webhook
      type: object
    webhook_request_object:
      description: Request body for webhook http request
      properties:
        changed_fields:
          description: >
            Json string of object associated with the event related to a
            resource change. This only contains those fields that have value
            changed on the event, and the field values are prior to the resource
            change event.
          type: string
        event_time:
          description: Timestamp of the current event raised
          format: date-time
          type: string
        id:
          description: The unique ID of the current event
          format: uuid
          readOnly: true
          type: string
        metadata:
          description: Metadata that stored in the webhook subscription
          maxLength: 1024
          type: string
        resource:
          description: >
            Json string of object associated with the event. For example, if
            your event is ACCOUNT.CREATED, You can refer to Acccount to parse
            the account event to obtain the ID, status etc.
          type: string
        resource_id:
          description: The ID of the resource this event occurred on, if available.
          format: uuid
          readOnly: true
          type: string
        type:
          $ref: '#/components/schemas/event_type_explicit'
        url:
          description: >-
            URL that you specified for the webhook and where this request will
            be sent
          format: uri
          maxLength: 1000
          type: string
        webhook_id:
          description: Id of the Webhook the current request belongs to
          format: uuid
          type: string
      required:
        - event_time
        - id
        - metadata
        - type
        - url
        - webhook_id
      title: Webhook request object
      type: object
    event_type:
      oneOf:
        - $ref: '#/components/schemas/event_type_wildcard'
        - $ref: '#/components/schemas/event_type_explicit'
    tenant_id:
      description: |
        The id of the tenant containing the resource.
      example: abcdef_ghijkl
      type: string
    error:
      description: Synctera error responses in API v1 implement a custom error schema.
      properties:
        code:
          description: >
            A machine-readable string that identifies the error for programmatic
            use.
          example: BAD_REQUEST_BODY
          type: string
        detail:
          description: |
            A human-readable string explaining this particular error.
          example: 'Missing required fields: first_name, dob'
          type: string
        status:
          description: HTTP status code for this response
          example: 400
          type: integer
      title: Synctera error response
      type: object
    event_type_explicit:
      description: All the webhook event types
      enum:
        - ADVERSE_ACTION.CREATED
        - APPLICATION.CREATED
        - APPLICATION.UPDATED
        - CARD.CREATED
        - CARD.DIGITALWALLETTOKEN.CREATED
        - CARD.DIGITALWALLETTOKEN.UPDATED
        - CARD.IMAGE.CREATED
        - CARD.IMAGE.UPDATED
        - CARD.UPDATED
        - CRR.CREATED
        - DISPUTE.CREATED
        - DISPUTE.UPDATED
        - DOCUMENT.CREATED
        - DOCUMENT.DELETED
        - DOCUMENT.RETRIEVED
        - DOCUMENT.UPDATED
        - DOCUMENT_VERIFICATION_SESSION.CREATED
        - DOCUMENT_VERIFICATION_SESSION.UPDATED
        - EDD.CREATED
        - EDD.DELETED
        - EXTERNAL_CARD.CREATED
        - EXTERNAL_CARD.DELETED
        - EXTERNAL_CARD.UPDATED
        - EXTERNAL_CARD_TRANSFER.CREATED
        - EXTERNAL_CARD_TRANSFER.UPDATED
        - INTERNAL_TRANSFER.SUCCEEDED
        - RESOURCE_MAPPING.CREATED
        - RESOURCE_MAPPING.DELETED
        - RESOURCE_MAPPING.UPDATED
        - SPEND_CONTROL.CREATED
        - SPEND_CONTROL.UPDATED
        - SPEND_CONTROL.VIOLATED
        - STATEMENT.CREATED
        - TRANSACTION.CREATED
        - TRANSACTION.UPDATED
      type: string
    event_type_wildcard:
      enum:
        - ADVERSE_ACTION.*
        - APPLICATION.*
        - CARD.*
        - CRR.*
        - DISPUTE.*
        - DOCUMENT_VERIFICATION_SESSION.*
        - EDD.*
        - EXTERNAL_CARD.*
        - EXTERNAL_CARD_TRANSFER.*
        - INTERNAL_TRANSFER.*
        - RESOURCE_MAPPING.*
        - SPEND_CONTROL.*
        - STATEMENT.*
        - TRANSACTION.*
      type: string
  responses:
    unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
      description: Unauthorized
    internal_server_error:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
      description: Internal server error
  securitySchemes:
    bearerAuth:
      bearerFormat: api_key
      scheme: bearer
      type: http

````