---
title: "Update a callback"
method: PATCH
path: "/v2/apps/{app_id}/callbacks/{id}"
tags: ["Callbacks"]
---

# Update a callback

`PATCH /v2/apps/{app_id}/callbacks/{id}`

## Request

- Base URL: `https://api.tenjin.com`
- URL: `https://api.tenjin.com/v2/apps/{app_id}/callbacks/{id}`
- Auth: HTTP bearer

## Path parameters

- `id` string, uuid, required
- `app_id` string, uuid, required

## Request body

- PatchAppsAppIdCallbacksIdRequest
  - `callback_template_id` string, uuid: Id of a callback template to move the callback to
  - `name` string: Name of the callback
  - `active` boolean: Whether Tenjin sends the callback. Defaults to true when the callback is created
  - `customer_parameters` object: A value for each parameter in the template's customer_parameters; creating a callback requires every one
  - `event` string: Event of the app that sends the callback
  - `user_filter` 'all' | 'channel' | 'channel_and_organic' | 'non_channel': Users the callback is sent for

## Response `200`

The updated callback

- CallbackDocument
  - `data` CallbackResource, required
    - `id` string, uuid, required
    - `type` 'callback', required
    - `attributes` object, required
      - `name` string, required: Name of the callback
      - `event` string, required: Event that sends the callback
      - `action` 'ping' | 'ping_on_first' | 'notify_on_reengagement' | 'ping_adwords' | 'ping_adwords_deferred' | 'ping_adwords_post_install' | 'fetch_adwords_reengagement' | 'notify_adwords_reengagement' | 'ping_amazon' | 'ping_amazon_post_install' | 'fetch_amazon_reengagement' | 'notify_amazon_reengagement' | 'ping_facebook_deferred' | 'ping_facebook' | 'ping_facebook_post_install' | 'fetch_facebook_reengagement' | 'notify_facebook_reengagement' | 'ping_double_click_bid_manager' | 'fetch_double_click_bid_manager_reengagement' | 'ping_snapchat' | 'ping_snapchat_post_install' | 'fetch_snapchat_reengagement' | 'notify_snapchat_reengagement' | 'ping_tiktok' | 'ping_tiktok_post_install' | 'fetch_tiktok_reengagement' | 'notify_tiktok_reengagement' | 'san_callback', required: What the callback does, such as `ping` or `ping_on_first`
      - `channel_id` integer, nullable, required: Id of the callback's channel
      - `url` string, nullable, required: URL Tenjin calls. Macros such as `{{advertising_id}}` are filled in
      - `http_method` 'GET' | 'POST', required: HTTP method
      - `active` boolean, required: Whether Tenjin sends the callback
      - `customer_parameters` object, required: Value of each parameter the callback sets
      - `callback_template_id` string, uuid, nullable, required: Id of the callback template the callback is made from
      - `created_at` string, date-time, required: When the callback was created
      - `user_filter` 'all' | 'channel' | 'channel_and_organic' | 'non_channel' | 'null', nullable, required: Users the callback is sent for
      - `first_party` boolean, nullable, required: Whether this is a first-party (destination belongs to the advertiser) S2S callback
  - `links` Links, required
    - `self` string, uri, required: URL of this request
    - `first` string, uri: URL of the first page of a list
    - `prev` string, uri: URL of the previous page of a list
    - `next` string, uri: URL of the next page of a list
    - `last` string, uri: URL of the last page of a list
  - `meta` object, required: Always empty

## Other responses

- `400`: A param is missing or invalid, a record is not found, or the request cannot be served
- `401`: Missing or invalid credentials, or no access to the requested data
- `403`: Invalid token, or the user's role does not allow the request
- `498`: Expired token, or a token with an invalid signature
- `503`: Read-only mode during maintenance; try again later

---

[API](https://skmtc.dev/tenjin/apis/campaign-management-api.md) - [All operations](https://skmtc.dev/tenjin/apis/campaign-management-api/llms.txt) - [OpenAPI document](https://skmtc.dev/tenjin/apis/campaign-management-api/revisions/e3cae1a03a92?raw)
