bfocus 0.2.1__tar.gz → 0.2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: bfocus
3
- Version: 0.2.1
3
+ Version: 0.2.3
4
4
  Summary: SDK oficial em Python da API pública do bFocus: clientes, produtos, release notes, base de conhecimento e agentes de IA.
5
5
  Project-URL: Homepage, https://bfocus.com.br
6
6
  Project-URL: Repository, https://github.com/bernisoftware/bfocus-python
@@ -196,7 +196,11 @@ bf.people.upsert("erp-1042", "app-77", access=True) # devolve o acesso
196
196
 
197
197
  - **Nunca duplica**: se o e-mail (ou o telefone) já pertence a uma pessoa que chegou por e-mail
198
198
  ou por outro sistema, ela é **adotada** e ganha o seu `external_id`.
199
- - A mesma pessoa informada com **outro cliente** é transferida para ele.
199
+ - A mesma pessoa informada com **outro cliente** NÃO é transferida: ela é **ligada** também a
200
+ esse cliente e a resposta volta com `linked=True`. O cadastro é único e a mesma pessoa circula
201
+ por vários clientes e vários produtos.
202
+ - **O acesso é do vínculo.** `delete` (e `access=False`) tira o acesso dela NESTE cliente, não nos
203
+ outros: `unlinked=True` na resposta quer dizer que ela segue ativa em algum outro.
200
204
  - `delete` **retira o acesso** (devolve a pessoa com `access=False`); ela continua no histórico
201
205
  de chamados e conversas. Um `upsert` com `access=True` devolve o acesso.
202
206
  - Como nos outros upserts, só o que você passa muda; `name` é obrigatório ao criar.
@@ -169,7 +169,11 @@ bf.people.upsert("erp-1042", "app-77", access=True) # devolve o acesso
169
169
 
170
170
  - **Nunca duplica**: se o e-mail (ou o telefone) já pertence a uma pessoa que chegou por e-mail
171
171
  ou por outro sistema, ela é **adotada** e ganha o seu `external_id`.
172
- - A mesma pessoa informada com **outro cliente** é transferida para ele.
172
+ - A mesma pessoa informada com **outro cliente** NÃO é transferida: ela é **ligada** também a
173
+ esse cliente e a resposta volta com `linked=True`. O cadastro é único e a mesma pessoa circula
174
+ por vários clientes e vários produtos.
175
+ - **O acesso é do vínculo.** `delete` (e `access=False`) tira o acesso dela NESTE cliente, não nos
176
+ outros: `unlinked=True` na resposta quer dizer que ela segue ativa em algum outro.
173
177
  - `delete` **retira o acesso** (devolve a pessoa com `access=False`); ela continua no histórico
174
178
  de chamados e conversas. Um `upsert` com `access=True` devolve o acesso.
175
179
  - Como nos outros upserts, só o que você passa muda; `name` é obrigatório ao criar.
