DAVATEL API v1.9 for distributors

Tariff finder, catalogue, complete service orders and electricity and gas savings studies. Current contract: 2026-09-14-COMERCIAL-PREPAGO-V6.

Important service ordering update

The API validates the same operational data as the DAVATEL form. Incomplete service orders are not saved: HTTP 400 is returned, identifying the missing field.

INDIVIDUALSELF-EMPLOYEDCOMPANYBoth sides of the DNIIBAN requiredSIM/eSIM for every mobile line2 mandatory consents

MÁSMÓVIL, PEPEPHONE, JAZZTEL and SIMYO: all require a bank receipt; SELF-EMPLOYED customers also need a self-employment contribution receipt; COMPANIES also need their CIF, the cover or first page of the company deeds and the page identifying the administrator. The two deed pages must be sent as separate files. For COMPANIES, both sides of the DNI must be those of the administrator.

New operators and confidentiality

The public catalogue includes authorised residential offers from MÁSMÓVIL, PEPEPHONE, JAZZTEL and SIMYO. Since V25, private, BTL and existing-customer offers are also included in the API when visible and valid, retaining their eligibility conditions. Vodafone Mi Negocio Pro only accepts EMPRESA and number porting; Lowi accepts PARTICULAR and AUTONOMO.

MOVISTAR visible without tariffsUnified HUMANITYPrivate offers subject to eligibility

Updated AVATEL catalogue

AVATEL is listed as a single operator for all its coverage areas. The API includes the Back to School/NOVA offer, CLICtv and the new add-on bundles.

Maximum 5 AVATEL linesAdditional lines without data rolloverCanal Local for €5Separate one-off payments

Each tariff returns condiciones_publicas, vigencia_desde, vigencia_hasta, solo_cliente_nuevo, periodicidad_precio, max_lineas_cliente and gigas_acumulables. Expired tariffs are not shown. Products with periodicidad_precio=PAGO_UNICO are not added to the monthly fee.

Revision V7: minimum bundle cost

Complete combinations of compatible mobile and TV add-ons are compared. Ranking prioritises the current total fee; ties are broken by the lowest standard fee after promotions, followed by the remaining tie-breakers. Rules for data per line, shared allowances and MULTISIM are retained.

The fields precio_total, precio_normal_total and fases_precio keep their format. Authentication and endpoints are unchanged.

Commercial update V13

Searches support tipo_cliente. The current price, date-based phases and selected platforms are returned with each offer. An allowance of 1, 2 or 3 OTT services is represented by specific compatible selections. Previous tariffs are not used for new bundle orders.

fases_precio may include desde_fecha and hasta_fecha (YYYY-MM-DD) when a promotion has a fixed end date. Existing month-based phases are retained for other tariffs. Always check /order-requirements before displaying the form.

Authentication

X-API-Key: dvt_live_...
X-Davatel-Domain: www.tudominio.es

Do not expose the key in public JavaScript. Use your own backend/proxy.

v1 endpoints

MethodPathUsage
GET/api/v1/statusConnection, version and contract.
GET/api/v1/operatorsPublic operators.
GET/api/v1/rate-typesTariff types for filters.
GET/api/v1/ratesCatalogue without commissions.
GET/api/v1/rates/:idTariff details.
POST/api/v1/rates/searchTariff finder: price and services.
GET/api/v1/order-fieldsCustomer and system fields.
POST/api/v1/order-requirementsExact requirements for the selection.
POST/api/v1/ordersCreate a complete service order.
GET/api/v1/ordersList the distributor’s service orders.
GET/api/v1/orders/:referenciaLook up a service order.

Recommended workflow

  1. Query /order-fields.
  2. Select a tariff or bundle.
  3. Call /order-requirements.
  4. Display exactly the specified fields.
  5. Send /orders.
POST /api/v1/order-requirements
{
  "tipo_cliente": "EMPRESA",
  "tarifa_id": 2,
  "productos": [{"tarifa_id":2,"cantidad":1}]
}

Required system fields

