Saltar al contenido principal

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

  1. 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.

  2. Datos de Socio Comercial: La entidad socio comercial almacena informacion como nombre de contacto, nombre comercial, tin, observaciones, etc.

  3. Compañía: Cada socio comercial debe estar relacionado con una compañía.

  4. Roles: Cada socio comercial consta de un rol, que identifica su papel en el entorno del B2B.

  5. Estado: El estado de la entidad determina las actividades que un socio comercial puede realizar en el entorno del B2B.

  6. Localizaciones: Cada socio comercial tiene una o varias localizaciones asignadas. Éstas sirven para definir direcciones de facturación o envío.

  7. 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
NombreDescripciónTipoValor Predeterminado
pageNúmero de páginaInteger1
pageSizeNúmero de ítems por páginaInteger10
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>

👉Prueba este endpoint🌱

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
NombreDescripciónTipoValor Predeterminado
dateFecha de actualizaciónString1999-01-01 01:00:00
pageNúmero de páginaInteger1
pageSizeNúmero de ítems por páginaInteger10
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>

👉Prueba este endpoint🌱

GET/BusinessPartner/getBPartnerStatus

Descripción

Devuelve una lista paginada de los estados que puede tener un BusinessPartner dentro de la aplicación

Parámetros
NombreDescripciónTipoValor Predeterminado
pageNúmero de páginaInteger1
pageSizeNúmero de ítems por páginaInteger10
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>

👉Prueba este endpoint🌱

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
NombreDescripciónTipoValor Predeterminado
pageNúmero de páginaInteger1
pageSizeNúmero de ítems por páginaInteger10
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>

👉Prueba este endpoint🌱

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
NombreDescripciónTipoValor Predeterminado
pageNúmero de páginaInteger1
pageSizeNúmero de ítems por páginaInteger10
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>

👉Prueba este endpoint🌱

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
NombreDescripciónTipoValor Predeterminado
pageNúmero de páginaInteger1
pageSizeNúmero de ítems por páginaInteger10
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>

👉Prueba este endpoint🌱

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
NombreDescripciónTipoValor Predeterminado
pageNúmero de páginaInteger1
pageSizeNúmero de ítems por páginaInteger10
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>

👉Prueba este endpoint🌱

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
NombreDescripciónTipoValor Predeterminado
pageNúmero de páginaInteger1
pageSizeNúmero de ítems por páginaInteger10
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>

👉Prueba este endpoint🌱

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:

  1. 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.

  2. 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.

  3. 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 locations para 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 locationId dentro del campo locations. 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
NombreDescripciónTipo
idRemoteIdentificador del nuevo Socio ComercialString
roleIdIdentificador del Rol del nuevo Socio ComercialString
statusIdIdentificador del Estado del nuevo Socio ComercialString
companyIdIdentificador de la Compañía del nuevo Socio ComercialString
contactNameNombre de contacto del nnuevo Socio ComercialString
commercialNameNombre comercial del nuevo Socio ComercialString
tinCarnet de identidad del nuevo Socio ComercialString
activeSi el socio comercial está activo o noBoolean
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:

NombreDescripciónTipo
idRemoteIdentificador de la nueva LocalizaciónString
nameNombre de la nueva LocalizaciónString
addressDirección completa de la nueva LocaclizaciónString
cityCiudad/Población de la nueva LocalizaciónString
shippingAddressSi es la dirección de envío por defectoBoolean
billingAddressSi es la dirección de facturación por defectoBoolean
countryIdIdentificador válido del País de la nueva LocalizaciónString
defaultSi la nueva Localización es la Localización por defectoBoolean
activeSi la nueva Localización está activaBoolean
Parámetros obligatorios para Contacto.

Para asignar un nuevo Contacto al Socio Comercial debes tener en cuenta que los siguientes parámetros son obligatorios:

NombreDescripciónTipo
nameNombre del nuevo ContactoString
defaultSi el nuevo Contacto es el contacto por defectoBoolean
activeSi el nuevo Contacto está activoBoolean
contactMethodsInformación sobre los métodos de contacto del nuevo COntactoString

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"
}

👉Prueba este endpoint🌱

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"
}
]
}
]

👉Prueba este endpoint🌱

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
NombreDescripciónTipo
idIdentificador del Socio ComercialString

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
}

👉Prueba este endpoint🌱

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
NombreDescripciónTipo
idIdentificador únicoString

👉BusinessPartner API🌱

Posibles Errores de Respuesta

ErrorResponse StatusResponse 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"}