@@ -52,6 +52,7 @@ from .types import (
52
52
  Person,
53
53
  PersonBatchItem,
54
54
  PersonIdentifiers,
55
+ PersonRevokeResult,
55
56
  PersonUpsertResult,
56
57
  Product,
57
58
  ProductRef,
@@ -420,6 +421,11 @@ class Customers(_Resource):
420
421
  *,
421
422
  name: MaybeUnset[Optional[str]] = UNSET,
422
423
  document: MaybeUnset[Optional[str]] = UNSET,
424
+ kind: MaybeUnset[Optional[str]] = UNSET,
425
+ legal_name: MaybeUnset[Optional[str]] = UNSET,
426
+ state_registration: MaybeUnset[Optional[str]] = UNSET,
427
+ municipal_registration: MaybeUnset[Optional[str]] = UNSET,
428
+ id_document: MaybeUnset[Optional[str]] = UNSET,
423
429
  email: MaybeUnset[Optional[str]] = UNSET,
424
430
  phone: MaybeUnset[Optional[str]] = UNSET,
425
431
  website: MaybeUnset[Optional[str]] = UNSET,
@@ -432,12 +438,22 @@ class Customers(_Resource):
432
438
 
433
439
  ``PUT /customers/{external_id}``. Só os campos informados mudam; ``None`` limpa.
434
440
  ``custom_fields``, quando enviado, **substitui** a lista inteira.
441
+
442
+ ``kind`` é o tipo do CONTRATANTE: ``"pj"`` (empresa) ou ``"pf"`` (pessoa física). Não
443
+ enviando, o bFocus deduz do documento. ``legal_name`` (razão social),
444
+ ``state_registration`` e ``municipal_registration`` são de PJ; ``id_document`` (RG), de
445
+ PF — mandar o do outro tipo não quebra nada, só não faz sentido.
435
446
  """
436
447
  ext = path_segment(external_id, "external_id")
437
448
  body = compact(
438
449
  {
439
450
  "name": name,
440
451
  "document": document,
452
+ "kind": kind,
453
+ "legal_name": legal_name,
454
+ "state_registration": state_registration,
455
+ "municipal_registration": municipal_registration,
456
+ "id_document": id_document,
441
457
  "email": email,
442
458
  "phone": phone,
443
459
  "website": website,
@@ -654,7 +670,8 @@ class People(_Resource):
654
670
  ``PUT /customers/{customer_external_id}/people/{person_external_id}``. O ``status``
655
671
  do retorno diz ``"created"``, ``"updated"`` ou ``"unchanged"``. Se o e-mail (ou o
656
672
  telefone) já pertence a uma pessoa que chegou por outro caminho, ela é **adotada**
657
- (nunca duplicada); a mesma pessoa informada com outro cliente é transferida.
673
+ (nunca duplicada); a mesma pessoa informada com outro cliente é LIGADA a ele também
674
+ (cadastro único em N clientes) e ``linked`` volta ``True``.
658
675
 
659
676
  Args:
660
677
  name: Obrigatório ao criar.
@@ -711,12 +728,13 @@ class People(_Resource):
711
728
  *,
712
729
  idempotency_key: Optional[str] = None,
713
730
  timeout: Optional[float] = None,
714
- ) -> Person:
715
- """Retira o acesso da pessoa (devolve a pessoa com ``access=False``).
731
+ ) -> PersonRevokeResult:
732
+ """Retira o acesso da pessoa NESTE cliente (devolve a pessoa com ``access=False``).
716
733
 
717
734
  ``DELETE /customers/{customer_external_id}/people/{person_external_id}``. A pessoa
718
735
  continua no histórico (chamados, conversas); :meth:`upsert` com ``access=True``
719
- devolve o acesso.
736
+ devolve o acesso. O acesso é DO VÍNCULO: se ela também é de outros clientes, continua
737
+ ativa neles e a resposta volta com ``unlinked=True``.
720
738
  """
721
739
  cext = path_segment(customer_external_id, "customer_external_id")
722
740
  pid = path_segment(person_external_id, "person_external_id")
@@ -724,7 +742,7 @@ class People(_Resource):
724
742
  "DELETE", f"/customers/{cext}/people/{pid}",
725
743
  idempotency_key=idempotency_key, timeout=timeout,
726
744
  )
727
- return cast(Person, data)
745
+ return cast(PersonRevokeResult, data)
728
746
 
