> For the complete documentation index, see [llms.txt](https://passteam.gitbook.io/passteam-api-v1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://passteam.gitbook.io/passteam-api-v1/webhooks.md).

# Webhooks

Уведомления о событиях с картами по протоколу http(s)

## Принцип работы

Когда происходит событие с картой, система отправляет POST запрос с телом в JSON на указанный URL.\
Отправка вебхука повторяется через 1-2 часа и через 24 часа.\
Система не ждет и не обрабатывает ответ по URL.

{% hint style="info" %}
Возможно предусмотреть запись идентификаторов обработанных вебхуков, чтобы не обрабатывать повторные запросы.
{% endhint %}

## Настройка

* Настройка вебхуков производится в разделе интеграций с CRM ([https://app.passteam.io/vue/dist/settings/integrations/webhooks ](<https://app.passteam.io/vue/dist/settings/integrations/webhooks >)ссылка для настройки).

1. В качестве URL необходимо ввести адрес на который будут отправляться уведомления
2. Необходимо выбрать события, о которых вы хотите получать уведомления

## События

1. Создание клиента - происходит, когда в системе создается клиент
2. Обновление клиента - происходит, когда клиент обновляется
3. Удаление клиента - происходит, когда клиента удаляют
4. Установка карты на устройство - происходит, когда клиент устанавливает карту в приложение Apple Wallet или Google Pay
5. Удаление карты с устройства - происходит, когда клиент удаляет карту в приложении Apple Wallet или Google Pay

## Обработка вебхука

Вебхук отправляется POST запросом по введенному URL в формате JSON.\
Для обработки вебхука необходимо обрабатывать входящие POST запросы формата JSON.

### Пример обработки вебхука

{% tabs %}
{% tab title="PHP" %}

```
if (!empty(file_get_contents('php://input'))) {
        $webhook = json_decode(file_get_contents('php://input'), true);
}
```

В переменной $webhook будет содержаться массив с данными
{% endtab %}
{% endtabs %}

## Отправляемые данные

Вебхук состоит из следующих полей:

* webhookId - строка, идентификатор вебхука.
* event - строка, тип события (createCard, updateCard, deleteCard, installCard, unInstallCard)
* card - массив, данные по карте. В таком же формате как возвращает запрос на получение информации о карте.

## Пример отправляемых данных&#x20;

```
{
	"card": {
		"cardId": "5e451571cea6c6141807b792",
		"cardCode": "000000018",
		"cardUrl": "testUrl",
		"appleUrl": "testUrl",
		"googleUrl": "testUrl",
		"qrcodeUrl": "testUrl",
		"values": {
			"%POINTS%": "1000"
		},
		"deviceRegistered": false,
		"expirationDate": "",
		"voided": 0,
		"phoneNumber": "",
		"email": "",
		"strip": "",
		"logo": "",
		"icon": "",
		"templateId": "5e424c181dbf0d537c8b4569",
		"importUid": "",
		"installedGPay": 0,
		"installedAW": 0,
		"installed": false,
		"created": "13.02.2020 12:22:57",
		"updated": "13.02.2020 12:22:57"
	},
	"event": "createCard",
	"webhookId": "5e4515b1cea6c61fba2a4212"
}
```

## <br>
