Worldline Message - Subscription API

Message Subscription Api Controller

OpenAPI Specification

wordline-message-subscription-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: 'The current set of APIs will be available in Q2 2026 on Worldline Global Issuing Platforms.

    Additional APIs are under construction and planned to be available in 2026.'
  version: 2.41.1
  title: Worldline Card Issuing Account - AccountState Message - Subscription API
  contact: {}
host: sbx-wlip.api1-eu2.psapigateway.preprod.giservices.io/card-issuing
basePath: /api/v2
schemes:
- https
tags:
- name: Message - Subscription
  description: Message Subscription Api Controller
paths:
  /issuers/{issuerId}/subscriptions:
    post:
      tags:
      - Message - Subscription
      summary: Create a new WL Message subscription
      operationId: createSubscription
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: WL-Correlation-ID
        in: header
        description: WL-Correlation-ID
        required: false
        type: string
      - name: issuerId
        in: path
        description: Id of the issuing bank
        required: true
        type: string
      - in: body
        name: subscription
        description: subscription
        required: true
        schema:
          $ref: '#/definitions/Subscription'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponseEntityCreateSubscription'
        '400':
          description: Bad request
          schema:
            $ref: '#/definitions/BadRequestErrorApiResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/UnauthorizedResponseMetadata'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ForbiddenErrorApiResponse'
        '404':
          description: Not found
          schema:
            $ref: '#/definitions/NotFoundErrorApiResponse'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/InternalServerErrorErrorApiResponse'
        '502':
          description: Bad gateway
          schema:
            $ref: '#/definitions/BadGatewayErrorApiResponse'
  /issuers/{issuerId}/subscriptions/search:
    get:
      tags:
      - Message - Subscription
      summary: Search for subscriptions (with non-pci search terms)
      operationId: searchSubscriptions
      produces:
      - application/json
      parameters:
      - name: WL-Correlation-ID
        in: header
        description: WL-Correlation-ID
        required: false
        type: string
      - name: cardContractReference
        in: query
        description: Card Contract Reference
        required: false
        type: string
        allowEmptyValue: false
      - name: issuerId
        in: path
        description: Id of the issuing bank
        required: true
        type: string
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponseEntitySearchSubscription'
        '400':
          description: Bad request
          schema:
            $ref: '#/definitions/BadRequestErrorApiResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/UnauthorizedResponseMetadata'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ForbiddenErrorApiResponse'
        '404':
          description: Not found
          schema:
            $ref: '#/definitions/NotFoundErrorApiResponse'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/InternalServerErrorErrorApiResponse'
        '502':
          description: Bad gateway
          schema:
            $ref: '#/definitions/BadGatewayErrorApiResponse'
  /issuers/{issuerId}/subscriptions/{subscriptionReference}:
    get:
      tags:
      - Message - Subscription
      summary: Retrieve subscription by reference
      operationId: getSubscriptionByReference
      produces:
      - application/json
      parameters:
      - name: WL-Correlation-ID
        in: header
        description: WL-Correlation-ID
        required: false
        type: string
      - name: issuerId
        in: path
        description: Id of the issuing bank
        required: true
        type: string
      - name: subscriptionReference
        in: path
        description: Reference of the subscription
        required: true
        type: string
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponseEntitySubscription'
        '400':
          description: Bad request
          schema:
            $ref: '#/definitions/BadRequestErrorApiResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/UnauthorizedResponseMetadata'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ForbiddenErrorApiResponse'
        '404':
          description: Not found
          schema:
            $ref: '#/definitions/NotFoundErrorApiResponse'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/InternalServerErrorErrorApiResponse'
        '502':
          description: Bad gateway
          schema:
            $ref: '#/definitions/BadGatewayErrorApiResponse'
    put:
      tags:
      - Message - Subscription
      summary: Modify subscription by reference
      operationId: modifySubscriptionByReference
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: WL-Correlation-ID
        in: header
        description: WL-Correlation-ID
        required: false
        type: string
      - name: issuerId
        in: path
        description: Id of the issuing bank
        required: true
        type: string
      - in: body
        name: subscription
        description: subscription
        required: true
        schema:
          $ref: '#/definitions/Subscription'
      - name: subscriptionReference
        in: path
        description: Reference of the subscription
        required: true
        type: string
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponseEntityModifySubscription'
        '400':
          description: Bad request
          schema:
            $ref: '#/definitions/BadRequestErrorApiResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/UnauthorizedResponseMetadata'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ForbiddenErrorApiResponse'
        '404':
          description: Not found
          schema:
            $ref: '#/definitions/NotFoundErrorApiResponse'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/InternalServerErrorErrorApiResponse'
        '502':
          description: Bad gateway
          schema:
            $ref: '#/definitions/BadGatewayErrorApiResponse'
    delete:
      tags:
      - Message - Subscription
      summary: Delete subscription by reference
      operationId: deleteSubscriptionByReference
      produces:
      - application/json
      parameters:
      - name: WL-Correlation-ID
        in: header
        description: WL-Correlation-ID
        required: false
        type: string
      - name: issuerId
        in: path
        description: Id of the issuing bank
        required: true
        type: string
      - name: subscriptionReference
        in: path
        description: Reference of the subscription
        required: true
        type: string
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponseEntityDeleteSubscription'
        '400':
          description: Bad request
          schema:
            $ref: '#/definitions/BadRequestErrorApiResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/UnauthorizedResponseMetadata'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ForbiddenErrorApiResponse'
        '404':
          description: Not found
          schema:
            $ref: '#/definitions/NotFoundErrorApiResponse'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/InternalServerErrorErrorApiResponse'
        '502':
          description: Bad gateway
          schema:
            $ref: '#/definitions/BadGatewayErrorApiResponse'
