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

# Update Activity

Use this endpoint to inform us about a change to an activity.

For example, if you track a review activity which defaults to `pending` and your
moderator then approves the review, you can send LoyaltyLion an update informing
us it has been approved.

To update an activity you'll need the activity name (for example, review) and
the merchant\_id you sent to LoyaltyLion when you first tracked the activity.

## Difference between `void` and `decline`

Pending activities can be declined, while approved activities can be voided.

If you aren't sure if an activity is pending or approved, you should update the
state to `declined`. This will be treated as `void` if the activity is approved.


## OpenAPI

````yaml /api-reference/v2/openapi.json PUT /v2/activities/{name}/{merchant_id}
openapi: 3.1.1
info:
  title: LoyaltyLion Admin API
  version: v2
servers:
  - url: https://api.loyaltylion.com
security: []
tags:
  - name: identity
  - name: activities
  - name: orders
  - name: transactions
  - name: customers
  - name: webhooks
  - name: emails
  - name: sites
  - name: reviews
  - name: rewards
  - name: integrations
  - name: gatsby
paths:
  /v2/activities/{name}/{merchant_id}:
    put:
      tags:
        - activities
      operationId: activities.updateActivityByNameAndMerchantId
      parameters:
        - name: name
          in: path
          required: true
          schema:
            type: string
            minLength: 1
          description: >-
            A built-in or custom activity rule name. If you’re tracking a custom
            rule, this should be the rule identifier; if you’re tracking a
            built-in activity, the name must be prefixed with a `$`, for
            example, `$signup`
        - name: merchant_id
          in: path
          required: true
          schema:
            type: string
            minLength: 1
          description: The unique ID provided when you initially tracked this activity
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/ActivitiesUpdateActivityByNameAndMerchantIdRequestBody
      responses:
        '204':
          description: '204'
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ActivitiesUpdateActivityByNameAndMerchantIdResponseBody
        '400':
          $ref: '#/components/responses/ClientErrorBadRequest'
        '401':
          description: '401'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      details:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties:
                          type: string
                    required:
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '403':
          description: '403'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      details:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties:
                          type: string
                    required:
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '422':
          description: '422'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                    required:
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
      security:
        - ProgramApiKey:
            - write_customers
        - SiteTokenSecret: []
components:
  schemas:
    ActivitiesUpdateActivityByNameAndMerchantIdRequestBody:
      type: object
      properties:
        state:
          description: The new state of this activity
          type: string
          enum:
            - approved
            - declined
            - void
      required:
        - state
      additionalProperties: false
    ActivitiesUpdateActivityByNameAndMerchantIdResponseBody:
      type: string
      const: ''
  responses:
    ClientErrorBadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                  details:
                    type: object
                    additionalProperties:
                      type: string
                required:
                  - message
            required:
              - error
  securitySchemes:
    ProgramApiKey:
      type: http
      scheme: bearer
      description: >-
        An API key linked to a Program in LoyaltyLion, with a set of permissions
        (scopes). API keys can be created manually, or acquired through an
        OAuth2 flow. The API key should be provided as a `Bearer` token in the
        `Authorization` header
    SiteTokenSecret:
      type: http
      scheme: basic
      description: >-
        [DEPRECATED] Authenticate using a LoyaltyLion site's `token` as
        username, and its `secret` as the password. This authentication method
        is deprecated and will be removed in future. Use the `ProgramApiKey`
        authentication method instead

````