# Receber lead externo POST https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead Content-Type: application/json Recebe um lead externo em JSON, valida a `x-api-key` e coloca esse payload na fila operacional do Simplifica. Como usar: - envie a chamada para `/api_lead/lead`; - informe a credencial pública em `x-api-key`; - envie um body JSON válido; - use os campos `nome`, `origem` e `celular` como base mínima recomendada. Regras importantes: - envie os nomes dos campos em minúsculas; - `consultor`, quando enviado, deve ser o e-mail do consultor; - se a `origem` não existir, o Simplifica cria a origem e continua o cadastro; - continue enviando `origem` preenchida; a documentação não trata valor vazio como caminho normal de integração; - se `consultor` não for enviado, o Simplifica tenta definir automaticamente um responsável; - `cpf` e `cnpj` não devem ser enviados juntos. Regra de responsável quando `consultor` não vier no payload: 1. lista da vez da empresa; 2. usuário marcado como SDR; 3. usuário marcado como closer; 4. primeiro usuário encontrado. Contrato HTTP síncrono atual: - `200` quando o payload é aceito e enfileirado; - `400` quando o JSON é inválido ou o body está ausente; - `401` quando a credencial é inválida; - `500` em erro técnico inesperado. Regras de negócio adicionais, deduplicação e conflitos de identificação acontecem no processamento interno posterior e não retornam hoje um payload síncrono detalhado. Reference: https://docs.simplificagestao.com.br/api-lead/webhook/post-api-lead ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: openapi-api-lead version: 1.0.0 paths: /api_lead/lead: post: operationId: post-api-lead summary: Receber lead externo description: > Recebe um lead externo em JSON, valida a `x-api-key` e coloca esse payload na fila operacional do Simplifica. Como usar: - envie a chamada para `/api_lead/lead`; - informe a credencial pública em `x-api-key`; - envie um body JSON válido; - use os campos `nome`, `origem` e `celular` como base mínima recomendada. Regras importantes: - envie os nomes dos campos em minúsculas; - `consultor`, quando enviado, deve ser o e-mail do consultor; - se a `origem` não existir, o Simplifica cria a origem e continua o cadastro; - continue enviando `origem` preenchida; a documentação não trata valor vazio como caminho normal de integração; - se `consultor` não for enviado, o Simplifica tenta definir automaticamente um responsável; - `cpf` e `cnpj` não devem ser enviados juntos. Regra de responsável quando `consultor` não vier no payload: 1. lista da vez da empresa; 2. usuário marcado como SDR; 3. usuário marcado como closer; 4. primeiro usuário encontrado. Contrato HTTP síncrono atual: - `200` quando o payload é aceito e enfileirado; - `400` quando o JSON é inválido ou o body está ausente; - `401` quando a credencial é inválida; - `500` em erro técnico inesperado. Regras de negócio adicionais, deduplicação e conflitos de identificação acontecem no processamento interno posterior e não retornam hoje um payload síncrono detalhado. tags: - subpackage_webhook parameters: - name: x-api-key in: header description: Chave pública usada para enviar leads externos ao Simplifica. required: true schema: type: string responses: '200': description: Payload recebido com sucesso e enfileirado para processamento. content: application/json: schema: $ref: '#/components/schemas/ApiLeadSuccessResponse' '400': description: Body ausente ou JSON inválido. content: application/json: schema: $ref: '#/components/schemas/ApiLeadErrorResponse' '401': description: Credencial inválida. content: application/json: schema: $ref: '#/components/schemas/ApiLeadErrorResponse' '500': description: Erro técnico inesperado. content: application/json: schema: $ref: '#/components/schemas/ApiLeadErrorResponse' requestBody: content: application/json: schema: $ref: '#/components/schemas/ApiLeadPayload' servers: - url: https://gestao.simplificagestao.com.br/ords/gestao - url: >- https://gd341ff411ca4b6-dbdevsimplificav2.adb.sa-saopaulo-1.oraclecloudapps.com/ords/gestao components: schemas: ApiLeadPayload: type: object properties: nome: type: string description: Nome completo do lead. origem: type: string description: >- Origem principal do lead. Se não existir, o Simplifica cria automaticamente. Este continua sendo um campo obrigatório no payload documentado e deve ser enviado preenchido. celular: type: string description: >- Número de celular com DDD. Aceita envio com ou sem formatação. O +55 é completado automaticamente quando necessário. consultor: type: string description: >- E-mail do consultor responsável. Se omitido, o Simplifica tenta definir automaticamente um responsável. telefone_fixo: type: string description: >- Telefone fixo com DDD. Aceita envio com ou sem formatação. O +55 é completado automaticamente quando necessário. email: type: string description: E-mail do lead. cpf: type: string description: CPF do lead, quando aplicável. Não envie junto com `cnpj`. cnpj: type: string description: CNPJ do lead, quando aplicável. Não envie junto com `cpf`. custom: type: object additionalProperties: description: Any type description: >- Objeto JSON livre com dados personalizados. A estrutura original é preservada. required: - nome - origem - celular description: > Payload recebido pelo webhook de entrada de leads. Campos obrigatórios: - `nome` - `origem` - `celular` Regras importantes: - envie os nomes dos campos em minúsculas; - `consultor` deve ser o e-mail do consultor, quando enviado; - `celular` e `telefone_fixo` aceitam máscara; - `cpf` e `cnpj` não devem coexistir no mesmo payload; - no processamento interno, o Simplifica exige pelo menos um contato válido, como `celular` ou `email`; - `custom` aceita um objeto JSON livre; - campos `utm_*` podem ser enviados livremente. Campos opcionais mapeados hoje: - `consultor` - `telefone_fixo` - `email` - `cpf` - `cnpj` - `custom` - quaisquer campos com prefixo `utm_` title: ApiLeadPayload ApiLeadSuccessResponseStatus: type: string enum: - sucesso title: ApiLeadSuccessResponseStatus ApiLeadSuccessResponse: type: object properties: status: $ref: '#/components/schemas/ApiLeadSuccessResponseStatus' mensagem: type: string required: - status - mensagem title: ApiLeadSuccessResponse ApiLeadErrorResponseStatus: type: string enum: - erro title: ApiLeadErrorResponseStatus ApiLeadErrorResponse: type: object properties: status: $ref: '#/components/schemas/ApiLeadErrorResponseStatus' mensagem: type: string description: Mensagem textual de erro retornada pela API. required: - status - mensagem title: ApiLeadErrorResponse securitySchemes: ApiLeadApiKey: type: apiKey in: header name: x-api-key description: Chave pública usada para enviar leads externos ao Simplifica. ``` ## SDK Code Examples ```python sucesso import requests url = "https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead" headers = { "x-api-key": "", "Content-Type": "application/json" } response = requests.post(url, headers=headers) print(response.json()) ``` ```javascript sucesso const url = 'https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead'; const options = { method: 'POST', headers: {'x-api-key': '', 'Content-Type': 'application/json'}, body: undefined }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go sucesso package main import ( "fmt" "net/http" "io" ) func main() { url := "https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead" req, _ := http.NewRequest("POST", url, nil) req.Header.Add("x-api-key", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby sucesso require 'uri' require 'net/http' url = URI("https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["x-api-key"] = '' request["Content-Type"] = 'application/json' response = http.request(request) puts response.read_body ``` ```java sucesso import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead") .header("x-api-key", "") .header("Content-Type", "application/json") .asString(); ``` ```php sucesso request('POST', 'https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead', [ 'headers' => [ 'Content-Type' => 'application/json', 'x-api-key' => '', ], ]); echo $response->getBody(); ``` ```csharp sucesso using RestSharp; var client = new RestClient("https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead"); var request = new RestRequest(Method.POST); request.AddHeader("x-api-key", ""); request.AddHeader("Content-Type", "application/json"); IRestResponse response = client.Execute(request); ``` ```swift sucesso import Foundation let headers = [ "x-api-key": "", "Content-Type": "application/json" ] let request = NSMutableURLRequest(url: NSURL(string: "https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Payload mínimo recomendado import requests url = "https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead" payload = { "nome": "Matheus Botelho", "origem": "Instagram", "celular": "11991234567" } headers = { "x-api-key": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Payload mínimo recomendado const url = 'https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead'; const options = { method: 'POST', headers: {'x-api-key': '', 'Content-Type': 'application/json'}, body: '{"nome":"Matheus Botelho","origem":"Instagram","celular":"11991234567"}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Payload mínimo recomendado package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead" payload := strings.NewReader("{\n \"nome\": \"Matheus Botelho\",\n \"origem\": \"Instagram\",\n \"celular\": \"11991234567\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("x-api-key", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Payload mínimo recomendado require 'uri' require 'net/http' url = URI("https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["x-api-key"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"nome\": \"Matheus Botelho\",\n \"origem\": \"Instagram\",\n \"celular\": \"11991234567\"\n}" response = http.request(request) puts response.read_body ``` ```java Payload mínimo recomendado import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead") .header("x-api-key", "") .header("Content-Type", "application/json") .body("{\n \"nome\": \"Matheus Botelho\",\n \"origem\": \"Instagram\",\n \"celular\": \"11991234567\"\n}") .asString(); ``` ```php Payload mínimo recomendado request('POST', 'https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead', [ 'body' => '{ "nome": "Matheus Botelho", "origem": "Instagram", "celular": "11991234567" }', 'headers' => [ 'Content-Type' => 'application/json', 'x-api-key' => '', ], ]); echo $response->getBody(); ``` ```csharp Payload mínimo recomendado using RestSharp; var client = new RestClient("https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead"); var request = new RestRequest(Method.POST); request.AddHeader("x-api-key", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"nome\": \"Matheus Botelho\",\n \"origem\": \"Instagram\",\n \"celular\": \"11991234567\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Payload mínimo recomendado import Foundation let headers = [ "x-api-key": "", "Content-Type": "application/json" ] let parameters = [ "nome": "Matheus Botelho", "origem": "Instagram", "celular": "11991234567" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```python Payload com campos opcionais e UTM import requests url = "https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead" payload = { "nome": "Matheus Botelho", "origem": "Instagram", "celular": "11991234567", "consultor": "joao.silva@gmail.com", "telefone_fixo": "1143211234", "email": "matheus.botelho@gmail.com", "custom": { "Qual o nome da sua empresa?": "Espaço das Cadeiras", "Qual o seu Cargo?": "CEO / Dono do Negócio", "Qual é o Faturamento Médio Mensal?": "Entre R$100 mil a R$300 mil", "Segmento": "Comércio de produtos de mesas" }, "utm_creative_format": "video", "utm_product": "simplifica_lead_capture", "utm_term": "lead_form", "utm_medium": "paid_social", "utm_source_platform": "facebook_ads", "utm_audience": "lookalike_2pct_br", "utm_id": "fb_oct_2025_lp1", "utm_content": "creative_v1", "utm_source": "facebook", "utm_campaign": "lead_gen_oct_2025", "utm_marketing_tactic": "prospecting" } headers = { "x-api-key": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Payload com campos opcionais e UTM const url = 'https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead'; const options = { method: 'POST', headers: {'x-api-key': '', 'Content-Type': 'application/json'}, body: '{"nome":"Matheus Botelho","origem":"Instagram","celular":"11991234567","consultor":"joao.silva@gmail.com","telefone_fixo":"1143211234","email":"matheus.botelho@gmail.com","custom":{"Qual o nome da sua empresa?":"Espaço das Cadeiras","Qual o seu Cargo?":"CEO / Dono do Negócio","Qual é o Faturamento Médio Mensal?":"Entre R$100 mil a R$300 mil","Segmento":"Comércio de produtos de mesas"},"utm_creative_format":"video","utm_product":"simplifica_lead_capture","utm_term":"lead_form","utm_medium":"paid_social","utm_source_platform":"facebook_ads","utm_audience":"lookalike_2pct_br","utm_id":"fb_oct_2025_lp1","utm_content":"creative_v1","utm_source":"facebook","utm_campaign":"lead_gen_oct_2025","utm_marketing_tactic":"prospecting"}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Payload com campos opcionais e UTM package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead" payload := strings.NewReader("{\n \"nome\": \"Matheus Botelho\",\n \"origem\": \"Instagram\",\n \"celular\": \"11991234567\",\n \"consultor\": \"joao.silva@gmail.com\",\n \"telefone_fixo\": \"1143211234\",\n \"email\": \"matheus.botelho@gmail.com\",\n \"custom\": {\n \"Qual o nome da sua empresa?\": \"Espaço das Cadeiras\",\n \"Qual o seu Cargo?\": \"CEO / Dono do Negócio\",\n \"Qual é o Faturamento Médio Mensal?\": \"Entre R$100 mil a R$300 mil\",\n \"Segmento\": \"Comércio de produtos de mesas\"\n },\n \"utm_creative_format\": \"video\",\n \"utm_product\": \"simplifica_lead_capture\",\n \"utm_term\": \"lead_form\",\n \"utm_medium\": \"paid_social\",\n \"utm_source_platform\": \"facebook_ads\",\n \"utm_audience\": \"lookalike_2pct_br\",\n \"utm_id\": \"fb_oct_2025_lp1\",\n \"utm_content\": \"creative_v1\",\n \"utm_source\": \"facebook\",\n \"utm_campaign\": \"lead_gen_oct_2025\",\n \"utm_marketing_tactic\": \"prospecting\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("x-api-key", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Payload com campos opcionais e UTM require 'uri' require 'net/http' url = URI("https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["x-api-key"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"nome\": \"Matheus Botelho\",\n \"origem\": \"Instagram\",\n \"celular\": \"11991234567\",\n \"consultor\": \"joao.silva@gmail.com\",\n \"telefone_fixo\": \"1143211234\",\n \"email\": \"matheus.botelho@gmail.com\",\n \"custom\": {\n \"Qual o nome da sua empresa?\": \"Espaço das Cadeiras\",\n \"Qual o seu Cargo?\": \"CEO / Dono do Negócio\",\n \"Qual é o Faturamento Médio Mensal?\": \"Entre R$100 mil a R$300 mil\",\n \"Segmento\": \"Comércio de produtos de mesas\"\n },\n \"utm_creative_format\": \"video\",\n \"utm_product\": \"simplifica_lead_capture\",\n \"utm_term\": \"lead_form\",\n \"utm_medium\": \"paid_social\",\n \"utm_source_platform\": \"facebook_ads\",\n \"utm_audience\": \"lookalike_2pct_br\",\n \"utm_id\": \"fb_oct_2025_lp1\",\n \"utm_content\": \"creative_v1\",\n \"utm_source\": \"facebook\",\n \"utm_campaign\": \"lead_gen_oct_2025\",\n \"utm_marketing_tactic\": \"prospecting\"\n}" response = http.request(request) puts response.read_body ``` ```java Payload com campos opcionais e UTM import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead") .header("x-api-key", "") .header("Content-Type", "application/json") .body("{\n \"nome\": \"Matheus Botelho\",\n \"origem\": \"Instagram\",\n \"celular\": \"11991234567\",\n \"consultor\": \"joao.silva@gmail.com\",\n \"telefone_fixo\": \"1143211234\",\n \"email\": \"matheus.botelho@gmail.com\",\n \"custom\": {\n \"Qual o nome da sua empresa?\": \"Espaço das Cadeiras\",\n \"Qual o seu Cargo?\": \"CEO / Dono do Negócio\",\n \"Qual é o Faturamento Médio Mensal?\": \"Entre R$100 mil a R$300 mil\",\n \"Segmento\": \"Comércio de produtos de mesas\"\n },\n \"utm_creative_format\": \"video\",\n \"utm_product\": \"simplifica_lead_capture\",\n \"utm_term\": \"lead_form\",\n \"utm_medium\": \"paid_social\",\n \"utm_source_platform\": \"facebook_ads\",\n \"utm_audience\": \"lookalike_2pct_br\",\n \"utm_id\": \"fb_oct_2025_lp1\",\n \"utm_content\": \"creative_v1\",\n \"utm_source\": \"facebook\",\n \"utm_campaign\": \"lead_gen_oct_2025\",\n \"utm_marketing_tactic\": \"prospecting\"\n}") .asString(); ``` ```php Payload com campos opcionais e UTM request('POST', 'https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead', [ 'body' => '{ "nome": "Matheus Botelho", "origem": "Instagram", "celular": "11991234567", "consultor": "joao.silva@gmail.com", "telefone_fixo": "1143211234", "email": "matheus.botelho@gmail.com", "custom": { "Qual o nome da sua empresa?": "Espaço das Cadeiras", "Qual o seu Cargo?": "CEO / Dono do Negócio", "Qual é o Faturamento Médio Mensal?": "Entre R$100 mil a R$300 mil", "Segmento": "Comércio de produtos de mesas" }, "utm_creative_format": "video", "utm_product": "simplifica_lead_capture", "utm_term": "lead_form", "utm_medium": "paid_social", "utm_source_platform": "facebook_ads", "utm_audience": "lookalike_2pct_br", "utm_id": "fb_oct_2025_lp1", "utm_content": "creative_v1", "utm_source": "facebook", "utm_campaign": "lead_gen_oct_2025", "utm_marketing_tactic": "prospecting" }', 'headers' => [ 'Content-Type' => 'application/json', 'x-api-key' => '', ], ]); echo $response->getBody(); ``` ```csharp Payload com campos opcionais e UTM using RestSharp; var client = new RestClient("https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead"); var request = new RestRequest(Method.POST); request.AddHeader("x-api-key", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"nome\": \"Matheus Botelho\",\n \"origem\": \"Instagram\",\n \"celular\": \"11991234567\",\n \"consultor\": \"joao.silva@gmail.com\",\n \"telefone_fixo\": \"1143211234\",\n \"email\": \"matheus.botelho@gmail.com\",\n \"custom\": {\n \"Qual o nome da sua empresa?\": \"Espaço das Cadeiras\",\n \"Qual o seu Cargo?\": \"CEO / Dono do Negócio\",\n \"Qual é o Faturamento Médio Mensal?\": \"Entre R$100 mil a R$300 mil\",\n \"Segmento\": \"Comércio de produtos de mesas\"\n },\n \"utm_creative_format\": \"video\",\n \"utm_product\": \"simplifica_lead_capture\",\n \"utm_term\": \"lead_form\",\n \"utm_medium\": \"paid_social\",\n \"utm_source_platform\": \"facebook_ads\",\n \"utm_audience\": \"lookalike_2pct_br\",\n \"utm_id\": \"fb_oct_2025_lp1\",\n \"utm_content\": \"creative_v1\",\n \"utm_source\": \"facebook\",\n \"utm_campaign\": \"lead_gen_oct_2025\",\n \"utm_marketing_tactic\": \"prospecting\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Payload com campos opcionais e UTM import Foundation let headers = [ "x-api-key": "", "Content-Type": "application/json" ] let parameters = [ "nome": "Matheus Botelho", "origem": "Instagram", "celular": "11991234567", "consultor": "joao.silva@gmail.com", "telefone_fixo": "1143211234", "email": "matheus.botelho@gmail.com", "custom": [ "Qual o nome da sua empresa?": "Espaço das Cadeiras", "Qual o seu Cargo?": "CEO / Dono do Negócio", "Qual é o Faturamento Médio Mensal?": "Entre R$100 mil a R$300 mil", "Segmento": "Comércio de produtos de mesas" ], "utm_creative_format": "video", "utm_product": "simplifica_lead_capture", "utm_term": "lead_form", "utm_medium": "paid_social", "utm_source_platform": "facebook_ads", "utm_audience": "lookalike_2pct_br", "utm_id": "fb_oct_2025_lp1", "utm_content": "creative_v1", "utm_source": "facebook", "utm_campaign": "lead_gen_oct_2025", "utm_marketing_tactic": "prospecting" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://gestao.simplificagestao.com.br/ords/gestao/api_lead/lead")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```