729
747
  def batch(
730
748
  self,
@@ -1,3 +1,3 @@
1
1
  """Versão da SDK. O ``scripts/release-sdks.sh`` bumpa esta linha e o ``pyproject.toml``."""
2
2
 
3
- __version__ = "0.2.1"
3
+ __version__ = "0.2.3"
@@ -36,6 +36,7 @@ __all__ = [
36
36
  "AgentPreview",
37
37
  "Deleted",
38
38
  "Person",
39
+ "PersonRevokeResult",
39
40
  "PersonUpsertResult",
40
41
  "Identifier",
41
42
  "CustomerWithIdentifiers",
@@ -220,7 +221,17 @@ class CustomField(TypedDict):
220
221
  class Customer(TypedDict):
221
222
  id: str
222
223
  external_id: str
224
+ #: O nome usado em tudo. Na PJ é o nome fantasia; a razão social fica em ``legal_name``.
223
225
  name: str
226
+ #: Tipo do CONTRATANTE: ``"pj"`` (empresa) ou ``"pf"`` (pessoa física); ``None`` = não dá
227
+ #: para saber. Cliente é a CONTA, não a pessoa: uma conta PF pode ter várias pessoas dentro.
228
+ kind: Optional[Literal["pj", "pf"]]
229
+ #: Só PJ.
230
+ legal_name: Optional[str]
231
+ state_registration: Optional[str]
232
+ municipal_registration: Optional[str]
233
+ #: Só PF: RG e órgão emissor (texto livre — o formato varia por estado).
234
+ id_document: Optional[str]
224
235
  document: Optional[str]
225
236
  email: Optional[str]
226
237
  phone: Optional[str]
@@ -228,6 +239,12 @@ class Customer(TypedDict):
228
239
  notes: Optional[str]
229
240
  custom_fields: List[CustomField]
230
241
  is_active: bool
242
+ #: Logotipo do cliente, como a equipe subiu no bFocus (``None`` = sem logotipo).
243
+ logo_url: Optional[str]
244
+ #: E-mails adicionais do cliente (o principal é ``email``).
245
+ extra_emails: List[str]
246
+ #: Telefones adicionais do cliente (o principal é ``phone``).
247
+ extra_phones: List[str]
231
248
  created_at: Optional[str]
232
249
  updated_at: Optional[str]
233
250
 
@@ -385,12 +402,30 @@ class Person(TypedDict):
385
402
  is_primary: bool
386
403
  customer_external_id: str
387
404
  custom_fields: List[CustomField]
405
+ #: Identificadores EXTRAS desta pessoa: os outros ids pelos quais ela também é encontrada.
406
+ #: É por aqui que você descobre que o id do SEU sistema virou apelido de outra ficha.
407
+ identifiers: List["Identifier"]
388
408
 
389
409
 
390
410
  class PersonUpsertResult(Person):
391
- """Retorno de ``people.upsert``: a pessoa + ``status``."""
411
+ """Retorno de ``people.upsert``: a pessoa + ``status`` + ``linked``."""
392
412
 
393
413
  status: Literal["created", "updated", "unchanged"]
414
+ #: ``True`` = a pessoa JÁ EXISTIA em outro cliente e este envio a ligou também a este.
415
+ #: O cadastro é único e ela circula pelos dois; nada foi transferido nem duplicado.
416
+ linked: bool
417
+ #: Preenchido quando o id que você enviou é um APELIDO: este é o principal do cadastro.
418
+ merged_into: Optional[str]
419
+
420
+
421
+ class PersonRevokeResult(Person):
422
+ """Retorno de ``people.delete``: a pessoa + se ela apenas SAIU deste cliente.
423
+
424
+ ``unlinked=True`` = ela continua com acesso, porque também é de outros clientes; o acesso é
425
+ do vínculo. ``False`` = era só deste cliente e foi desligada, como sempre.
426
+ """
427
+
428
+ unlinked: bool
394
429
 
395
430
 
396
431
  class Identifier(TypedDict):
@@ -424,6 +459,8 @@ class BatchItemResult(TypedDict):
424
459
  status: Literal["created", "updated", "unchanged", "error"]
425
460
  external_id: Optional[str]
426
461
  merged_into: Optional[str]
462
+ #: A pessoa já existia em outro cliente e este item a ligou também a este (cadastro único).
463
+ linked: bool
427
464
  error: Optional[str]
428
465
  code: Optional[int]
429
466
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bfocus"
7
- version = "0.2.1"
7
+ version = "0.2.3"
8
8
  description = "SDK oficial em Python da API pública do bFocus: clientes, produtos, release notes, base de conhecimento e agentes de IA."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -54,6 +54,11 @@
54
54
  "id": "00000000-0000-4000-8000-000000000001",
55
55
  "external_id": "ERP 1042",
56
56
  "name": "Padaria Estrela",
57
+ "kind": null,
58
+ "legal_name": null,
59
+ "state_registration": null,
60
+ "municipal_registration": null,
61
+ "id_document": null,
57
62
  "document": null,
58
63
  "email": "contato@padaria.example",
59
64
  "phone": null,
@@ -69,6 +74,9 @@
69
74
  }
70
75
  ],
71
76
  "is_active": true,
77
+ "logo_url": null,
78
+ "extra_emails": [],
79
+ "extra_phones": [],
72
80
  "created_at": "2026-09-13T12:00:00+00:00",
