Endpoints para Socio Comercial
La entidad BusinessPartner incluye información relevante sobre los socios comerciales de una determinada compañía. Cada socio comercial pertenece a una compañía y tiene un rol asignado.
Características Comunes del Socio Comercial
-
Identificador único: La entidad BusinessPartner consta de un identificador único que sirve para distinguirlo de las demás y referenciarla con facilidad. Además cuenta con un campo
idRemote, que hace referencia al id que puede estar almacenado en la base de datos del ERP del cliente. -
Datos de Socio Comercial: La entidad socio comercial almacena informacion como nombre de contacto, nombre comercial, tin, observaciones, etc.
-
Compañía: Cada socio comercial debe estar relacionado con una compañía.
-
Roles: Cada socio comercial consta de un rol, que identifica su papel en el entorno del B2B.
-
Estado: El estado de la entidad determina las actividades que un socio comercial puede realizar en el entorno del B2B.
-
Localizaciones: Cada socio comercial tiene una o varias localizaciones asignadas. Éstas sirven para definir direcciones de facturación o envío.
-
Contactos: Almacenamos información de contacto de los socios comerciales. Cada uno puede tener asignados varios métodos de contacto.
Endpoints
GET/BusinessPartner/getBPartner
Obtener lista de los socios comerciales existentes en la base de datos.
Descripción
Este endpoint recupera una lista paginada de los socios comerciales del sistema. Permite a los clientes obtener datos de los socios comerciales basados en parámetros de paginación como el número de página (page) y el número de ítems por página (pageSize). La respuesta incluye información detallada sobre cada socio comercial, la compañía a la que pertenece, sus localizaciones registradas y su información de contacto.
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"id": "string",
"idRemote": "string",
"rol": "string",
"status": "string",
"company": {
"id": "string",
"idRemote": "string",
"companyName": "string",
"comercialName": "string",
"tin": "string"
},
"locations": [
{
"id": "string",
"idRemote": "string",
"name": "string",
"address": "string",
"city": "string",
"state": "string",
"postalCode": "string",
"shippingAddress": true,
"billingAddress": true,
"country": {
"id": "string",
"description": "string",
"iso": "string"
},
"default": true,
"active": true,
"createdAt": "string",
"updatedAt": "string"
}
],
"contacts": [
{
"id": "string",
"idRemote": "string",
"name": "string",
"position": "string",
"default": true,
"active": true,
"contactMethods": [
{
"id": "string",
"idRemote": "string",
"contactTypeId": "string",
"value": "string",
"send_by_whatsapp": true,
"send_by_mail": true,
"send_by_telegram": true,
"send_by_sms": true
}
]
}
],
"contactName": "string",
"comercialName": "string",
"tin": "string",
"observation": "string",
"origin": "string",
"updatedAt": "string",
"active": true
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<id>string</id>
<idRemote>string</idRemote>
<rol>string</rol>
<status>string</status>
<company>
<id>string</id>
<idRemote>string</idRemote>
<companyName>string</companyName>
<comercialName>string</comercialName>
<tin>string</tin>
</company>
<locations>
<id>string</id>
<idRemote>string</idRemote>
<name>string</name>
<address>string</address>
<city>string</city>
<state>string</state>
<postalCode>string</postalCode>
<shippingAddress>true</shippingAddress>
<billingAddress>true</billingAddress>
<country>
<id>string</id>
<description>string</description>
<iso>string</iso>
</country>
<default>true</default>
<active>true</active>
<createdAt>string</createdAt>
<updatedAt>string</updatedAt>
</locations>
<contacts>
<id>string</id>
<idRemote>string</idRemote>
<name>string</name>
<position>string</position>
<default>true</default>
<active>true</active>
<contactMethods>
<id>string</id>
<idRemote>string</idRemote>
<contactTypeId>string</contactTypeId>
<value>string</value>
<send_by_whatsapp>true</send_by_whatsapp>
<send_by_mail>true</send_by_mail>
<send_by_telegram>true</send_by_telegram>
<send_by_sms>true</send_by_sms>
</contactMethods>
</contacts>
<contactName>string</contactName>
<comercialName>string</comercialName>
<tin>string</tin>
<observation>string</observation>
<origin>string</origin>
<updatedAt>string</updatedAt>
<active>true</active>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
GET/BusinessPartner/updatedFrom
Obtener socios comerciales desde la fecha de modificación proporcionada.
Descripción
Devuelve una lista paginada de los socios comerciales cuya última fecha de modificación sea mayor que la proporcionada en los parámetros. Si no se adjuntan parámetros, éstos toman un valor asignado por defecto. El formato de la respuesta sigue el esquema del endpoint anterior.
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
date | Fecha de actualización | String | 1999-01-01 01:00:00 |
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"id": "string",
"idRemote": "string",
"rol": "string",
"status": "string",
"company": {
"id": "string",
"idRemote": "string",
"companyName": "string",
"comercialName": "string",
"tin": "string"
},
"locations": [
{
"id": "string",
"idRemote": "string",
"name": "string",
"address": "string",
"city": "string",
"state": "string",
"postalCode": "string",
"shippingAddress": true,
"billingAddress": true,
"country": {
"id": "string",
"description": "string",
"iso": "string"
},
"default": true,
"active": true,
"createdAt": "string",
"updatedAt": "string"
}
],
"contacts": [
{
"id": "string",
"idRemote": "string",
"name": "string",
"position": "string",
"default": true,
"active": true,
"contactMethods": [
{
"id": "string",
"idRemote": "string",
"contactTypeId": "string",
"value": "string",
"send_by_whatsapp": true,
"send_by_mail": true,
"send_by_telegram": true,
"send_by_sms": true
}
]
}
],
"contactName": "string",
"comercialName": "string",
"tin": "string",
"observation": "string",
"origin": "string",
"updatedAt": "string",
"active": true
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<id>string</id>
<idRemote>string</idRemote>
<rol>string</rol>
<status>string</status>
<company>
<id>string</id>
<idRemote>string</idRemote>
<companyName>string</companyName>
<comercialName>string</comercialName>
<tin>string</tin>
</company>
<locations>
<id>string</id>
<idRemote>string</idRemote>
<name>string</name>
<address>string</address>
<city>string</city>
<state>string</state>
<postalCode>string</postalCode>
<shippingAddress>true</shippingAddress>
<billingAddress>true</billingAddress>
<country>
<id>string</id>
<description>string</description>
<iso>string</iso>
</country>
<default>true</default>
<active>true</active>
<createdAt>string</createdAt>
<updatedAt>string</updatedAt>
</locations>
<contacts>
<id>string</id>
<idRemote>string</idRemote>
<name>string</name>
<position>string</position>
<default>true</default>
<active>true</active>
<contactMethods>
<id>string</id>
<idRemote>string</idRemote>
<contactTypeId>string</contactTypeId>
<value>string</value>
<send_by_whatsapp>true</send_by_whatsapp>
<send_by_mail>true</send_by_mail>
<send_by_telegram>true</send_by_telegram>
<send_by_sms>true</send_by_sms>
</contactMethods>
</contacts>
<contactName>string</contactName>
<comercialName>string</comercialName>
<tin>string</tin>
<observation>string</observation>
<origin>string</origin>
<updatedAt>string</updatedAt>
<active>true</active>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
GET/BusinessPartner/getBPartnerStatus
Descripción
Devuelve una lista paginada de los estados que puede tener un BusinessPartner dentro de la aplicación
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"id": "string",
"idRemote": "string",
"description": true
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<id>string</id>
<idRemote>string</idRemote>
<description>true</description>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
GET/BusinessPartner/getClients
Obtener socios comerciales cuyo rol sea "cliente".
Descripción
Devuelve una lista paginada de los socios comerciales cuyo rol sea "cliente". El formato de la respuesta sigue el mismo esquema que los endpoints anteriores. Si no se encuentran entidades, devuelve un código 204 "no content".
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"id": "string",
"idRemote": "string",
"rol": "string",
"status": "string",
"company": {
"id": "string",
"idRemote": "string",
"companyName": "string",
"comercialName": "string",
"tin": "string"
},
"locations": [
{
"id": "string",
"idRemote": "string",
"name": "string",
"address": "string",
"city": "string",
"state": "string",
"postalCode": "string",
"shippingAddress": true,
"billingAddress": true,
"country": {
"id": "string",
"description": "string",
"iso": "string"
},
"default": true,
"active": true,
"createdAt": "string",
"updatedAt": "string"
}
],
"contacts": [
{
"id": "string",
"idRemote": "string",
"name": "string",
"position": "string",
"default": true,
"active": true,
"contactMethods": [
{
"id": "string",
"idRemote": "string",
"contactTypeId": "string",
"value": "string",
"send_by_whatsapp": true,
"send_by_mail": true,
"send_by_telegram": true,
"send_by_sms": true
}
]
}
],
"contactName": "string",
"comercialName": "string",
"tin": "string",
"observation": "string",
"origin": "string",
"updatedAt": "string",
"active": true
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<id>string</id>
<idRemote>string</idRemote>
<rol>string</rol>
<status>string</status>
<company>
<id>string</id>
<idRemote>string</idRemote>
<companyName>string</companyName>
<comercialName>string</comercialName>
<tin>string</tin>
</company>
<locations>
<id>string</id>
<idRemote>string</idRemote>
<name>string</name>
<address>string</address>
<city>string</city>
<state>string</state>
<postalCode>string</postalCode>
<shippingAddress>true</shippingAddress>
<billingAddress>true</billingAddress>
<country>
<id>string</id>
<description>string</description>
<iso>string</iso>
</country>
<default>true</default>
<active>true</active>
<createdAt>string</createdAt>
<updatedAt>string</updatedAt>
</locations>
<contacts>
<id>string</id>
<idRemote>string</idRemote>
<name>string</name>
<position>string</position>
<default>true</default>
<active>true</active>
<contactMethods>
<id>string</id>
<idRemote>string</idRemote>
<contactTypeId>string</contactTypeId>
<value>string</value>
<send_by_whatsapp>true</send_by_whatsapp>
<send_by_mail>true</send_by_mail>
<send_by_telegram>true</send_by_telegram>
<send_by_sms>true</send_by_sms>
</contactMethods>
</contacts>
<contactName>string</contactName>
<comercialName>string</comercialName>
<tin>string</tin>
<observation>string</observation>
<origin>string</origin>
<updatedAt>string</updatedAt>
<active>true</active>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
GET/BusinessPartner/getAgents
Obtener socios comerciales cuyo rol sea "representante".
Descripción
Devuelve una lista paginada de los socios comerciales cuyo rol sea "representante". EL formato de la respuesta sigue el esquema de los endpoints anteriores. Si no se encuentran entidades, devuelve 204 "empty".
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"id": "string",
"idRemote": "string",
"rol": "string",
"status": "string",
"company": {
"id": "string",
"idRemote": "string",
"companyName": "string",
"comercialName": "string",
"tin": "string"
},
"locations": [
{
"id": "string",
"idRemote": "string",
"name": "string",
"address": "string",
"city": "string",
"state": "string",
"postalCode": "string",
"shippingAddress": true,
"billingAddress": true,
"country": {
"id": "string",
"description": "string",
"iso": "string"
},
"default": true,
"active": true,
"createdAt": "string",
"updatedAt": "string"
}
],
"contacts": [
{
"id": "string",
"idRemote": "string",
"name": "string",
"position": "string",
"default": true,
"active": true,
"contactMethods": [
{
"id": "string",
"idRemote": "string",
"contactTypeId": "string",
"value": "string",
"send_by_whatsapp": true,
"send_by_mail": true,
"send_by_telegram": true,
"send_by_sms": true
}
]
}
],
"contactName": "string",
"comercialName": "string",
"tin": "string",
"observation": "string",
"origin": "string",
"updatedAt": "string",
"active": true
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<id>string</id>
<idRemote>string</idRemote>
<rol>string</rol>
<status>string</status>
<company>
<id>string</id>
<idRemote>string</idRemote>
<companyName>string</companyName>
<comercialName>string</comercialName>
<tin>string</tin>
</company>
<locations>
<id>string</id>
<idRemote>string</idRemote>
<name>string</name>
<address>string</address>
<city>string</city>
<state>string</state>
<postalCode>string</postalCode>
<shippingAddress>true</shippingAddress>
<billingAddress>true</billingAddress>
<country>
<id>string</id>
<description>string</description>
<iso>string</iso>
</country>
<default>true</default>
<active>true</active>
<createdAt>string</createdAt>
<updatedAt>string</updatedAt>
</locations>
<contacts>
<id>string</id>
<idRemote>string</idRemote>
<name>string</name>
<position>string</position>
<default>true</default>
<active>true</active>
<contactMethods>
<id>string</id>
<idRemote>string</idRemote>
<contactTypeId>string</contactTypeId>
<value>string</value>
<send_by_whatsapp>true</send_by_whatsapp>
<send_by_mail>true</send_by_mail>
<send_by_telegram>true</send_by_telegram>
<send_by_sms>true</send_by_sms>
</contactMethods>
</contacts>
<contactName>string</contactName>
<comercialName>string</comercialName>
<tin>string</tin>
<observation>string</observation>
<origin>string</origin>
<updatedAt>string</updatedAt>
<active>true</active>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
GET/BusinessPartner/getClientsAssignedToAgent
Obtener todos los socios comerciales con el rol "cliente" asignados a otro con el rol "representante" dentro de la misma compañía.
Descripción
Devuelve una lista paginada de los socios comerciales cuyo rol sea "cliente" y estén asignados a otro con el rol "representante". Si no se encuentran entidades, devuelve un código 204 "empty".
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"companyId": "string",
"agentId": "string",
"clients": [
{
"id": "string"
}
]
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<companyId>string</companyId>
<agentId>string</agentId>
<clients>
<id>string</id>
</clients>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
GET/BusinessPartner/getContacts
Obtener una lista paginada con la información de contacto asignada a cada socio comercial.
Descripción
Devuelve una lista paginada que incluye información de contacto de cada socio comercial registrado en el sistema.
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"id": "string",
"idRemote": "string",
"businessPartner": {
"id": "string",
"contactName": "string"
},
"name": "string",
"position": "string",
"default": true,
"active": true,
"contactMethods": [
{
"contactType": {
"id": "string",
"value": "string"
},
"value": "string"
}
]
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<id>string</id>
<idRemote>string</idRemote>
<businessPartner>
<id>string</id>
<contactName>string</contactName>
</businessPartner>
<name>string</name>
<position>string</position>
<default>true</default>
<active>true</active>
<contactMethods>
<contactType>
<id>string</id>
<value>string</value>
</contactType>
<value>string</value>
</contactMethods>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
GET/BusinessPartner/getContactTypes
Obtener una lista con todos los tipos de contacto que existen en el contexto del B2B.
Descripción
Devuelve una lista paginada con todos los tipos de contacto que existen. Esto es útil para conocer los tipos disponibles y asignarlos correctamente a un sopcio comercial.
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"id": "string",
"value": "string"
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<id>string</id>
<value>string</value>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
POST/BusinessPartner/create
Crea un nuevo socio comercial en la base de datos.
Detalles del Método POST:
Crea un nuevo registro a partir de los datos adjuntos en el cuerpo de la petición. Para registrar un nuevo socio comercial en el sistema debes asegurar que existen las siguientes entidades:
-
Creación de Rol: Cada socio comercial debe estar asociado a un rol. Con lo cual el rol que le asignes al nuevo socio comercial debe existir en el sistema.
-
Creación de Estado: Así mismo, un socio comercial tiene asignado un estado. El estado asignado al nuevo socio comercial debe existir en el sistema.
-
Creación de Compañía Es crucial que la compañía relacionada con el nuevo socio comercial exista en el sistema. 👉Crear una Compañía🌱
Los contactos asignados en la creación de un socio comercial son creados al momento y no necesitan referenciar campos ya existentes. Sin embargo, para las localizaciones tenemos dos opciones:
- Crear una nueva localización: Si la localización que queremos asociar al socio comercial no existe, podemos adjuntar los datos necesarios al campo
locationspara crear una nueva localización. Esta opción la vemos en el JSON de este método. - Referenciar una localización: Si la localización que queremos asociar al socio comercial existe, podemos referenciarla con el parámetro
locationIddentro del campolocations. El esquema del campo es el siguiente:
{
"locations": [
{
"locationId": "string"
}
]
}
Los campos idRemote proporcionados en la creación de una nueva entidad se corresponden con el idRemote remoto que quiera darle el usuario. El sistema creará automáticamente un id local. En cuanto al campo agentId, es opcional ya que podemos decidir si asociar un agente o no.
Parámetros obligatorios
| Nombre | Descripción | Tipo |
|---|---|---|
idRemote | Identificador del nuevo Socio Comercial | String |
roleId | Identificador del Rol del nuevo Socio Comercial | String |
statusId | Identificador del Estado del nuevo Socio Comercial | String |
companyId | Identificador de la Compañía del nuevo Socio Comercial | String |
contactName | Nombre de contacto del nnuevo Socio Comercial | String |
commercialName | Nombre comercial del nuevo Socio Comercial | String |
tin | Carnet de identidad del nuevo Socio Comercial | String |
active | Si el socio comercial está activo o no | Boolean |
Parámetros obligatorios para Localización
Si quieres asignar una nueva Localización al Socio Comercial debes tener en cuenta que los siguientes parámetros son obligatorios:
| Nombre | Descripción | Tipo |
|---|---|---|
idRemote | Identificador de la nueva Localización | String |
name | Nombre de la nueva Localización | String |
address | Dirección completa de la nueva Locaclización | String |
city | Ciudad/Población de la nueva Localización | String |
shippingAddress | Si es la dirección de envío por defecto | Boolean |
billingAddress | Si es la dirección de facturación por defecto | Boolean |
countryId | Identificador válido del País de la nueva Localización | String |
default | Si la nueva Localización es la Localización por defecto | Boolean |
active | Si la nueva Localización está activa | Boolean |
Parámetros obligatorios para Contacto.
Para asignar un nuevo Contacto al Socio Comercial debes tener en cuenta que los siguientes parámetros son obligatorios:
| Nombre | Descripción | Tipo |
|---|---|---|
name | Nombre del nuevo Contacto | String |
default | Si el nuevo Contacto es el contacto por defecto | Boolean |
active | Si el nuevo Contacto está activo | Boolean |
contactMethods | Información sobre los métodos de contacto del nuevo COntacto | String |
Todos los parámetros de contactMethods son obligatorios.
Cuerpo de la solicitud completo
[
{
"idRemote": "string",
"roleId": "string",
"statusId": "string",
"companyId": "string",
"agentId": "string",
"locations": [
{
"idRemote": "string",
"name": "string",
"address": "string",
"city": "string",
"stateId": "string",
"postalCode": "string",
"shippingAddress": true,
"billingAddress": true,
"countryId": "string",
"default": true,
"active": true
}
],
"contacts": [
{
"idRemote": "string",
"name": "string",
"position": "string",
"default": true,
"active": true,
"contactMethods": [
{
"idRemote" : "string",
"contactTypeId": "string",
"value": "string"
}
]
}
],
"contactName": "string",
"comercialName": "string",
"tin": "string",
"observation": "string",
"origin": "string",
"active": true
}
]
Es posible añadir varios socios comerciales a través de la misma solicitud separándolos con comas dentro del array en el cuerpo de la solicitud.
Respuestas
Con el fin de no saturar al servidor, este endpoint envía un mensaje a un consumidor encargado de procesar la petición. Para comprobar el estado de la solicitud enviada es necesario acceder a la url adjunta en la respuesta. Una respuesta correctamente enviada al consumidor debe parecerse a esta:
{
"code": 201,
"message": "BusinessPartner message created successfully and dispatched to the queue.",
"statusUrl": "http://host/api/database/v1/message/status/messageId"
}
El campo statusUrl nos redirige a una respuesta más detallada sobre el estado de la petición. Una solicitud correctamente procesada por el consumidor tiene el siguiente aspecto:
{
"data": [
{
"status": "completed",
"errorMessage": null
}
],
"pagination": {
"totalItems": 1,
"itemsPerPage": 10,
"currentPage": 1,
"totalPages": 1,
"nextPageUrl": null
}
}
En caso de producirse cualquier error durante el procesado del mensaje, la respuesta tendrá un aspecto similar a este:
{
"code": 400,
"error": "Invalid business partner data format, a required parameter is missing"
}
POST/BusinessPartner/assignClientsToAgent
Asigna la lista de clientes adjunta en el cuerpo de la solicitud al agente. Los clientes deben pertenecer a la misma compañía que el agente.
Detalles del método POST
Para poder realizar la operación, debes asegurarte de que los socios comerciales que vas a aisgnar al agente tengan el rol de cliente. Así mismo el agente debe tener el rol de representante. Es importante asegurarse de que tanto los clientes como el agente pertencen a la misma compañía. Puedes asignar varios clientes al mismo agente en una única operación.
Todos los parámetros del cuerpo son obligatorios.
El cuerpo de la solicitud debe seguir el siguiente esquema en formato JSON:
[
{
"agentId": "string",
"clients": [
{
"idRemote": "string"
}
]
}
]
PUT/BusinessPartner/update/{id}
Actualizar un Business Partner existente.
Descripción
Este endpoint permite a los clientes actualizar los datos de los socios comerciales utilizando el parámetro id. Este campo id puede ser tanto el idRemote propio de la empresa que utiliza este B2B o el id local creado por el sistema.
A través de este endpoint es posible actualizar las Localizaciones y Contactos asociados al Socio comercial.
Parámetros
| Nombre | Descripción | Tipo |
|---|---|---|
id | Identificador del Socio Comercial | String |
No es necesario incluir toda la estructura JSON, solo debes incluir los atributos que quieras modificar.
Cuerpo de la solicitud
El cuerpo de la solicitud debe incluir los datos a actualizar del socio comercial siguiendo el siguiente esquema:
{
"idRemote": "string",
"roleId": "string",
"statusId": "string",
"companyId": "string",
"agentId": "string",
"locations": [
{
"idRemote": "string",
"name": "string",
"address": "string",
"city": "string",
"stateId": "string",
"postalCode": "string",
"shippingAddress": true,
"billingAddress": true,
"countryId": "string",
"default": true,
"active": true
}
],
"contacts": [
{
"idRemote": "string",
"name": "string",
"position": "string",
"default": true,
"active": true,
"contactMethods": [
{
"idRemote": "string",
"contactTypeId": "string",
"value": "string"
}
]
}
],
"contactName": "string",
"comercialName": "string",
"tin": "string",
"observation": "string",
"origin": "string",
"active": true
}
DELETEBusinessPartner/delete/{id}
Elimina un socio comercial existente.
Descripción
Elimina un socio comercial y todas las localizaciones y contactos asociados. El parámetro id puede ser tanto el id remoto como el id local. Una vez eliminado, el socio comercial se registra en el Historial de Eliminados.
⚠️No se podrá eliminar una Socio comercial si está relacionado con una Factura, Albarán o Pedido.
Parámetros
| Nombre | Descripción | Tipo |
|---|---|---|
id | Identificador único | String |
Posibles Errores de Respuesta
| Error | Response Status | Response Body |
|---|---|---|
| Este error ocurre cuando no se puede establecer una conexión con la base de datos. Es un problema interno del servidor. | 500 | {"code": 500,"error": "Database connection failed."} |
| Este error ocurre cuando no puede insertar o actualizar y en la dbs de pruebas. | 500 | {"code": 500,"error": "Invalid connection name, you cannot insert in default"} |
| Este error indica que falta un parametro. | 400 | {"code": 400,"error": "Parameter $parameter is required"} |
| Este error indica que no está autorizado. | 401 | {"code": 401,"error": "Unauthorized."} |
| Este error indica que no ha sido posible encontrar el registro. | 404 | {"code": 404,"error": "No entity found for Business Partner with $id."} |
| Este error ocurre cuando intenta insertar un regsitro que ya existe. | 409 | {"code": 409,"error": "Duplicate entry => Care with email and username"} |
| Este error ocurre cuando intenta enviar demasiadas solicitudes en un corto periodo de tiempo. | 429 | {"code": 429,"error": "Too Many Requests"} |