definitions:
  SubscriptionIdentifier:
    type: object
    properties:
      subscriptionReference:
        type: string
    title: SubscriptionIdentifier
  ApiResponseEntityCreateSubscription:
    type: object
    required:
    - responseMetadata
    properties:
      data:
        $ref: '#/definitions/SubscriptionResponse'
      responseMetadata:
        $ref: '#/definitions/ResponseMetadata'
    title: ApiResponseEntityCreateSubscription
    description: Issuer response entity
  NotFoundErrorApiResponse:
    type: object
    required:
    - responseMetadata
    properties:
      responseMetadata:
        allOf:
        - $ref: '#/definitions/NotFoundResponseMetadata'
    title: NotFoundErrorApiResponse
  ApiResponseEntitySearchSubscription:
    type: object
    required:
    - responseMetadata
    properties:
      data:
        type: array
        items:
          $ref: '#/definitions/Subscription'
      responseMetadata:
        $ref: '#/definitions/ResponseMetadata'
    title: ApiResponseEntitySearchSubscription
    description: Issuer response entity
  BadGatewayErrorApiResponse:
    type: object
    required:
    - responseMetadata
    properties:
      responseMetadata:
        allOf:
        - $ref: '#/definitions/BadGatewayResponseMetadata'
    title: BadGatewayErrorApiResponse
  InternalServerErrorErrorApiResponse:
    type: object
    required:
    - responseMetadata
    properties:
      responseMetadata:
        allOf:
        - $ref: '#/definitions/InternalServerErrorResponseMetadata'
    title: InternalServerErrorErrorApiResponse
  InternalServerErrorResponseMetadata:
    type: object
    required:
    - correlationId
    - responseDateTime
    - statusCode
    - statusMessage
    properties:
      correlationId:
        type: string
        description: Correlation Identifier
      responseDateTime:
        type: string
        example: format:yyyy-MM-dd'T'HH:mm:ss.SSSZ
        description: Timestamp when response date was generated
      statusCode:
        type: integer
        format: int32
        example: 500
        description: HTTP status code
      statusMessage:
        type: string
        example: Internal server error
        description: Executed REST API status message
    title: InternalServerErrorResponseMetadata
  Subscription:
    type: object
    required:
    - cardContractReference
    - services
    properties:
      cardContractReference:
        type: string
        example: 9.9999e+20
      customerInfo:
        type: object
        example:
          additionalKey1: some-value
          additionalKey2: another-value
        description: Key/value object, entries will be part of each notification for this subscription (max. length of the keys is 32 characters)
        additionalProperties:
          type: string
      services:
        type: array
        items:
          $ref: '#/definitions/SubscriptionService'
      subscriptionIdentifier:
        $ref: '#/definitions/SubscriptionIdentifier'
    title: Subscription
  Links:
    type: object
    required:
    - self
    properties:
      self:
        type: string
        example: /x/{x}?x=x
        description: Service method URL
      next:
        type: string
        example: /x/{x}?page[offset]=2
        description: URL pagination query parameter next page
    title: Links
  ApiResponseEntityDeleteSubscription:
    type: object
    required:
    - responseMetadata
    properties:
      data:
        $ref: '#/definitions/SubscriptionResponse'
      responseMetadata:
        $ref: '#/definitions/ResponseMetadata'
    title: ApiResponseEntityDeleteSubscription
    description: Issuer response entity
  UnauthorizedResponseMetadata:
    type: object
    required:
    - correlationId
    - responseDateTime
    - statusCode
    - statusMessage
    properties:
      correlationId:
        type: string
        description: Correlation Identifier
      responseDateTime:
        type: string
        example: format:yyyy-MM-dd'T'HH:mm:ss.SSSZ
        description: Timestamp when response date was generated
      statusCode:
        type: integer
        format: int32
        example: 401
        description: HTTP status code
      statusMessage:
        type: string
        example: Unauthorized
        description: Executed REST API status message
    title: UnauthorizedResponseMetadata
  ApiResponseEntityModifySubscription:
    type: object
    required:
    - responseMetadata
    properties:
      data:
        $ref: '#/definitions/SubscriptionResponse'
      responseMetadata:
        $ref: '#/definitions/ResponseMetadata'
    title: ApiResponseEntityModifySubscription
    description: Issuer response entity
  SubscriptionResponse:
    type: object
    properties:
      subscriptionIdentifier:
        $ref: '#/definitions/SubscriptionIdentifier'
    title: SubscriptionResponse
  SubscriptionEvent:
    type: object
    required:
    - eventName
    properties:
      eventName:
        type: string
        example: XX_Approve_FO
      externalReference:
        type: string
        description: Optional external event identifier
      parameters:
        type: array
        description: Optional list of parameters to customize the criteria values for events
        items:
          $ref: '#/definitions/SubscriptionParameter'
      subscriptionEventIdentifier:
        $ref: '#/definitions/SubscriptionEventIdentifier'
    title: SubscriptionEvent
  ResponseMetadata:
    type: object
    required:
    - correlationId
    - responseDateTime
    - statusCode
    - statusMessage
    properties:
      correlationId:
        type: string
        description: Correlation Identifier
      links:
        description: Metadata Links
        allOf:
        - $ref: '#/definitions/Links'
      statusMessage:
        type: string
        example: Executed successfully
        description: Executed REST API status message
      statusCode:
        type: integer
        format: int32
        example: 200
        description: HTTP status code
      responseDateTime:
        type: string
        example: format:yyyy-MM-dd'T'HH:mm:ss.SSSZ
        description: Timestamp when response date was generated
      timeTakenMs:
        type: integer
        format: int64
        example: 12
        description: Wall clock time required from service to generate the response
    title: ResponseMetadata
  NotFoundResponseMetadata:
    type: object
    required:
    - correlationId
    - responseDateTime
    - statusCode
    - statusMessage
    properties:
      correlationId:
        type: string
        description: Correlation Identifier
      responseDateTime:
        type: string
        example: format:yyyy-MM-dd'T'HH:mm:ss.SSSZ
        description: Timestamp when response date was generated
      statusCode:
        type: integer
        format: int32
        example: 404
        description: HTTP status code
      statusMessage:
        type: string
        example: Not found
        description: Executed REST API status message
    title: NotFoundResponseMetadata
  ForbiddenErrorApiResponse:
    type: object
    required:
    - responseMetadata
    properties:
      responseMetadata:
        allOf:
        - $ref: '#/definitions/ForbiddenResponseMetadata'
    title: ForbiddenErrorApiResponse
  SubscriptionServiceIdentifier:
    type: object
    properties:
      subscriptionServiceReference:
        type: string
    title: SubscriptionServiceIdentifier
  SubscriptionService:
    type: object
    required:
    - serviceType
    properties:
      contacts:
        type: array
        description: List of addresses for an ALERT subscription (required if serviceType is ALERT)
        items:
          $ref: '#/definitions/SubscriptionContact'
      events:
        type: array
        description: List of events this subscription will be notified for
        items:
          $ref: '#/definitions/SubscriptionEvent'
      packet:
        type: string
        description: ALERT packet name from the issuer configuration (required if serviceType is ALERT)
      serviceType:
        type: string
        example: MESSAGE_SERVICE
        enum:
        - ALERT
        - INSTALMENT
        - MESSAGE_SERVICE
      subscriptionServiceIdentifier:
        $ref: '#/definitions/SubscriptionServiceIdentifier'
    title: SubscriptionService
  BadRequestResponseMetadata:
    type: object
    required:
    - correlationId
    - responseDateTime
    - statusCode
    - statusMessage
    properties:
      correlationId:
        type: string
        description: Correlation Identifier
      responseDateTime:
        type: string
        example: format:yyyy-MM-dd'T'HH:mm:ss.SSSZ
        description: Timestamp when response date was generated
      statusCode:
        type: integer
        format: int32
        example: 400
        description: HTTP status code
      statusMessage:
        type: string
        example: Bad request
        description: Executed REST API status message
    title: BadRequestResponseMetadata
  SubscriptionContact:
    type: object
    required:
    - type
    - value
    properties:
      pushDeviceType:
        type: string
        description: Type of (mobile) device (required if type is PUSH)
        enum:
        - ANDROID
        - IOS
      type:
        type: string
        example: MSISDN
        enum:
        - MSISDN
        - EMAIL
        - PUSH
      value:
        type: string
        example: '+49171000000001'
    title: SubscriptionContact
  SubscriptionParameter:
    type: object
    required:
    - criteria
    - value
    properties:
      criteria:
        type: string
      value:
        type: string
    title: SubscriptionParameter
  SubscriptionEventIdentifier:
    type: object
    properties:
      subscriptionEventReference:
        type: string
    title: SubscriptionEventIdentifier
  BadGatewayResponseMetadata:
    type: object
    required:
    - correlationId
    - responseDateTime
    - statusCode
    - statusMessage
    properties:
      correlationId:
        type: string
        description: Correlation Identifier
      responseDateTime:
        type: string
        example: format:yyyy-MM-dd'T'HH:mm:ss.SSSZ
        description: Timestamp when response date was generated
      statusCode:
        type: integer
        format: int32
        example: 502
        description: HTTP status code
      statusMessage:
        type: string
        example: Bad Gateway
        description: Executed REST API status message
    title: BadGatewayResponseMetadata
  BadRequestErrorApiResponse:
    type: object
    required:
    - responseMetadata
    properties:
      responseMetadata:
        allOf:
        - $ref: '#/definitions/BadRequestResponseMetadata'
    title: BadRequestErrorApiResponse
  ApiResponseEntitySubscription:
    type: object
    required:
    - responseMetadata
    properties:
      data:
        $ref: '#/definitions/Subscription'
      responseMetadata:
        $ref: '#/definitions/ResponseMetadata'
    title: ApiResponseEntitySubscription
    description: Issuer response entity
  ForbiddenResponseMetadata:
    type: object
    required:
    - correlationId
    - responseDateTime
    - statusCode
    - statusMessage
    properties:
      correlationId:
        type: string
        description: Correlation Identifier
      responseDateTime:
        type: string
        example: format:yyyy-MM-dd'T'HH:mm:ss.SSSZ
        description: Timestamp when response date was generated
      statusCode:
        type: integer
        format: int32
        example: 403
        description: HTTP status code
      statusMessage:
        type: string
        example: Forbidden
        description: Executed REST API status message
    title: ForbiddenResponseMetadata
securityDefinitions:
  basic:
    type: oauth2
    flow: application
    tokenUrl: https://sbx-wlip.api1-eu2.psapigateway.preprod.giservices.io/token