FieldRule
tipo_clientePARTICULAR, AUTONOMO or EMPRESA.
ibanRequired and validated.
fibra_misma_direccionRequired if the main tariff includes fibre. If NO: address, postcode, town and province.
detalles_productosLandline and mobile lines. Each mobile requires a type and SIM/ESIM. Number porting requires a number and tipo_origen (CONTRATO/PREPAGO); PREPAGO also requires the original card’s ICC as text. New Vodafone/Lowi offers require operador_origen for each porting request.
aceptacion_privacidad_clienteRequired.
autorizacion_documentos_clienteRequired.
comunicaciones_comerciales_clienteOptional.
dni_anverso and dni_reversoRequired. For EMPRESA, these are the administrator’s documents. JPG, PNG, WEBP or PDF, maximum 8 MB per file.
recibo_bancarioRequired for MÁSMÓVIL, PEPEPHONE, JAZZTEL and SIMYO.
recibo_autonomoRequired for self-employed customers with the four new operators.
cif_empresaRequired when tipo_cliente=EMPRESA.
escrituras_portadaCover or first page of the company deeds, in a separate file. Required for EMPRESA with the four new operators.
escrituras_administradorPage identifying the administrator, in another file. Required for EMPRESA with the four new operators.

detalles_productos example

[
  {
    "tarifa_id": 2,
    "unidades": [
      {
        "moviles": [
          {"tipo":"PORTABILIDAD","sim":"ESIM","numero":"600000000","tipo_origen":"PREPAGO","operador_origen":"Orange","icc":"8934000000000000001"}
        ]
      }
    ]
  },
  {
    "tarifa_id": 5,
    "unidades": [
      {"fijo":{"tipo":"NUEVO","numero":""}}
    ]
  }
]

Values: NUEVO/PORTABILIDAD and SIM/ESIM.

Stable customer keys

Always use campo_ID returned by /order-fields. The former campo_14 keeps the same key, but its correct label is PROVINCE.

For EMPRESA, DAVATEL interprets campo_3 as the company name, does not require surnames and displays campo_5 as CIF.

Errors that prevent incomplete activations

{"ok":false,"error":"validation_error","campo":"iban","mensaje":"Falta el campo obligatorio: IBAN"}

{"ok":false,"error":"validation_error","campo":"detalles_productos","mensaje":"Falta SIM/eSIM de la línea móvil 1 de CONECTA SENCILLO"}

Electricity and gas

Version 1.9 lets you submit bills, check the study, download the savings report, indicate that the customer declines or submit the service order request.

POST /api/v1/energy-studies · GET /api/v1/energy-studies · GET /api/v1/energy-studies/:referencia/report · POST /decline · POST /contract

Television and streaming

Operator-specific add-ons can only be combined with that operator. DAVATEL TV is universal. Netflix, Prime Video, Disney Plus, Movistar Plus, HBO Max, SkyShowtime, DAZN Motor, DAZN Fútbol, DAZN Premium and Filmin do not count as linear television on their own.

Browser security

The key X-API-Key stays exclusively on the server. The widget and tester use the included self-hosted proxy and never receive the key.

Compatibility

consentimiento_rgpd is still accepted as a privacy alias, but does not replace document authorisation. tarifa_ids remains available; we recommend productos. The keys campo_ID are unchanged.

The API revalidates the main product and all add-ons in order-requirements and orders. The “SOLO PARA TARIFAS” lists in the product description or public terms must be followed; a prohibited combination returns HTTP 400 with error=incompatible_tariff_combination.

Integration files

MIGRACION_A_API_V1_9.md · openapi-davatel-v1.yaml · DAVATEL_API.postman_collection.json · davatel-api-sdk.js · davatel-widget.js · PROXY_SEGURO_NODE.js

New V15 filters

No preference by default, or Yes. The search adds compatible add-ons and their prices. Filmin requires Vodafone TV; DAZN Premium can cover Motor and Fútbol with one subscription.

PlatformField
HBO Maxhbo_max
SkyShowtimeskyshowtime
DAZN Motordazn_motor
DAZN Fútboldazn_futbol
DAZN Premiumdazn_premium
Filminfilmin