• Documentation
  • Integrations
  • Webhooks


Transifex lets you specify a webhook for your translations and get notified whenever the translations are completed or reviewed, as well as when fillups are complete. This way, you can pull translations as soon as they are ready, without having to constantly check Transifex for updates.

Adding webhooks to a project


For webhooks to work, you'll need a web server to listen for the webhook calls and an application to react to those. Note that you can't manually trigger the webhooks.

Webhooks can be added to any project in an Organization. To do this:

  • From the Dashboard, head to the project you want to set up webhooks for.

  • Click on Settings.

  • In the submenu, click on Features.

  • At the top, enter your webhook URL and secret key.

    The callback URL should listen for a POST request with the following variables:

    • project: The slug of the project this notification is for.
    • resource: The slug of the resource this notification is for.
    • language: The language code of the translation that was modified.
    • translated: An integer that represents the rate of translation for the particular resource in the particular language. In case a resource has been fully reviewed for a particular language, a variable named reviewed will be used instead of the translated one.
  • Click Save changes.

When a language in a project becomes 100% translated or reviewed, the update is fired via a POST request from Transifex to the provided URL. The body of the post will be a JSON payload of the variables referenced above.


If you've defined a secret key, then each webhook will include two headers:

  • X-TX-Signature: This is the computed signature generated by Transifex. It's used to tell whether the request is valid or not.
  • User-Agent: Transifex itself.


You can verify a webhook is coming from Transifex by calculating a digital signature. Each webhook request contains an X-TX-Signature header that's generated using the given secret key, along with the payload data sent in the request. To verify if the request came from Transifex, compute the HMAC hash and compare it to the header value sent in the request. If the computed signatures match, you can be sure the request was sent from Transifex.

Calculating an HMAC-SHA1 signature in Python

import base64
import hmac
import hashlib
data = {'project':u'your_project_slug', 'translated':100, 'resource':u'your_resource_slug', 'language':u'language_code'}
data = str(data)
h=hmac.new(key='your_secret_key', msg=data, digestmod=hashlib.sha1)
'c36b0d1125d8bd7cdaa0e8ce84fbae7895e13eb9' --> This is how the result will look like
'w2sNESXYvXzaoOjOhPuueJXhPrk=' --> The X-TX-Signature will be finally returned

Example webhook response to the URL submitted to Transifex

    "project": "project_slug",
    "resource": "resource_slug",
    "language": "language_code",
    "translated": 100