73
81
  "updated_at": "2026-09-13T12:00:00+00:00"
74
82
  },
@@ -82,6 +90,11 @@
82
90
  "id": "00000000-0000-4000-8000-000000000001",
83
91
  "external_id": "ERP 1042",
84
92
  "name": "Padaria Estrela",
93
+ "kind": null,
94
+ "legal_name": null,
95
+ "state_registration": null,
96
+ "municipal_registration": null,
97
+ "id_document": null,
85
98
  "document": null,
86
99
  "email": "contato@padaria.example",
87
100
  "phone": null,
@@ -97,6 +110,9 @@
97
110
  }
98
111
  ],
99
112
  "is_active": true,
113
+ "logo_url": null,
114
+ "extra_emails": [],
115
+ "extra_phones": [],
100
116
  "created_at": "2026-09-13T12:00:00+00:00",
101
117
  "updated_at": "2026-09-13T12:00:00+00:00"
102
118
  }
@@ -129,6 +145,11 @@
129
145
  "id": "00000000-0000-4000-8000-000000000001",
130
146
  "external_id": "ERP 1042",
131
147
  "name": "Padaria Estrela",
148
+ "kind": null,
149
+ "legal_name": null,
150
+ "state_registration": null,
151
+ "municipal_registration": null,
152
+ "id_document": null,
132
153
  "document": null,
133
154
  "email": "contato@padaria.example",
134
155
  "phone": null,
@@ -144,6 +165,9 @@
144
165
  }
145
166
  ],
146
167
  "is_active": true,
168
+ "logo_url": null,
169
+ "extra_emails": [],
170
+ "extra_phones": [],
147
171
  "created_at": "2026-09-13T12:00:00+00:00",
148
172
  "updated_at": "2026-09-13T12:00:00+00:00"
149
173
  },
@@ -157,6 +181,11 @@
157
181
  "id": "00000000-0000-4000-8000-000000000001",
158
182
  "external_id": "ERP 1042",
159
183
  "name": "Padaria Estrela",
184
+ "kind": null,
185
+ "legal_name": null,
186
+ "state_registration": null,
187
+ "municipal_registration": null,
188
+ "id_document": null,
160
189
  "document": null,
161
190
  "email": "contato@padaria.example",
162
191
  "phone": null,
@@ -172,6 +201,9 @@
172
201
  }
173
202
  ],
174
203
  "is_active": true,
204
+ "logo_url": null,
205
+ "extra_emails": [],
206
+ "extra_phones": [],
175
207
  "created_at": "2026-09-13T12:00:00+00:00",
176
208
  "updated_at": "2026-09-13T12:00:00+00:00"
177
209
  }
@@ -201,6 +233,11 @@
201
233
  "id": "00000000-0000-4000-8000-000000000001",
202
234
  "external_id": "ERP 1042",
203
235
  "name": "Padaria Estrela",
236
+ "kind": null,
237
+ "legal_name": null,
238
+ "state_registration": null,
239
+ "municipal_registration": null,
240
+ "id_document": null,
204
241
  "document": null,
205
242
  "email": "contato@padaria.example",
206
243
  "phone": null,
@@ -216,6 +253,9 @@
216
253
  }
217
254
  ],
218
255
  "is_active": true,
256
+ "logo_url": null,
257
+ "extra_emails": [],
258
+ "extra_phones": [],
219
259
  "created_at": "2026-09-13T12:00:00+00:00",
220
260
  "updated_at": "2026-09-13T12:00:00+00:00"
221
261
  },
@@ -229,6 +269,11 @@
229
269
  "id": "00000000-0000-4000-8000-000000000001",
230
270
  "external_id": "ERP 1042",
231
271
  "name": "Padaria Estrela",
272
+ "kind": null,
273
+ "legal_name": null,
274
+ "state_registration": null,
275
+ "municipal_registration": null,
276
+ "id_document": null,
232
277
  "document": null,
233
278
  "email": "contato@padaria.example",
234
279
  "phone": null,
@@ -244,6 +289,9 @@
244
289
  }
245
290
  ],
246
291
  "is_active": true,
292
+ "logo_url": null,
293
+ "extra_emails": [],
294
+ "extra_phones": [],
247
295
  "created_at": "2026-09-13T12:00:00+00:00",
