Guía para Obtener y Filtrar el Catálogo de Productos en la API
La API proporciona un endpoint que permite obtener el catálogo completo de proveedores, categorías de productos (ProductBase), productos y tickets. Además, este catálogo contiene información relevante como identificadores únicos, precios y condiciones comerciales.
La obtención de este catálogo se puede realizar de forma global o aplicando filtros específicos para reducir la cantidad de datos devueltos.
1. Obtener el Catálogo Completo
Para recuperar la lista completa de proveedores, categorías de productos, productos y tickets, se debe hacer una petición GET a la siguiente URL:
GET {{baseUrl}}/catalog?PartnerId={{PartnerId}}&api-version={{apiVersion}}
Parámetros requeridos
Headers requeridos
Ejemplo de solicitud
GET {baseurl}/api/catalog?PartnerId={partnerId}&api-version=3.60
Esta solicitud devuelve todo el catálogo al que el colaborador tiene acceso, incluyendo todos los productos, fechas disponibles y precios.
2. Filtrar el Catálogo
Cada filtro agregado a la consulta se considera un AND lógico. Es decir, solo se devolverán los productos que cumplan todas las condiciones especificadas.
2.1 Filtrar por Proveedor (ProviderIds)
Este endpoint permite obtener la información de todos los proveedores disponibles en la plataforma. La consulta puede realizarse sin filtros para obtener la lista completa o bien aplicando filtros específicos para recuperar datos de un proveedor en particular.
Método de Acceso
Estructura de Datos de Envío
Parámetros Obligatorios
Parámetros Opcionales
Idiomas Disponibles para LanguageCode
- es → Español
- en → Inglés
- fr → Francés
- pt → Portugués
- ca-ES → Catalán
- it → Italiano
- zh-CN → Chino simplificado
Si se desea obtener solo los productos de un proveedor en particular, se debe agregar el parámetro ProviderIds:
GET {{baseUrl}}/catalog?PartnerId={{PartnerId}}&ProviderIds={{providerId1}}
Ejemplo con un solo proveedor
GET {baseurl}/api/catalog?PartnerId={partnerId}&ProviderIds=PTM
Ejemplo con múltiples proveedores
GET {baseurl}/api/catalog?PartnerId={partnerId}&ProviderIds=PTM&ProviderIds=PAC
Obtener la Lista en un Idioma Específico
GET {baseurl}/api/providers?PartnerId={partnerId}&LanguageCode=es
Filtrar por Proveedor y Especificar Idioma y Versión de la API
4. Estructura de la Respuesta
La respuesta tiene la misma estructura que la respuesta de la consulta del catálogo de productos, con la diferencia de que en este caso solo devuelve información de los proveedores, sin incluir ProductBases ni CombinedProducts
{
"Providers": [
{
"ProviderId": "PTM",
"ProviderName": "Parque Temático PTM",
"ProviderDescription": "Parque de atracciones con espectáculos y juegos mecánicos.",
"TimeZone": "Europe/Madrid",
"ProviderCommercialConditions": "Términos comerciales aplicables a este proveedor.",
"ProviderAccessConditions": "Condiciones de acceso del proveedor.",
"Logo": "{baseurl}/images/logo/PTM.png",
"Location": {
"CountryCode": "ES",
"City": "Madrid",
"Address": "Avenida del Parque 123",
"ZipCode": "28001",
"Lat": 40.4168,
"Lng": -3.7038
}
}
],
"LastUpdatedDateTime": "2025-01-15T12:34:56Z"
}
5. Consideraciones Finales
- Uso de Filtros: Si no se especifica un ProviderIds, la API devolverá la lista completa de proveedores.
- Formato de Respuesta: Los datos devueltos incluyen información sobre cada proveedor, su ID, nombre, descripción, condiciones comerciales y ubicación.
- Consulta Eficiente: Si se necesita consultar detalles de un solo proveedor, es recomendable usar el parámetro ProviderIds para evitar obtener datos innecesarios.
Este endpoint es útil para construir interfaces que requieran mostrar información detallada de los proveedores, sus términos comerciales y condiciones de acceso.
2.2 Filtrar por Categoría de Producto (ProductBaseIds)
Si se desea filtrar por una categoría de productos específica:
GET {{baseUrl}}/catalog?PartnerId={{PartnerId}}&ProductBaseIds={{productBaseId1}}
Ejemplo
GET {baseurl}/api/catalog?PartnerId={partnerId}&ProductBaseIds=BaseId_1
Ejemplo con múltiples categorías
GET {baseurl}/api/catalog?PartnerId={partnerId}&ProductBaseIds=BaseId_1&ProductBaseIds=BaseId_2
2.3 Filtrar por Producto (ProductIds)
Si se necesita consultar información sobre un producto específico:
GET {{baseUrl}}/catalog?PartnerId={{PartnerId}}&ProductIds={{productId1}}
Ejemplo con un solo producto
GET {baseurl}/api/catalog?PartnerId={partnerId}&ProductIds=Entrada_Adulto
Ejemplo con múltiples productos
GET {baseurl}/api/catalog?PartnerId={partnerId}&ProductIds=Entrada_Adulto&ProductIds=Entrada_Niño
2.4 Filtrar por Fechas (FromDate, ToDate, ReferenceDate)
Estos parámetros permiten filtrar los productos según sus fechas de disponibilidad.
GET {{baseUrl}}/catalog?PartnerId={{PartnerId}}&FromDate=YYYY-MM-DD&ToDate=YYYY-MM-DD&ReferenceDate=YYYY-MM-DD
Ejemplo filtrando por fecha de inicio y fin
GET {baseurl}/api/catalog?PartnerId={partnerId}&FromDate=2025-01-01&ToDate=2025-12-31
Ejemplo con ReferenceDate
GET {baseurl}/api/catalog?PartnerId={partnerId}&ReferenceDate=2025-06-15
3. Respuesta de la API
La estructura de la respuesta incluye una variedad de datos sobre proveedores, productos, tickets y condiciones comerciales. A continuación, algunos de los principales campos devueltos:
Estructura de datos de respuesta
- LastUpdatedDateTime. 3.27. Fecha de la última modificación del catálogo.
-
Providers. Array de proveedores:
- ProviderId. Identificador del proveedor. Alfanumérico de 13 caracteres (por ejemplo "by81fymhsmjgw").
- ProviderName. Nombre del Proveedor (por ejemplo "PTM").
- ProviderDescription. Descripciones del proveedor.
- TimeZone 3.54. Identificador de la zona horaria del proveedor. Si no está presente, devuelve la configuración de zona horaria del cliente.
- ProviderCommercialConditions. Condiciones comerciales de proveedor. Si no existen, este campo no se mostrará.
- ProviderAccessConditions. Condiciones de acceso del proveedor. Si no existen, este campo no se mostrará.
- AccessCodeMethodName Obsoleto desde 3.40
- ExchangeVoucherPointLugar donde usar/canjear las entradas.
- AdvancedDateSelectorMethodName: nombre del método que define si los tickets de un producto pueden tener su propia fecha de acceso particular. Más información de este punto en el Anexo II.
- DatePerTicketEnclosureMaxAccessDateInterval. 3.60Intervalo máximo entre fechas de acceso para recintos del mismo producto. Si el valor no existe o es 0, no hay límite a la hora de seleccionar fechas. En caso contrario, para los productos multiticket con varios tickets para los que habrá que definir fechas, la diferencia de días entre las fechas mas alejadas de esos tickets no ha de ser nunca mayor al intervalo establecido.
-
CancellationPolicy: 3.29 indica las políticas de cancelación que se aplican al cancelar una venta de este proveedor. Si un producto concreto no tiene políticas de cancelación se aplicarán estas.
- IsRefundable: indica si el cliente puede cancelar gratis en algún momento.
-
Rules: reglas que se aplican al efectuar la cancelación.
- HoursInAdvanceOfAccess: indica la cantidad de horas de antelación con respecto a la fecha de acceso a partir de las cuales se aplicará la penalización de precio indicada en Percentage.
- Percentage: porcentaje de penalización sobre el precio de la entrada.
- DemandAccessDate: 3.35. indica si la fecha de acceso es necesaria. En caso de no ser necesaria tanto en los métodos "Reservation" como "Transaction" debe usarse la fecha de compra.
-
TaxType: 3.35. indica el tipo de impuesto de los productos del proveedor. Opciones:
- 0: IVA
- 1: IGIC
-
Type: 3.41. indica el tipo de proveedor. Opciones:
- 0: Actividad
- 1: Alojamiento
- 2: Transporte
- DemandAccessDateOnOpenDate: 3.51. Si el producto es de fecha abierta, este parámetro determinará, con verdadero o falso, la necesidad de pedir las fechas de acceso.
-
PurchaseFlowType 3.45: indica el tipo de flujo de venta que tiene el proveedor. Sirve para saber si las entradas y los códigos de acceso estarán disponibles en el momento de la compra o posteriormente. Opciones:
- 1: venta libre.
- 2: requiere tramitación por parte del proveedor.
- IsForGroups: indica si los productos del proveedor están destinados a la venta para grupos.
- IsForSeasonTickets 3.44: indica si los productos del proveedor son abonos de temporada.
- RequiresReservation Obsoleto desde 3.53
- LimitOfNumberOfPeopleToBeGroup: límite del número de personas que conforman un producto a partir del cual la transacción se considera para "grupos". Por ejemplo, si este límite es "19" y el proveedor no es para grupos (IsForGroups == false), no se aceptarán transacciones con 20 o más personas. Por contra, si el proveedor es para grupos (IsForGroups == true), solo se aceptarán transacciones para 20 o más personas.
- MaxNumberOfPeopleToBeGroup 3.52: Indica cuál es el máximo número de personas que puede componer un grupo.
- Logo: Url para descargar la imagen del logotipo del proveedor
-
PromotionalImages 3.47: Array de imágenes promocionales del proveedor
- IsMainImage. Booleano que indica si es la imagen principal
- Url. Url para descargar la imagen promocional
- Tags 3.46: Array de identificadores de etiquetas aplicados a este proveedor.
-
Location. Información de localización.
- CountryCode. Código de país (es, fr...).
- City. Ciudad.
- Address. Dirección.
- ZipCode. Código postal.
- Lat. Latitud.
- Lng. Longitud.
- Region3.49 Región.
-
TicketEnclosures. Información de los recintos del proveedor.
- TicketEnclosureId. Idenfificador del recinto.
- TicketEnclosureName. Nombre del recinto.
- TicketEnclosureConditions. [Opcional] Condiciones del recinto.
- TypeOfPersonDefinitionTypeChild. [Opcional] Indica qué atributo * se aplica a la persona para considerarla niño.
- TypeOfPersonDefinitionValueChild. [Opcional] Indica el valor asignado al tipo de persona niño.
- TypeOfPersonDefinitionTypeAdult. [Opcional] Indica qué atributo * se aplica a la persona para considerarla adulto.
- TypeOfPersonDefinitionValueAdult. [Opcional] Indica el valor asignado al tipo de persona adulto.
- TypeOfPersonDefinitionTypeSenior. [Opcional] Indica qué atributo * se aplica a la persona para considerarla senior.
- TypeOfPersonDefinitionValueSenior. [Opcional] Indica el valor asignado al tipo de persona senior.
- ParentTicketEnclosureId3.60 [Opcional] Indica el recinto padre.
-
ParentType3.60 [Opcional] En el caso de que el recinto tenga padre, indica el tipo de parentesco. Los valores pueden ser:
- 0: Contenido en. Los recintos hijos estarán contenidos en el tiempo de acceso del padre.
- 1: Posterior a. Los recintos hijos serán siempre posteriores al tiempo de acceso del recinto padre.
-
TicketEnclosureTree3.60 [Opcional] Árbol de jerarquía de los recintos. Cada elemento con las siguientes propiedades:
- Id. Identificador del recinto.
- Children. Listado de hijos.
-
Sessions. [Opcional] Define la relación entre sesiones y contenido. Antes de continuar, es imprescindible estudiar el apartado Obtención de sesiones:
- HasSeating 3.44 Indica si el recinto tiene asientos, en tal caso será necesario comprobar el tipo de asignación del asiento a nivel de ticket.
- SessionContentProfileId 3.34 Para más información acerca de este identificador, consulte la página de Sesiones.
- SessionGroupProfileId 3.34 Para más información acerca de este identificador, consulte la página de Sesiones.
-
SessionsGroupSessionContents. Define la relación entre grupos de sesión y contenidos de sesión. Es decir, todas las sesiones del grupo de sesión tendrán asignado el contenido de sesión.
- SessionsGroupId. Identificador del grupo de sesiones.
- SessionContentId. Identificador de contenido de sesión.
- TicketEnclosureAutoAssignSessionType. 3.36 Indica qué atributo*** se aplica a la hora de elegir sesiones. Pueden ser sesiones auto asignadas por el sistema, elegibles, o una mezcla de los dos casos. En el caso de sesiones auto asignadas se puede comprobar qué sesiones se van a asignar antes de hacer la reserva mediante el método AutoAssignSessions.
-
ProductBases: Array de ProductBases.
- ProductBaseId. Identificador del ProductBase. Alfanumérico de 13 caracteres (por ejemplo "htpdj798ek8ja")
- ProductBaseName. Nombre del ProductBase.
- ProductBaseDescription. Descripción del ProductBase. Suele contener las condiciones comunes al todos sus productos.
- DaysWithLimitedCapacity. Obsoleto desde 3.45 Fechas en los que todos los productos de este ProductBase tienen un aforo limitado. Por tanto, será imprescindible consultar la disponibilidad del ProductBase antes de crear una transacción. Las fechas tendrán formato ISO 8601 (yyyy-MM-dd), y estarán separadas entre sí por una coma. Más información al respecto en el punto Obtención de aforo disponible.
- LimitOfNumberOfPeopleToBeGroup. 3.36 (Opcional) mismo significado que la propiedad LimitOfNumberOfPeopleToBeGroup en el nodo "Provider". Si está especificado se usará el más restrictivo entre este valor y el de proveedor.
-
Products. Array de productos:
- ProductId. Identificador del producto. Alfanumérico de 13 caracteres (por ejemplo "ctgyir9m9q4bo").
- ProductName. Nombre del producto.
- SuggestedSalesProductName. 3.26. Nombre sugerido del producto de cara a la venta.
- ProductDescription. Descripción del producto. Suele contener las condiciones del producto.
- Tags 3.46: Array de identificadores de etiquetas aplicados a este producto.
- ProductInternalConsiderations. Consideraciones internas del producto que solo debe conocer Colaborador Webapp Next. NUNCA mostrar al cliente final.
- ProductCancellationConditions. Condiciones de cancelación para el producto.
-
CancellationPolicy: 3.29 indica las políticas de cancelación que se aplican al cancelar una venta de este producto. Si este nodo está presente, tiene preferencia sobre el nodo CancellationPolicy del proveedor.
- IsRefundable: indica si el cliente puede cancelar gratis en algún momento.
-
Rules: reglas que se aplican al efectuar la cancelación.
- HoursInAdvanceOfAccess: indica la cantidad de horas de antelación con respecto a la fecha de acceso a partir de las cuales se aplicará la penalización de precio indicada en Percentage.
- Percentage: porcentaje de penalización sobre el precio de la entrada.
- StartIsActiveDate 3.22. [Opcional] Si existe, define la fecha a partir de la cual es posible vender el producto.
- EndIsActiveDate 3.22. [Opcional] Si existe, define la fecha hasta la cual es posible vender el producto.
- DaysWithLimitedCapacity. Fechas en los que el producto tienen un aforo limitado. Por tanto, será imprescindible consultar la disponibilidad del producto antes de crear una transacción. Las fechas tendrán formato ISO 8601 (yyyy-MM-dd), y estarán separadas entre sí por una coma. Más información al respecto en el punto Obtención de aforo disponible.
- HoursInAdvanceOfPurchase. Horas de antelación de la compra respecto a las 00:00 del día siguiente al de la visita. Por ejemplo, si un producto tiene HoursInAdvanceOfPurchase = 4, y un cliente realiza una compra para el 15 de Agosto, el límite de tiempo que tiene el producto para venderse son las 20:00 del propio 15 de Agosto (es decir, 4 horas antes de las 00:00 del 16 de Agosto). Esto es importante, por ejemplo, para que un cliente no compre los productos para un día cuando el recinto ya está a cerrado.
- MaxHoursInAdvanceOfPurchase. 3.23. [Opcional] Horas máximas de antelación de la compra respecto a las 00:00 del día siguiente al de la visita. Por ejemplo, si un producto tiene MaxHoursInAdvanceOfPurchase = 240, y un cliente realiza una compra para el 15 de Agosto, el producto no puede venderse antes del 6 de Agosto (es decir, 240 horas = 10 días antes de las 00:00 del 16 de Agosto). Esto es útil, por ejemplo, para limitar el período de venta de un producto a un plazo de días previos.
- MinimumNumberByTransaction. Cantidad mínima del productos por cada venta. Por defecto es 1. Por ejemplo, imaginemos un producto del tipo "Entrada con descuento a partir de 3 productos". En ese caso MinimumNumberByTransaction sería 3.
- NumberOfPeople. Número de personas que computan para considerar una transacción como "grupo". Es decir, computa para el límite "LimitOfNumberOfPeopleToBeGroup".
- NumberOfAdults. Número de adultos, incluidos en el campo "NumberOfPeople".
- NumberOfBabies. 3.37. Número de bebés, incluidos en el campo "NumberOfPeople".
- NumberOfChildren. Número de niños, incluidos en el campo "NumberOfPeople".
- NumberOfSenior. Número de seniors, incluidos en el campo "NumberOfPeople".
- NumberOfGeneric. Número de genéricos, incluidos en el campo "NumberOfPeople". Es un campo muy útil, por ejemplo, si un producto vale tanto para adulto como para niño como para senior.
- RequiresRealTimePrice. Indica si el producto requiere precio en tiempo real.
- ValidDays. Días de validez.
- ValidDaysType. 0 = consecutivos. 1 = no consecutivos.
- PriceMode. 1 = PVP. 2 = Precio Neto.
-
Commission. En caso de que PriceMode = PVP, nos indica la comisión:
- Type. 1 = porcentaje. 2 = valor absoluto.
-
Value. Valor de esa comisión. Por ejemplo:
- si Type = 1 y Value = 10, indica que la comisión es del 10% respecto al Price del producto. Es decir, si el Price = 100 €, la comisión calculada sería de 10 €.
- si Type = 2 y Value = 3, indica que la comisión por producto es de 3 €.
- AdministrationFeeRefundable. 3.54: En caso de indicarse true, se permitirá reembolsar los gastos de gestión.
-
AdministrationFeeCommission3.54: En caso de que PriceMode = PVP, nos indica la comisión:
- Type. 1 = porcentaje. 2 = valor absoluto.
-
Value. Valor de esa comisión de los gastos de gestión. Por ejemplo:
- si Type = 1 y Value = 50, indica que la comisión es del 50% respecto a los gastos de gestión. Es decir, si los gastos de gestión son 5 €, la comisión calculada sería de 2,5 €.
- si Type = 2 y Value = 3, indica que la comisión de los gastos de gestión por producto es de 3 €.
-
CommissionsByAccessDates 3.54. En caso de que PriceMode = PVP, nos indica la comisión:
- Type. 1 = porcentaje. 2 = valor absoluto.
-
Value. Valor de esa comisión. Por ejemplo:
- si Type = 1 y Value = 10, indica que la comisión es del 10% respecto al Price del producto. Es decir, si el Price = 100 €, la comisión calculada sería de 10 €.
- si Type = 2 y Value = 3, indica que la comisión por producto es de 3 €.
- AccessDates. Fechas para las que aplica esta comisión. Fechas separadas por comas. Las fechas tendrán formato ISO 8601 (yyyy-MM-dd), y estarán separadas entre sí por una coma.
- AccessDateCriteria. Indica el criterio para la fecha de acceso. Puede tomar los siguientes valores **.
-
BarcodeAssignment 3.22. [Opcional] Indica a qué se va asignar el código de barras. Sus posibles valores son:
- 1 = Ticket (valor por defecto si BarcodeAssignment no viene definido)
- 2 = Persona
-
Por ejemplo:
-
Producto "Entrada dos días" compuesto por un adulto y 2 tickets (entrada día 1, entrada día 2).
- Si BarcodeAssignment = Ticket, cada uno de los tickets tendrá su propio código de barras
- Si BarcodeAssignment = Persona, solo habrá un código de barras (compartido por ambos tickets). Una consecuencia directa de este caso la tendríamos a la hora de imprimir un PDF con las entradas: solo tendríamos que imprimir un PDF del producto, dado que a pesar de tener dos tickets solo hay un código de barras.
-
Producto "Entrada dos días" compuesto por un adulto y 2 tickets (entrada día 1, entrada día 2).
-
PricesAndDates. Array de "precio y fechas". Tiene una doble funcionalidad. Por una parte nos define qué fechas de acceso tiene disponible el producto, y por otra parte nos define qué precio se aplican a qué fechas:
- Price. Precio.
- Currency. Moneda del precio.
- CurrencyName 3.26. Nombre de la moneda del precio
- Dates. Fechas separadas por comas. Las fechas tendrán formato ISO 8601 (yyyy-MM-dd), y estarán separadas entre sí por una coma.
- OriginalPrice 3.25. [Opcional] Precio del producto antes de aplicar descuentos si existen.
-
TaxBreakdown 3.35. Array con el desglose de impuestos.
- TaxPercentage. Porcentaje de impuesto (sobre 100)
- PriceWithoutTaxes. Precio sin impuestos
- PriceWithTaxes. Precio con impuestos
- AdministrationFee 3.54. Gastos de gestión.
-
Release. 3.24. [Opcional] Número de días de antelación necesarios para que el cliente pueda cancelar el producto sin coste. Ejemplos:
- 0 = El cliente puede cancelar el día de entrada al parque sin coste.
- 1 = El cliente puede cancelar un día antes de la entrada al parque sin coste.
-
SalesDocumentSettings. Configuraciones respecto al documento de acceso (pdf, passbook). Esta información también vendrá como resultado de la llamada al método del API "transaction". Si Colaborador Webapp Next utiliza los documentos generados por Demo no será necesario tener en cuenta estas configuraciones. De lo contrario, si Colaborador Webapp Next genera sus propios documentos debe tenerlas en consideración.
- Disable. 3.35. Indica si no se generará documento de acceso para este producto.
- ShowPrice. Indica si se debe mostrar el precio en el documento de acceso.
- AccessDateCriteriaOpenDateSalesDocument. Solo en el caso de que AccessDateCriteria == 1 (Fecha Abierta). Indica qué debemos informar al cliente respecto a la fecha de acceso. Puede tomar los siguientes valores **.
- HasSaleFlowRule 3.31 Indica si el producto tiene alguna regla asociada de flujo de venta. En el caso de ser "true" se recomienda consultar el método "Comprobar reglas de flujo de venta" para comprobar qué cambios va a producir la inclusión de este producto en los procesos de reserva y/o venta.
- IsForPackaging 3.44 Indica si el producto requiere ser empaquetado, por ejemplo, con alojamiento.
-
Tickets. [Opcional] Array de tickets. En caso de que el producto no trabaje con tickets, este campo no existirá:
- TicketId. Identificador de ticket. Alfanumérico de 13 caracteres (por ejemplo "1tqgtrf7ctefc").
- IsQuotaTicket. Booleano que indica si el ticket es o no de tipo aforo, lo que quiere decir que en caso de ser true el ticket computará para el total de aforo necesario para reservar el producto. Por ejemplo, si tenemos un producto donde tiene 3 tickets definidos pero únicamente 2 de ellos son de tipo aforo, entonces al consultar la disponibilidad para esté producto hay que tener en cuenta que a nivel de aforo necesita 2 de disponibilidad. En otras palabras en caso de que el aforo disponible fuese 1 no podríamos reservar este producto. Para más información consulta el endpoint Obtención de aforo disponible.
- TicketName. Nombre del ticket.
- TicketConditions. [Opcional] Condiciones del ticket.
- TicketEnclosureId. Idenfificador del recinto al que pertenece el ticket. Varios tickets puede pertenecer al mismo recinto
-
SeatingAssignType 3.44. Indica el tipo de asignación de asiento que aplica. Posibles valores:
- 1: Auto asignados, los asientos serán asignados automáticamente por el sistema.
- 3: Requiere procesamiento, los asientos serán asignados posteriormente por el proveedor.
-
FromAccessDay y ToAccessDay. Si están definidos, indican para qué días respecto a la primera fecha de acceso es válido el ticket. Ejemplos,
- si el ticket define FromAccessDay = 1 y ToAccessDate = 1, el cliente deberá usarlo el primer día de acceso.
- si el ticket define FromAccessDay = 2 y ToAccessDate = 2, el cliente deberá usarlo el segundo día de acceso.
- si el ticket define FromAccessDay = 1 y ToAccessDate = 2, el cliente podrá entrar o el primer o el segundo día.
- si el ticket define FromAccessDay = 2 y ToAccessDate no definido, el cliente podrá entrar desde el segundo día hasta un día indefinido (por ejemplo hasta que termine la temporada, salvo que las condiciones del producto indiquen lo contrario).
- si el ticket no define ni FromAccessDay ni ToAccessDate, el cliente solo podrá entrar el primer día (salvo que se indique lo contrario en las condiciones).
- si FromAccessDay = 0 significa que no tiene un fecha "desde" definida, por lo que vale cualquier fecha "desde" dentro de la validez del producto
- si ToAccessDate = 0 significa que no tiene un fecha "hasta" definida, por lo que vale cualquier fecha "hasta" dentro de la validez del producto
- por tanto si FromAccessDay = 0 y ToAccessDate = 0 el ticket se comporta como una "fecha abierta"
- [NOTA: El resultado de la llamada al método del API "Transaction" ya nos devuelve el rango de fechas de acceso de cada ticket. Por tanto es totalmente factible no tratar "FromAccessDay" y "ToAccessDay" y basarnos en lo que nos devuelva el método Transaction]
-
TypeOfPerson 3.22. [Opcional] Define el tipo de persona y su numeración. La información viene dado por:
- Type. Bebé = 1, Niño = 2, Adulto = 3, Senior = 4, Genérico = 5
- PersonNumber
-
Por ejemplo:
-
Producto "Entrada 3x2" compuesto por dos adultos y un niño y definido por tres tickets:
- Ticket Adulto: Adulto 1 (Type = 3, PersonNumber = 1)
- Ticket Adulto: Adulto 2 (Type = 3, PersonNumber = 2)
- Ticket Niño: Niño 1 (Type = 2, PersonNumber = 1)
-
Producto "Entrada 2x1 más segundo día consecutivo" compuesto por dos adultos y 4 tickets:
- Ticket Adulto primer día: adulto 1 (Type = 3, PersonNumber = 1)
- Ticket Adulto primer día: adulto 2 (Type = 3, PersonNumber = 2)
- Ticket Adulto segundo día: adulto 1 (Type = 3, PersonNumber = 1)
- Ticket Adulto segundo día: adulto 2 (Type = 3, PersonNumber = 2)
-
Producto "Entrada 3x2" compuesto por dos adultos y un niño y definido por tres tickets:
- TicketsQuestionsProfileId.3.50 Identificador del perfil de la pregunta.
- 3.32 RequiresDeliveryManagement . Indica si es un ticket que requiere una entrega. En caso afirmativo, habrá que elegir el método de entrega durante la llamada al método del API "Transaction". Puede consultar los métodos de entrega disponibles en el apartado Métodos de entrega
- ProductPaxGroupingId 3.30. [Opcional] Identificador de la agrupación de productos a la que pertenece el producto.
-
ProductPaxGroupings: 3.30. Agrupaciones de productos cuya diferencia principal son las personas que lo componen.
- ProductPaxGroupingId.Identificador de la agrupación. Alfanumérico de 13 caracteres (por ejemplo "dtpdj29bek3ja").
- ProductPaxGroupingName.Nombre de la a agrupación.
-
Urls: [Opcional] Array de urls para acceder a la página de la taquilla del proveedor. Sólo en el caso de que Colaborador Webapp Next tenga DNS personalizadas.
- LanguageCode: Código del idioma con el que se va a acceder. Representado mediante el formato ISO 639-1.
- Url: Url de acceso.
-
EmbeddingRequiredProviders. 3.54. Array de proveedores dinámicos con flujos de compra externos:
[NOTA: Tiene exactamente las mismas propiedades que un proveedor normal. Para evitar que la documentación crezca en exceso, a continuación se muestran los campos que añade: ]-
Commission. 3.54:
- Type. 1 = porcentaje. 2 = valor absoluto.
-
Value. Valor de esa comisión. Por ejemplo:
- si Type = 1 y Value = 10, indica que la comisión es del 10% respecto al Price del producto. Es decir, si el Price = 100 €, la comisión calculada sería de 10 €.
- si Type = 2 y Value = 3, indica que la comisión por producto es de 3 €.
-
AdministrationFeeCommission. 3.54:
- Type. 1 = porcentaje. 2 = valor absoluto.
-
Value. Valor de esa comisión de los gastos de gestión. Por ejemplo:
- si Type = 1 y Value = 50, indica que la comisión es del 50% respecto a los gastos de gestión. Es decir, si los gastos de gestión son 5 €, la comisión calculada sería de 2,5 €.
- si Type = 2 y Value = 3, indica que la comisión de los gastos de gestión por producto es de 3 €.
-
Commission. 3.54:
-
CombinedProducts. 3.37 Array de productos combinados.
- CombinedProductId 3.37. Identificador de producto combinado.
- Name 3.37. Identificador de producto combinado.
-
PricesAndDates 3.37 Obsoleto desde 3.41. Array de precios por fechas.
[NOTA: A partir de la versión 3.41 para conocer las fechas disponibles habrá que consultar en el catalogo cada producto incluido dentro del array Products]- Price 3.37 Obsoleto desde 3.41. Precio.
- Dates 3.37 Obsoleto desde 3.41. Fechas.
- Currency 3.37 Obsoleto desde 3.41. Moneda.
- CurrencyName 3.37 Obsoleto desde 3.41. Nombre de la moneda.
-
TaxBreakdown 3.37 Obsoleto desde 3.41. Array de impuestos.
- TaxPercentage 3.37 Obsoleto desde 3.41. Porcentaje de impuesto (sobre 100).
- PriceWithoutTaxes 3.37 Obsoleto desde 3.41. Precio sin impuestos.
- PriceWithTaxes 3.37 Obsoleto desde 3.41. Precio con impuestos.
- PriceFrom 3.41. Precio "desde" para el producto combinado.
- PriceTo 3.41. Precio "hasta" para el producto combinado.
-
Products 3.37. Array de productos que forman parte del producto combinado.
- ProductId 3.37. Identificador del producto.
- RequiresRealTimePrice 3.37. Indica si el producto requiere precio en tiempo real.
-
SaleFlowRules. 3.57 Indica qué identificadores de productos y/o proveedores dinámicos tienen configuradas reglas de flujo de venta.
- HasSaleFlowRules. Indica si en el catálogo hay alguna regla asociada de flujo de venta. En el caso de ser "true" se recomienda consultar el método "Comprobar reglas de flujo de venta" para comprobar qué cambios va a producir la inclusión de este producto en los procesos de reserva y/o venta.
- ProductIdsWithSaleFlowRules. Listado de identificadores de productos que tienen una regla asociada de flujo de venta.
- DynamicProviderIdsWithSaleFlowRules. Listado de identificadores de proveedores dinámicos que tienen una regla asociada de flujo de venta.
-
PartnerSettings 3.44. Indica las configuraciones para Colaborador Webapp Next.
- DemandClientData 3.44. Booleano (true/false) que indica si es obligatorio indicar datos del cliente al crear transacciones.
- DemandClientTaxData 3.47. Booleano (true/false) que indica si es obligatorio indicar datos fiscales del cliente al crear transacciones.
- EnableCancellationRequest 3.44. Booleano (true/false) que indica si Colaborador Webapp Next tiene permitido solicitar cancelaciones vía API.
- PaymentType 3.44. Indica el tipo de pago que realiza Colaborador Webapp Next. 1 = Debito, 2 = Crédito, 3 = Crédito excepto para grupos, 4 = Prepago
- Success. Booleano (true/false) que indica si la obtención del catálogo ha sido o no correcta.
- Timestamp. 3.37
- ErrorMessage. Mensaje de error explicando por qué la obtención del catálogo no ha sido correcta. En caso que haya sido correcta, devolverá null.
- ErrorCodes. 3.47 Array de códigos para identificar el error.
- ErrorEntityBreakDown . 3.49 Lista que contiene objetos con el nombre e ID en caso de error.
(*) Atributos para definir el tipo de persona
Para definir el tipo de persona utilizamos atributos de tipo entero, pudiendo tomar los siguientes valores:
- Edad: 1
- Altura: 2
Una vez indicado el tipo mediante una de las dos opciones anteriores, se indica el valor que toma mediante un decimal.
Por ejemplo, para indicar que consideramos niño a personas de menos de 120 centimetros y consideramos senior a personas mayores de 65 años tendríamos los siguientes valores:
- TypeOfPersonDefinitionTypeChild: 2
- TypeOfPersonDefinitionValueChild: 120
- TypeOfPersonDefinitionTypeSenior: 1
- TypeOfPersonDefinitionValueSenior: 65
(**) Valores posibles para el criterio de fecha de acceso (AccessDateCriteria)
Para definir el criterio de acceso utilizamos atributos de tipo entero, pudiendo tomar los siguientes valores:
- Fecha cerrada. Válida para entrar únicamente el día especificado: 0.
-
Fecha abierta. Válida para entrar cualquier día de la temporada: 1. Solo para este caso, debemos tener en cuenta el valor de AccessDateCriteriaOpenDateSalesDocument:
- Ocultar fecha de acceso: 1.
- Válido para toda la temporada: 2.
- Ver condiciones: 3
- Rango de fechas de validez del ticket: 4
- Fechas de validez de la transacción: 5
- Fecha de acceso válida solo para el periodo de alojamiento: 3
(***) Valores posibles para el criterio auto asignación de sesiones (TicketEnclosureAutoAssignSessionType)
Para definir el criterio de auto asignación de sesiones utilizamos atributos de tipo entero, pudiendo tomar los siguientes valores:
- No. Las sesiones no se auto asignarán. Deben definirse durante el flujo de venta: 0.
- IfNotSet. Las sesiones se autoasignarán, siempre y cuando no se haya definido durante el flujo de venta: 1.
- ForceSet. Las sesiones se autoasignarán siempre de forma forzada, ignorando si se han definido durante el flujo de venta: 2.