openapi: 3.1.0
info:
  version: '1'
  x-publicVersion: true
  title: Tokenization webhooks
  description: Adyen sends webhooks to inform you about token life-cycle management
    events.
  termsOfService: https://www.adyen.com/legal/terms-and-conditions
  contact:
    name: Adyen Developer Experience team
    url: https://github.com/Adyen/adyen-openapi
tags:
- name: General
webhooks:
  recurring.token.alreadyExisting:
    post:
      tags:
      - General
      summary: Token already exists
      description: Adyen sends this webhook when a token for stored payment details
        already exists.
      operationId: post-recurring.token.alreadyExisting
      x-sortIndex: 0
      x-methodName: tokenAlreadyExists
      security:
      - BasicAuth: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RechargeDetailsAlreadyExistingNotification'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RechargeNotificationResponse'
          description: OK - the request has succeeded.
  recurring.token.created:
    post:
      tags:
      - General
      summary: Token created
      description: Adyen sends this webhook when a token for stored payment details
        is created.
      operationId: post-recurring.token.created
      x-sortIndex: 0
      x-methodName: tokenCreated
      security:
      - BasicAuth: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RechargeCreatedDetailsNotification'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RechargeNotificationResponse'
          description: OK - the request has succeeded.
  recurring.token.disabled:
    post:
      tags:
      - General
      summary: Token disabled
      description: Adyen sends this webhook when a token for stored payment details
        is disabled.
      operationId: post-recurring.token.disabled
      x-sortIndex: 0
      x-methodName: tokenDisabled
      security:
      - BasicAuth: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RechargeDisabledDetailsNotification'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RechargeNotificationResponse'
          description: OK - the request has succeeded.
  recurring.token.updated:
    post:
      tags:
      - General
      summary: Token updated
      description: Adyen sends this webhook when you update the token for stored payment
        details.
      operationId: post-recurring.token.updated
      x-sortIndex: 0
      x-methodName: tokenUpdated
      security:
      - BasicAuth: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RechargeUpdatedDetailsNotification'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RechargeNotificationResponse'
          description: OK - the request has succeeded.
components:
  schemas:
    RechargeCreatedDetailsNotification:
      additionalProperties: false
      properties:
        createdAt:
          format: date-time
          type: string
        data:
          $ref: '#/components/schemas/RecurringTokenStoreOperation'
        environment:
          type: string
        eventId:
          type: string
        type:
          type: string
        version:
          type: string
      type: object
    RechargeDetailsAlreadyExistingNotification:
      additionalProperties: false
      properties:
        createdAt:
          format: date-time
          type: string
        data:
          $ref: '#/components/schemas/RecurringTokenStoreOperation'
        environment:
          type: string
        eventId:
          type: string
        type:
          type: string
        version:
          type: string
      type: object
    RechargeDisabledDetailsNotification:
      additionalProperties: false
      properties:
        createdAt:
          format: date-time
          type: string
        data:
          $ref: '#/components/schemas/RecurringToken'
        environment:
          type: string
        eventId:
          type: string
        type:
          type: string
        version:
          type: string
      type: object
    RechargeNotificationResponse:
      additionalProperties: false
      properties:
        notificationResponse:
          description: Respond with an HTTP 200 OK and include notificationResponse
            field with **[accepted]** value in the body of the response to acknowledge
            that your server received a webhook from Adyen.
          type: string
      type: object
    RechargeUpdatedDetailsNotification:
      additionalProperties: false
      properties:
        createdAt:
          format: date-time
          type: string
        data:
          $ref: '#/components/schemas/RecurringTokenStoreOperation'
        environment:
          type: string
        eventId:
          type: string
        type:
          type: string
        version:
          type: string
      type: object
    RecurringToken:
      additionalProperties: false
      properties:
        merchantAccount:
          type: string
        shopperReference:
          type: string
        storedPaymentMethodId:
          type: string
        type:
          type: string
      type: object
    RecurringTokenStoreOperation:
      additionalProperties: false
      properties:
        merchantAccount:
          type: string
        operation:
          type: string
        shopperReference:
          type: string
        storedPaymentMethodId:
          type: string
        type:
          type: string
      type: object
  securitySchemes:
    BasicAuth:
      scheme: basic
      type: http
  examples: {}