248
296
  "updated_at": "2026-09-13T12:00:00+00:00"
249
297
  }
@@ -320,6 +368,11 @@
320
368
  "id": "00000000-0000-4000-8000-000000000002",
321
369
  "external_id": "ERP 1043",
322
370
  "name": "Mercado Sol",
371
+ "kind": null,
372
+ "legal_name": null,
373
+ "state_registration": null,
374
+ "municipal_registration": null,
375
+ "id_document": null,
323
376
  "document": null,
324
377
  "email": "contato@padaria.example",
325
378
  "phone": null,
@@ -327,6 +380,9 @@
327
380
  "notes": null,
328
381
  "custom_fields": [],
329
382
  "is_active": true,
383
+ "logo_url": null,
384
+ "extra_emails": [],
385
+ "extra_phones": [],
330
386
  "created_at": "2026-09-13T12:00:00+00:00",
331
387
  "updated_at": "2026-09-13T12:00:00+00:00"
332
388
  }
@@ -349,6 +405,11 @@
349
405
  "id": "00000000-0000-4000-8000-000000000002",
350
406
  "external_id": "ERP 1043",
351
407
  "name": "Mercado Sol",
408
+ "kind": null,
409
+ "legal_name": null,
410
+ "state_registration": null,
411
+ "municipal_registration": null,
412
+ "id_document": null,
352
413
  "document": null,
353
414
  "email": "contato@padaria.example",
354
415
  "phone": null,
@@ -356,6 +417,9 @@
356
417
  "notes": null,
357
418
  "custom_fields": [],
358
419
  "is_active": true,
420
+ "logo_url": null,
421
+ "extra_emails": [],
422
+ "extra_phones": [],
359
423
  "created_at": "2026-09-13T12:00:00+00:00",
360
424
  "updated_at": "2026-09-13T12:00:00+00:00"
361
425
  }
@@ -395,6 +459,11 @@
395
459
  "id": "00000000-0000-4000-8000-000000000001",
396
460
  "external_id": "ERP 1042",
397
461
  "name": "Padaria Estrela",
462
+ "kind": null,
463
+ "legal_name": null,
464
+ "state_registration": null,
465
+ "municipal_registration": null,
466
+ "id_document": null,
398
467
  "document": null,
399
468
  "email": "contato@padaria.example",
400
469
  "phone": null,
@@ -410,6 +479,9 @@
410
479
  }
411
480
  ],
412
481
  "is_active": true,
482
+ "logo_url": null,
483
+ "extra_emails": [],
484
+ "extra_phones": [],
413
485
  "created_at": "2026-09-13T12:00:00+00:00",
414
486
  "updated_at": "2026-09-13T12:00:00+00:00"
415
487
  }
@@ -445,6 +517,11 @@
445
517
  "id": "00000000-0000-4000-8000-000000000002",
446
518
  "external_id": "ERP 1043",
447
519
  "name": "Mercado Sol",
520
+ "kind": null,
521
+ "legal_name": null,
522
+ "state_registration": null,
523
+ "municipal_registration": null,
524
+ "id_document": null,
448
525
  "document": null,
449
526
  "email": "contato@padaria.example",
450
527
  "phone": null,
@@ -452,6 +529,9 @@
452
529
  "notes": null,
453
530
  "custom_fields": [],
454
531
  "is_active": true,
532
+ "logo_url": null,
533
+ "extra_emails": [],
534
+ "extra_phones": [],
455
535
  "created_at": "2026-09-13T12:00:00+00:00",
456
536
  "updated_at": "2026-09-13T12:00:00+00:00"
457
537
  }
@@ -473,6 +553,11 @@
473
553
  "id": "00000000-0000-4000-8000-000000000001",
474
554
  "external_id": "ERP 1042",
475
555
  "name": "Padaria Estrela",
556
+ "kind": null,
557
+ "legal_name": null,
558
+ "state_registration": null,
559
+ "municipal_registration": null,
560
+ "id_document": null,
476
561
  "document": null,
477
562
  "email": "contato@padaria.example",
478
563
  "phone": null,
@@ -488,6 +573,9 @@
488
573
  }
489
574
  ],
490
575
  "is_active": true,
