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

# Referee cancellations

> Mark all customers matching the given identifiers as cancelled. i.e. they've cancelled their order or have failed to fulfil all necessary steps in order to be given a reward.

Only customers who could be eligible for a reward will be marked as cancelled. Any other customers included
(e.g. customers who might order in the future) will be ignored and discarded.

We strongly suggest you pass us _all_ customers who cancelled - as you may not know who was introduced by a friend. We will discard any customers details who do not need cancellation.

Cancellation is completed on a queue. It may take some time for the customers to be marked as cancelled. Approximate time to mark someone as cancelled is normally under < 5 minutes, but can be several hours in some cases.

Customers who we were able to queue will be returned in the `accepted` array. Customers who we do not hold a record of or cannot find will be returned in the `errors` array.

You may send 100 customers per request.

**Scopes:** `customers:write`

**Rate limits:** 300 requests per 5 minutes. Shared across all 'referee' endpoints.



## OpenAPI

````yaml /openapi/merchant_api.oas.json post /api/merchant/v2/referee/cancellation
openapi: 3.0.0
info:
  title: Merchant API
  description: Interact directly with the Mention Me platform using our REST API.
  termsOfService: https://mention-me.com/help/tnc_f/site
  contact:
    name: Mention Me
    url: https://mention-me.com
    email: support@mention-me.com
  version: v2
servers:
  - url: https://mention-me.com
    description: Production
  - url: https://demo.mention-me.com
    description: Demo
security:
  - Bearer: []
tags:
  - name: Coupons
  - name: Customers
  - name: Referee
paths:
  /api/merchant/v2/referee/cancellation:
    post:
      tags:
        - Referee
      summary: Referee cancellations
      description: >-
        Mark all customers matching the given identifiers as cancelled. i.e.
        they've cancelled their order or have failed to fulfil all necessary
        steps in order to be given a reward.


        Only customers who could be eligible for a reward will be marked as
        cancelled. Any other customers included

        (e.g. customers who might order in the future) will be ignored and
        discarded.


        We strongly suggest you pass us _all_ customers who cancelled - as you
        may not know who was introduced by a friend. We will discard any
        customers details who do not need cancellation.


        Cancellation is completed on a queue. It may take some time for the
        customers to be marked as cancelled. Approximate time to mark someone as
        cancelled is normally under < 5 minutes, but can be several hours in
        some cases.


        Customers who we were able to queue will be returned in the `accepted`
        array. Customers who we do not hold a record of or cannot find will be
        returned in the `errors` array.


        You may send 100 customers per request.


        **Scopes:** `customers:write`


        **Rate limits:** 300 requests per 5 minutes. Shared across all 'referee'
        endpoints.
      operationId: post_merchant_api_referee_cancellation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerEmailIdentifierCollectionInput'
      responses:
        '202':
          description: All identifiers that were queued to be marked as cancelled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkCustomerResponse'
        '401':
          description: Required scopes are missing.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/UnauthorisedRFC7807Problem'
        '404':
          description: No customers matched the identifiers.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RFC7807Problem'
        '429':
          description: Rate limit exceeded.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsRFC7807Problem'
components:
  schemas:
    CustomerEmailIdentifierCollectionInput:
      description: A collection of customer email addresses.
      required:
        - identifiers
      properties:
        identifiers:
          description: Maximum of 100 identifiers.
          type: array
          items:
            $ref: '#/components/schemas/CustomerEmailIdentifier'
          maxItems: 100
          minItems: 1
      type: object
    BulkCustomerResponse:
      description: >-
        A collection of customer identifiers which were accepted, or resulted in
        an error.
      properties:
        accepted:
          description: All the identifiers that were accepted.
          type: array
          items:
            $ref: '#/components/schemas/CustomerIdentifierInterface2'
          maxItems: 100
          minItems: 0
        errors:
          description: All the identifiers which resulted in errors.
          type: array
          items:
            $ref: '#/components/schemas/CustomerErrorPayloadInterface2'
          maxItems: 100
          minItems: 0
      type: object
    UnauthorisedRFC7807Problem:
      properties:
        status:
          type: integer
          maximum: 599
          minimum: 200
          example: 401
        type:
          type: string
          example: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
        title:
          type: string
          example: Unauthorized
        detail:
          type: string
          example: Missing at least one of the required scopes
      type: object
    RFC7807Problem:
      properties:
        status:
          type: integer
          maximum: 599
          minimum: 200
        type:
          type: string
          example: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
        title:
          type: string
        detail:
          type: string
      type: object
    TooManyRequestsRFC7807Problem:
      properties:
        status:
          type: integer
          maximum: 599
          minimum: 200
          example: 401
        type:
          type: string
          example: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
        title:
          type: string
          example: Too Many Requests
        detail:
          type: string
          example: Rate limit exceeded for Client Id
      type: object
    CustomerEmailIdentifier:
      required:
        - type
      properties:
        type:
          description: The type of identifier.
          type: string
          enum:
            - email
        value:
          type: string
          default: ''
          maxLength: 320
          minLength: 1
          pattern: .+\@\S+\.\S+
      type: object
    CustomerIdentifierInterface2:
      discriminator:
        propertyName: type
        mapping:
          email:
            $ref: '#/components/schemas/CustomerEmailIdentifier2'
          customerId:
            $ref: '#/components/schemas/CustomerIdIdentifier2'
      oneOf:
        - $ref: '#/components/schemas/CustomerEmailIdentifier2'
        - $ref: '#/components/schemas/CustomerIdIdentifier2'
    CustomerErrorPayloadInterface2:
      discriminator:
        propertyName: reason
        mapping:
          notFound:
            $ref: '#/components/schemas/MissingCustomerErrorPayload2'
      oneOf:
        - $ref: '#/components/schemas/MissingCustomerErrorPayload2'
    CustomerEmailIdentifier2:
      required:
        - type
      properties:
        type:
          description: The type of identifier.
          type: string
          enum:
            - email
        value:
          type: string
          default: ''
          maxLength: 320
          minLength: 1
          pattern: .+\@\S+\.\S+
      type: object
    CustomerIdIdentifier2:
      required:
        - type
        - value
      properties:
        type:
          description: The type of identifier.
          type: string
          enum:
            - customerId
        value:
          type: string
      type: object
    MissingCustomerErrorPayload2:
      properties:
        type:
          $ref: '#/components/schemas/CustomerIdentifierType'
        value:
          type: string
        reason:
          $ref: '#/components/schemas/CustomerIdentifierErrorReason'
      type: object
    CustomerIdentifierType:
      type: string
      enum:
        - email
        - customerId
    CustomerIdentifierErrorReason:
      type: string
      enum:
        - notFound
  securitySchemes:
    Bearer:
      type: http
      description: RFC8725 Compliant JWT
      bearerFormat: JWT
      scheme: bearer

````