Skip to content

Criar ou atualizar integrações

PATCH
/integrations

Para criar ou atualizar uma integração de usuário, utilize o método PATCH na rota /integrations. Este método requer os seguintes parâmetros:

  • gateway: Código identificador da integração (gateway)
  • webhook: Indica se a integração possui webhook
  • webhookConstraint: Restrição do webhook
  • metadata: Metadados da integração

O campo metadata contém as informações para envio de Webhooks, caso a integração possua webhook. Os campos obrigatórios para envio de Webhooks são:

  • webhookUrl: URL que receberá os Webhooks
  • webhookVersion: Versão do Webhook, atualmente suportado apenas a versão 1.8,
  • webhookTypes: Array com os tipos de Webhooks que a integração irá receber, atualmente suportado apenas os tipos:
    • channel-answer: Enviado quando uma chamada é atendida
    • channel-hangup: Enviado quando uma chamada é finalizada

Quando a integração possui webhook, o campo webhookConstraint indica a restrição do webhook, ou seja, apenas chamadas que contenham em seu metadata os valors informados no campo webhookConstraint serão enviadas para o webhook.

Exemplo de uma integração com restrição de webhook:

json
{
  "id": 1,
  "gateway": "integration-code",
  "webhook": true,
  "webhookConstraint": {
    "gateway": "integration-code",
  },
  "metadata": {
    "api_token": "123456",
  }
}

Neste exemplo, apenas chamadas que contenham o valor e chave do campo webhookConstraint no campo metadata da chamada serão enviadas para o webhook.

Exemplo de uma chamada que será enviada para o webhook com restrição:

Para realizar uma chamada de voz, utilize o método POST na rota /dialer

json
{
  "extension": "1000",
  "phone": "+554833328530",
  "metadata": {
    "gateway": "integration-code"
  }
}

Corpo da Requisição

JSON
{
"id": 0,
"gateway": "integration-code",
"webhook": true,
"webhookConstraint": {
},
"metadata": {
}
}

Respostas

Request was successful
JSON
{
"id": 0,
"gateway": "integration-code",
"webhook": true,
"webhookConstraint": {
},
"metadata": {
}
}

Exemplos

cURL
curl -X PATCH \
'https://api.api4com.com/api/v1/integrations' \
 -H "Content-Type: application/json"
JavaScript
fetch('https://api.api4com.com/api/v1/integrations', {method:'PATCH',headers:{'Content-Type':'application/json'}})
  .then(response => response.json())
  .then(data => console.log(data));
PHP
<?php
$url = 'https://api.api4com.com/api/v1/integrations';
$method = 'PATCH';
$headers = [
    'Content-Type' => 'application/json',
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>
Python
import requests

url = 'https://api.api4com.com/api/v1/integrations'

headers = {
    'Content-Type': 'application/json'
}

response = requests.patch(url, headers=headers)
print(response.json())

Released under the MIT License.