576
+ "logo_url": null,
577
+ "extra_emails": [],
578
+ "extra_phones": [],
491
579
  "created_at": "2026-09-13T12:00:00+00:00",
492
580
  "updated_at": "2026-09-13T12:00:00+00:00"
493
581
  },
@@ -495,6 +583,11 @@
495
583
  "id": "00000000-0000-4000-8000-000000000002",
496
584
  "external_id": "ERP 1043",
497
585
  "name": "Mercado Sol",
586
+ "kind": null,
587
+ "legal_name": null,
588
+ "state_registration": null,
589
+ "municipal_registration": null,
590
+ "id_document": null,
498
591
  "document": null,
499
592
  "email": "contato@padaria.example",
500
593
  "phone": null,
@@ -502,6 +595,9 @@
502
595
  "notes": null,
503
596
  "custom_fields": [],
504
597
  "is_active": true,
598
+ "logo_url": null,
599
+ "extra_emails": [],
600
+ "extra_phones": [],
505
601
  "created_at": "2026-09-13T12:00:00+00:00",
506
602
  "updated_at": "2026-09-13T12:00:00+00:00"
507
603
  }
@@ -1029,6 +1125,9 @@
1029
1125
  "visibility": "interno"
1030
1126
  }
1031
1127
  ],
1128
+ "identifiers": [],
1129
+ "linked": false,
1130
+ "merged_into": null,
1032
1131
  "status": "created"
1033
1132
  },
1034
1133
  "message": "Executado com sucesso"
@@ -1054,6 +1153,9 @@
1054
1153
  "visibility": "interno"
1055
1154
  }
1056
1155
  ],
1156
+ "identifiers": [],
1157
+ "linked": false,
1158
+ "merged_into": null,
1057
1159
  "status": "created"
1058
1160
  }
1059
1161
  }
@@ -1109,6 +1211,9 @@
1109
1211
  "visibility": "interno"
1110
1212
  }
1111
1213
  ],
1214
+ "identifiers": [],
1215
+ "linked": false,
1216
+ "merged_into": null,
1112
1217
  "status": "updated"
1113
1218
  },
1114
1219
  "message": "Executado com sucesso"
@@ -1134,6 +1239,9 @@
1134
1239
  "visibility": "interno"
1135
1240
  }
1136
1241
  ],
1242
+ "identifiers": [],
1243
+ "linked": false,
1244
+ "merged_into": null,
1137
1245
  "status": "updated"
1138
1246
  }
1139
1247
  }
@@ -1221,7 +1329,8 @@
1221
1329
  "value": "4471",
1222
1330
  "visibility": "interno"
1223
1331
  }
1224
- ]
1332
+ ],
1333
+ "identifiers": []
1225
1334
  },
1226
1335
  {
1227
1336
  "external_id": null,
@@ -1232,7 +1341,8 @@
1232
1341
  "access": false,
1233
1342
  "is_primary": false,
1234
1343
  "customer_external_id": "ERP 1042",
1235
- "custom_fields": []
1344
+ "custom_fields": [],
1345
+ "identifiers": []
1236
1346
  }
1237
1347
  ],
1238
1348
  "message": "Executado com sucesso"
@@ -1258,7 +1368,8 @@
1258
1368
  "value": "4471",
1259
1369
  "visibility": "interno"
1260
1370
  }
1261
- ]
1371
+ ],
1372
+ "identifiers": []
1262
1373
  },
1263
1374
  {
1264
1375
  "external_id": null,
@@ -1269,7 +1380,8 @@
1269
1380
  "access": false,
1270
1381
  "is_primary": false,
1271
1382
  "customer_external_id": "ERP 1042",
1272
- "custom_fields": []
1383
+ "custom_fields": [],
1384
+ "identifiers": []
1273
1385
  }
1274
1386
  ]
1275
1387
  }
@@ -1311,7 +1423,9 @@
1311
1423
  "value": "4471",
1312
1424
  "visibility": "interno"
1313
1425
  }
1314
- ]
1426
+ ],
1427
+ "identifiers": [],
1428
+ "unlinked": false
1315
1429
  },
1316
1430
  "message": "Acesso retirado"
1317
1431
  }
