Create card
curl --request POST \
--url https://api.connectadesk.com/api/v1/crm/cards \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Pedido #88213",
"crmBoardId": 7,
"crmBoardListId": 31,
"description": "<string>",
"origin": "Instagram",
"assignedToUserId": 3,
"crmBusinessId": 9,
"crmBoardCardStatusId": 2,
"customFields": [
{
"id": "plano",
"value": "Ouro"
}
],
"products": [
{
"sku": "CAM-PRETA-M",
"quantity": 2,
"unitPrice": 149.9
}
]
}
'import requests
url = "https://api.connectadesk.com/api/v1/crm/cards"
payload = {
"name": "Pedido #88213",
"crmBoardId": 7,
"crmBoardListId": 31,
"description": "<string>",
"origin": "Instagram",
"assignedToUserId": 3,
"crmBusinessId": 9,
"crmBoardCardStatusId": 2,
"customFields": [
{
"id": "plano",
"value": "Ouro"
}
],
"products": [
{
"sku": "CAM-PRETA-M",
"quantity": 2,
"unitPrice": 149.9
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Pedido #88213',
crmBoardId: 7,
crmBoardListId: 31,
description: '<string>',
origin: 'Instagram',
assignedToUserId: 3,
crmBusinessId: 9,
crmBoardCardStatusId: 2,
customFields: [{id: 'plano', value: 'Ouro'}],
products: [{sku: 'CAM-PRETA-M', quantity: 2, unitPrice: 149.9}]
})
};
fetch('https://api.connectadesk.com/api/v1/crm/cards', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.connectadesk.com/api/v1/crm/cards",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Pedido #88213',
'crmBoardId' => 7,
'crmBoardListId' => 31,
'description' => '<string>',
'origin' => 'Instagram',
'assignedToUserId' => 3,
'crmBusinessId' => 9,
'crmBoardCardStatusId' => 2,
'customFields' => [
[
'id' => 'plano',
'value' => 'Ouro'
]
],
'products' => [
[
'sku' => 'CAM-PRETA-M',
'quantity' => 2,
'unitPrice' => 149.9
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.connectadesk.com/api/v1/crm/cards"
payload := strings.NewReader("{\n \"name\": \"Pedido #88213\",\n \"crmBoardId\": 7,\n \"crmBoardListId\": 31,\n \"description\": \"<string>\",\n \"origin\": \"Instagram\",\n \"assignedToUserId\": 3,\n \"crmBusinessId\": 9,\n \"crmBoardCardStatusId\": 2,\n \"customFields\": [\n {\n \"id\": \"plano\",\n \"value\": \"Ouro\"\n }\n ],\n \"products\": [\n {\n \"sku\": \"CAM-PRETA-M\",\n \"quantity\": 2,\n \"unitPrice\": 149.9\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.connectadesk.com/api/v1/crm/cards")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Pedido #88213\",\n \"crmBoardId\": 7,\n \"crmBoardListId\": 31,\n \"description\": \"<string>\",\n \"origin\": \"Instagram\",\n \"assignedToUserId\": 3,\n \"crmBusinessId\": 9,\n \"crmBoardCardStatusId\": 2,\n \"customFields\": [\n {\n \"id\": \"plano\",\n \"value\": \"Ouro\"\n }\n ],\n \"products\": [\n {\n \"sku\": \"CAM-PRETA-M\",\n \"quantity\": 2,\n \"unitPrice\": 149.9\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.connectadesk.com/api/v1/crm/cards")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Pedido #88213\",\n \"crmBoardId\": 7,\n \"crmBoardListId\": 31,\n \"description\": \"<string>\",\n \"origin\": \"Instagram\",\n \"assignedToUserId\": 3,\n \"crmBusinessId\": 9,\n \"crmBoardCardStatusId\": 2,\n \"customFields\": [\n {\n \"id\": \"plano\",\n \"value\": \"Ouro\"\n }\n ],\n \"products\": [\n {\n \"sku\": \"CAM-PRETA-M\",\n \"quantity\": 2,\n \"unitPrice\": 149.9\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": 4471,
"name": "Pedido #88213",
"description": "Customer asked for a call back on Monday morning.",
"won": false,
"wonDate": null,
"statusReason": null,
"boardId": 7,
"list": {
"id": 31,
"name": "Aguardando envio"
},
"status": {
"id": 2,
"name": "Em negociação",
"color": "#F59E0B"
},
"business": {
"id": 9,
"name": "Varejo"
},
"origin": {
"id": 5,
"name": "Instagram"
},
"assignedTo": {
"id": 3,
"name": "Gabriel Goulart"
},
"contacts": [
{
"id": 1042,
"name": "Marina Alves",
"number": "5511999999999",
"email": "marina@exemplo.com.br",
"code": "CLI-8842",
"cpfCnpj": "12345678909",
"origin": "Site",
"profilePicUrl": "https://cdn.exemplo.com.br/avatar/1042.jpg",
"isGroup": false,
"instagramUsername": "marina.alves",
"sourceUrl": "https://loja.exemplo.com.br/promo",
"sourceId": "23851234567890123",
"headline": "Coleção de inverno",
"utmSource": "instagram",
"utmMedium": "cpc",
"utmCampaign": "inverno-2026",
"utmId": "6543210987",
"tags": [
{
"id": 3,
"name": "Cliente VIP",
"color": "#6941C6"
}
],
"customFields": [
{
"key": "plano",
"value": "Ouro",
"customFieldId": 91,
"name": "Plano",
"type": "select"
}
],
"lastChannel": {
"id": 11,
"name": "Instagram Loja",
"type": "instagram"
},
"createdAt": "2026-07-14T13:22:05.412Z",
"updatedAt": "2026-08-18T09:41:17.883Z"
}
],
"products": [
{
"id": 812,
"productId": 55,
"name": "Camiseta preta M",
"sku": "CAM-PRETA-M",
"quantity": 2,
"unitPrice": 149.9,
"totalPrice": 299.8
}
],
"productsTotal": 299.8,
"customFields": [
{
"key": "prioridade",
"value": "Alta",
"customFieldId": 77,
"name": "Prioridade",
"type": "select"
}
],
"creationSource": "api",
"due": "2026-09-15T12:00:00.000Z",
"createdAt": "2026-09-08T14:32:10.000Z",
"updatedAt": "2026-09-08T16:02:44.000Z"
}
}{
"error": {
"code": "ERR_CUSTOM_FIELD_NOT_FOUND",
"message": "ERR_CUSTOM_FIELD_NOT_FOUND: prioridade"
}
}{
"error": {
"code": "ERR_API_VALIDATION",
"message": "O parâmetro `application` é obrigatório e aceita \"contact\" ou \"card\"."
}
}Authorizations
API token in the sk_live_… format.
Body
Card name.
"Pedido #88213"
CRM board.
7
Board stage where the card is created.
31
Card description.
Card origin, given by name. If it does not exist yet, it is created.
"Instagram"
Agent in charge of the card. Use the user's id in this company, the same one GET /users returns. The same person has a different id in each company they work for.
3
Business linked to the card.
9
Only cards with this status. Statuses are configured on each stage.
2
CRM custom fields to save on the new card. If any value fails the field type validation, the response is 400 and the card is not created.
Show child attributes
Show child attributes
Products on the card. Each item points to a product already registered in the catalog. The API does not create new products here.
Show child attributes
Show child attributes
Response
Created. Returns the full card, with contacts, customFields and products, including those sent in this request. You do not need to make a GET right after the POST.
A card on a CRM board. The response includes only the fields listed here.
Show child attributes
Show child attributes
{ "id": 4471, "name": "Pedido #88213", "description": "Customer asked for a call back on Monday morning.", "won": false, "wonDate": null, "statusReason": null, "boardId": 7, "list": { "id": 31, "name": "Aguardando envio" }, "status": { "id": 2, "name": "Em negociação", "color": "#F59E0B" }, "business": { "id": 9, "name": "Varejo" }, "origin": { "id": 5, "name": "Instagram" }, "assignedTo": { "id": 3, "name": "Gabriel Goulart" }, "contacts": [ { "id": 1042, "name": "Marina Alves", "number": "5511999999999", "email": "marina@exemplo.com.br", "code": "CLI-8842", "cpfCnpj": "12345678909", "origin": "Site", "profilePicUrl": "https://cdn.exemplo.com.br/avatar/1042.jpg", "isGroup": false, "instagramUsername": "marina.alves", "sourceUrl": "https://loja.exemplo.com.br/promo", "sourceId": "23851234567890123", "headline": "Coleção de inverno", "utmSource": "instagram", "utmMedium": "cpc", "utmCampaign": "inverno-2026", "utmId": "6543210987", "tags": [ { "id": 3, "name": "Cliente VIP", "color": "#6941C6" } ], "customFields": [ { "key": "plano", "value": "Ouro", "customFieldId": 91, "name": "Plano", "type": "select" } ], "lastChannel": { "id": 11, "name": "Instagram Loja", "type": "instagram" }, "createdAt": "2026-07-14T13:22:05.412Z", "updatedAt": "2026-08-18T09:41:17.883Z" } ], "products": [ { "id": 812, "productId": 55, "name": "Camiseta preta M", "sku": "CAM-PRETA-M", "quantity": 2, "unitPrice": 149.9, "totalPrice": 299.8 } ], "productsTotal": 299.8, "customFields": [ { "key": "prioridade", "value": "Alta", "customFieldId": 77, "name": "Prioridade", "type": "select" } ], "creationSource": "api", "due": "2026-09-15T12:00:00.000Z", "createdAt": "2026-09-08T14:32:10.000Z", "updatedAt": "2026-09-08T16:02:44.000Z" }
curl --request POST \
--url https://api.connectadesk.com/api/v1/crm/cards \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Pedido #88213",
"crmBoardId": 7,
"crmBoardListId": 31,
"description": "<string>",
"origin": "Instagram",
"assignedToUserId": 3,
"crmBusinessId": 9,
"crmBoardCardStatusId": 2,
"customFields": [
{
"id": "plano",
"value": "Ouro"
}
],
"products": [
{
"sku": "CAM-PRETA-M",
"quantity": 2,
"unitPrice": 149.9
}
]
}
'import requests
url = "https://api.connectadesk.com/api/v1/crm/cards"
payload = {
"name": "Pedido #88213",
"crmBoardId": 7,
"crmBoardListId": 31,
"description": "<string>",
"origin": "Instagram",
"assignedToUserId": 3,
"crmBusinessId": 9,
"crmBoardCardStatusId": 2,
"customFields": [
{
"id": "plano",
"value": "Ouro"
}
],
"products": [
{
"sku": "CAM-PRETA-M",
"quantity": 2,
"unitPrice": 149.9
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Pedido #88213',
crmBoardId: 7,
crmBoardListId: 31,
description: '<string>',
origin: 'Instagram',
assignedToUserId: 3,
crmBusinessId: 9,
crmBoardCardStatusId: 2,
customFields: [{id: 'plano', value: 'Ouro'}],
products: [{sku: 'CAM-PRETA-M', quantity: 2, unitPrice: 149.9}]
})
};
fetch('https://api.connectadesk.com/api/v1/crm/cards', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.connectadesk.com/api/v1/crm/cards",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Pedido #88213',
'crmBoardId' => 7,
'crmBoardListId' => 31,
'description' => '<string>',
'origin' => 'Instagram',
'assignedToUserId' => 3,
'crmBusinessId' => 9,
'crmBoardCardStatusId' => 2,
'customFields' => [
[
'id' => 'plano',
'value' => 'Ouro'
]
],
'products' => [
[
'sku' => 'CAM-PRETA-M',
'quantity' => 2,
'unitPrice' => 149.9
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.connectadesk.com/api/v1/crm/cards"
payload := strings.NewReader("{\n \"name\": \"Pedido #88213\",\n \"crmBoardId\": 7,\n \"crmBoardListId\": 31,\n \"description\": \"<string>\",\n \"origin\": \"Instagram\",\n \"assignedToUserId\": 3,\n \"crmBusinessId\": 9,\n \"crmBoardCardStatusId\": 2,\n \"customFields\": [\n {\n \"id\": \"plano\",\n \"value\": \"Ouro\"\n }\n ],\n \"products\": [\n {\n \"sku\": \"CAM-PRETA-M\",\n \"quantity\": 2,\n \"unitPrice\": 149.9\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.connectadesk.com/api/v1/crm/cards")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Pedido #88213\",\n \"crmBoardId\": 7,\n \"crmBoardListId\": 31,\n \"description\": \"<string>\",\n \"origin\": \"Instagram\",\n \"assignedToUserId\": 3,\n \"crmBusinessId\": 9,\n \"crmBoardCardStatusId\": 2,\n \"customFields\": [\n {\n \"id\": \"plano\",\n \"value\": \"Ouro\"\n }\n ],\n \"products\": [\n {\n \"sku\": \"CAM-PRETA-M\",\n \"quantity\": 2,\n \"unitPrice\": 149.9\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.connectadesk.com/api/v1/crm/cards")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Pedido #88213\",\n \"crmBoardId\": 7,\n \"crmBoardListId\": 31,\n \"description\": \"<string>\",\n \"origin\": \"Instagram\",\n \"assignedToUserId\": 3,\n \"crmBusinessId\": 9,\n \"crmBoardCardStatusId\": 2,\n \"customFields\": [\n {\n \"id\": \"plano\",\n \"value\": \"Ouro\"\n }\n ],\n \"products\": [\n {\n \"sku\": \"CAM-PRETA-M\",\n \"quantity\": 2,\n \"unitPrice\": 149.9\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": 4471,
"name": "Pedido #88213",
"description": "Customer asked for a call back on Monday morning.",
"won": false,
"wonDate": null,
"statusReason": null,
"boardId": 7,
"list": {
"id": 31,
"name": "Aguardando envio"
},
"status": {
"id": 2,
"name": "Em negociação",
"color": "#F59E0B"
},
"business": {
"id": 9,
"name": "Varejo"
},
"origin": {
"id": 5,
"name": "Instagram"
},
"assignedTo": {
"id": 3,
"name": "Gabriel Goulart"
},
"contacts": [
{
"id": 1042,
"name": "Marina Alves",
"number": "5511999999999",
"email": "marina@exemplo.com.br",
"code": "CLI-8842",
"cpfCnpj": "12345678909",
"origin": "Site",
"profilePicUrl": "https://cdn.exemplo.com.br/avatar/1042.jpg",
"isGroup": false,
"instagramUsername": "marina.alves",
"sourceUrl": "https://loja.exemplo.com.br/promo",
"sourceId": "23851234567890123",
"headline": "Coleção de inverno",
"utmSource": "instagram",
"utmMedium": "cpc",
"utmCampaign": "inverno-2026",
"utmId": "6543210987",
"tags": [
{
"id": 3,
"name": "Cliente VIP",
"color": "#6941C6"
}
],
"customFields": [
{
"key": "plano",
"value": "Ouro",
"customFieldId": 91,
"name": "Plano",
"type": "select"
}
],
"lastChannel": {
"id": 11,
"name": "Instagram Loja",
"type": "instagram"
},
"createdAt": "2026-07-14T13:22:05.412Z",
"updatedAt": "2026-08-18T09:41:17.883Z"
}
],
"products": [
{
"id": 812,
"productId": 55,
"name": "Camiseta preta M",
"sku": "CAM-PRETA-M",
"quantity": 2,
"unitPrice": 149.9,
"totalPrice": 299.8
}
],
"productsTotal": 299.8,
"customFields": [
{
"key": "prioridade",
"value": "Alta",
"customFieldId": 77,
"name": "Prioridade",
"type": "select"
}
],
"creationSource": "api",
"due": "2026-09-15T12:00:00.000Z",
"createdAt": "2026-09-08T14:32:10.000Z",
"updatedAt": "2026-09-08T16:02:44.000Z"
}
}{
"error": {
"code": "ERR_CUSTOM_FIELD_NOT_FOUND",
"message": "ERR_CUSTOM_FIELD_NOT_FOUND: prioridade"
}
}{
"error": {
"code": "ERR_API_VALIDATION",
"message": "O parâmetro `application` é obrigatório e aceita \"contact\" ou \"card\"."
}
}