@@ -1335,7 +1449,9 @@
1335
1449
  "value": "4471",
1336
1450
  "visibility": "interno"
1337
1451
  }
1338
- ]
1452
+ ],
1453
+ "identifiers": [],
1454
+ "unlinked": false
1339
1455
  }
1340
1456
  }
1341
1457
  },
@@ -1427,6 +1543,7 @@
1427
1543
  "status": "updated",
1428
1544
  "external_id": "ERP 1042",
1429
1545
  "merged_into": null,
1546
+ "linked": false,
1430
1547
  "error": null,
1431
1548
  "code": null
1432
1549
  },
@@ -1435,6 +1552,7 @@
1435
1552
  "status": "error",
1436
1553
  "external_id": "ERP 1044",
1437
1554
  "merged_into": null,
1555
+ "linked": false,
1438
1556
  "error": "NAME_REQUIRED",
1439
1557
  "code": 422
1440
1558
  }
@@ -1459,6 +1577,7 @@
1459
1577
  "status": "updated",
1460
1578
  "external_id": "ERP 1042",
1461
1579
  "merged_into": null,
1580
+ "linked": false,
1462
1581
  "error": null,
1463
1582
  "code": null
1464
1583
  },
@@ -1467,6 +1586,7 @@
1467
1586
  "status": "error",
1468
1587
  "external_id": "ERP 1044",
1469
1588
  "merged_into": null,
1589
+ "linked": false,
1470
1590
  "error": "NAME_REQUIRED",
1471
1591
  "code": 422
1472
1592
  }
@@ -1558,6 +1678,7 @@
1558
1678
  "status": "created",
1559
1679
  "external_id": "app-77",
1560
1680
  "merged_into": null,
1681
+ "linked": false,
1561
1682
  "error": null,
1562
1683
  "code": null
1563
1684
  },
@@ -1566,6 +1687,7 @@
1566
1687
  "status": "error",
1567
1688
  "external_id": "app-78",
1568
1689
  "merged_into": null,
1690
+ "linked": false,
1569
1691
  "error": "CUSTOMER_NOT_FOUND",
1570
1692
  "code": 404
1571
1693
  }
@@ -1590,6 +1712,7 @@
1590
1712
  "status": "created",
1591
1713
  "external_id": "app-77",
1592
1714
  "merged_into": null,
1715
+ "linked": false,
1593
1716
  "error": null,
1594
1717
  "code": null
1595
1718
  },
@@ -1598,6 +1721,7 @@
1598
1721
  "status": "error",
1599
1722
  "external_id": "app-78",
1600
1723
  "merged_into": null,
1724
+ "linked": false,
1601
1725
  "error": "CUSTOMER_NOT_FOUND",
1602
1726
  "code": 404
1603
1727
  }
@@ -1658,6 +1782,11 @@
1658
1782
  "id": "00000000-0000-4000-8000-000000000001",
1659
1783
  "external_id": "ERP 1042",
1660
1784
  "name": "Padaria Estrela",
1785
+ "kind": null,
1786
+ "legal_name": null,
1787
+ "state_registration": null,
1788
+ "municipal_registration": null,
1789
+ "id_document": null,
1661
1790
  "document": null,
1662
1791
  "email": "contato@padaria.example",
1663
1792
  "phone": null,
@@ -1673,6 +1802,9 @@
1673
1802
  }
1674
1803
  ],
1675
1804
  "is_active": true,
1805
+ "logo_url": null,
1806
+ "extra_emails": [],
1807
+ "extra_phones": [],
1676
1808
  "created_at": "2026-09-13T12:00:00+00:00",
1677
1809
  "updated_at": "2026-09-13T12:00:00+00:00",
1678
1810
  "identifiers": [
@@ -1693,6 +1825,11 @@
1693
1825
  "id": "00000000-0000-4000-8000-000000000001",
1694
1826
  "external_id": "ERP 1042",
1695
1827
  "name": "Padaria Estrela",
1828
+ "kind": null,
1829
+ "legal_name": null,
1830
+ "state_registration": null,
1831
+ "municipal_registration": null,
1832
+ "id_document": null,
1696
1833
  "document": null,
1697
1834
  "email": "contato@padaria.example",
1698
1835
  "phone": null,
@@ -1708,6 +1845,9 @@
1708
1845
  }
1709
1846
  ],
1710
1847
  "is_active": true,
1848
+ "logo_url": null,
1849
+ "extra_emails": [],
1850
+ "extra_phones": [],
1711
1851
  "created_at": "2026-09-13T12:00:00+00:00",
1712
1852
  "updated_at": "2026-09-13T12:00:00+00:00",
1713
1853
  "identifiers": [
@@ -1791,6 +1931,11 @@
1791
1931
  "id": "00000000-0000-4000-8000-000000000001",
1792
1932
  "external_id": "ERP 1042",
1793
1933
  "name": "Padaria Estrela",
1934
+ "kind": null,
1935
+ "legal_name": null,
1936
+ "state_registration": null,
1937
+ "municipal_registration": null,
1938
+ "id_document": null,
1794
1939
  "document": null,
1795
1940
  "email": "contato@padaria.example",
1796
1941
  "phone": null,
@@ -1806,6 +1951,9 @@
1806
1951
  }
1807
1952
  ],
1808
1953
  "is_active": true,
1954
+ "logo_url": null,
1955
+ "extra_emails": [],
1956
+ "extra_phones": [],
1809
1957
  "created_at": "2026-09-13T12:00:00+00:00",
1810
1958
  "updated_at": "2026-09-13T12:00:00+00:00",
1811
1959
  "identifiers": []
@@ -1820,6 +1968,11 @@
1820
1968
  "id": "00000000-0000-4000-8000-000000000001",
1821
1969
  "external_id": "ERP 1042",
1822
1970
  "name": "Padaria Estrela",
1971
+ "kind": null,
1972
+ "legal_name": null,
1973
+ "state_registration": null,
1974
+ "municipal_registration": null,
1975
+ "id_document": null,
1823
1976
  "document": null,
1824
1977
  "email": "contato@padaria.example",
1825
1978
  "phone": null,
@@ -1835,6 +1988,9 @@
1835
1988
  }
1836
1989
  ],
1837
1990
  "is_active": true,
1991
+ "logo_url": null,
1992
+ "extra_emails": [],
1993
+ "extra_phones": [],
1838
1994
  "created_at": "2026-09-13T12:00:00+00:00",
1839
1995
  "updated_at": "2026-09-13T12:00:00+00:00",
1840
1996
  "identifiers": []
@@ -3581,6 +3737,11 @@
3581
3737
  "id": "00000000-0000-4000-8000-000000000001",
3582
3738
  "external_id": "ERP 1042",
3583
3739
  "name": "Padaria Estrela",
3740
+ "kind": null,
3741
+ "legal_name": null,
3742
+ "state_registration": null,
3743
+ "municipal_registration": null,
3744
+ "id_document": null,
3584
3745
  "document": null,
3585
3746
  "email": "contato@padaria.example",
3586
3747
  "phone": null,
@@ -3596,6 +3757,9 @@
3596
3757
  }
3597
3758
  ],
3598
3759
  "is_active": true,
3760
+ "logo_url": null,
3761
+ "extra_emails": [],
3762
+ "extra_phones": [],
3599
3763
  "created_at": "2026-09-13T12:00:00+00:00",
3600
3764
  "updated_at": "2026-09-13T12:00:00+00:00"
3601
3765
  },
@@ -3609,6 +3773,11 @@
3609
3773
  "id": "00000000-0000-4000-8000-000000000001",
3610
3774
  "external_id": "ERP 1042",
3611
3775
  "name": "Padaria Estrela",
3776
+ "kind": null,
3777
+ "legal_name": null,
3778
+ "state_registration": null,
3779
+ "municipal_registration": null,
3780
+ "id_document": null,
3612
3781
  "document": null,
3613
3782
  "email": "contato@padaria.example",
3614
3783
  "phone": null,
@@ -3624,6 +3793,9 @@
3624
3793
  }
3625
3794
  ],
3626
3795
  "is_active": true,
3796
+ "logo_url": null,
3797
+ "extra_emails": [],
3798
+ "extra_phones": [],
3627
3799
  "created_at": "2026-09-13T12:00:00+00:00",
3628
3800
  "updated_at": "2026-09-13T12:00:00+00:00"
3629
3801
  }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes