SPFE - Consulta de pagos, cobros, rechazos e impagos
GET https://{entorno}.ticketbaiws.eus/spfe-estados/
La Ley 18/2022 «Crea y Crece» (desarrollada por el RD 238/2026 y la Orden HAC/1028/2026) obliga a expedir las facturas entre empresas y profesionales en formato electrónico y a informar de su estado: pago, cobro, rechazo o impago. Ticketbai WS envía automáticamente a la Solución Pública de Facturación Electrónica (SPFE) de la AEAT las facturas completas a clientes españoles con NIF que emites con el API, en formato UBL, y descarga las facturas que recibes de tus proveedores.
Estos métodos solo están disponibles para las empresas que tienen activado el envío a la SPFE. Se activa en los datos de la empresa del área privada (Factura electrónica B2B) o con el parámetro spfe de los métodos Nueva empresa y Editar datos empresa. Al activarlo se envían las facturas desde ese día.
Devuelve los últimos 100 estados (pago, cobro, rechazo, impago) comunicados a la SPFE con POST spfe-estados o desde el área privada, con el resultado de cada uno: PENDING (en cola), OK (aceptado por la AEAT) o ERROR (con la lista de errores). Todos los filtros son opcionales y se pueden combinar.
Los métodos GET permiten el envío de los parámetros en el body como payload JSON o mediante query string en la URL como se ve en el ejemplo cURL.
PARÁMETROS
| id integer opcional Identificador devuelto por POST spfe-estados | 128 |
| serie string opcional Serie de una factura emitida | A |
| numero string opcional Número de una factura emitida | 2026000245 |
| factura string opcional Serie y número de la factura (emitida o recibida) | F2026-0153 |
| nif_emisor string opcional NIF del emisor de la factura | B01000012 |
RESPUESTA (return, una fila por estado)
| id integer Identificador del estado en Ticketbai WS | 128 |
| estado / baja Estado comunicado y si es una anulación | pago |
| factura, fecha_factura, nif_emisor Factura a la que se refiere | F2026-0153 |
| fecha / vencimiento Fechas comunicadas (dd/mm/yyyy) | 10/11/2026 |
| result string PENDING en cola, OK aceptado por la AEAT, ERROR rechazado (ver errores) | OK |
| errores array Lista de errores de la AEAT: codigo y descripcion |
$ curl --request GET \
--url 'https://api-test.ticketbaiws.eus/spfe-estados/?factura=F2026-0153&nif_emisor=B01000012' \
--header 'Accept: application/json' \
--header 'Token: xxx' \
--header 'Nif: 00000014Z'
$ composer require guzzlehttp/guzzle
<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://api-test.ticketbaiws.eus/spfe-estados/?factura=F2026-0153&nif_emisor=B01000012', [
'headers' => [
'Accept' => 'application/json',
'Token' => 'xxx',
'Nif' => '00000014Z'
],
]);
echo $response->getBody();
$ python -m pip install requests
import requests
url = "https://api-test.ticketbaiws.eus/spfe-estados/?factura=F2026-0153&nif_emisor=B01000012"
headers = {"Accept": "application/json", "Token": "xxx", "Nif": "00000014Z"}
response = requests.request("GET", url, headers=headers)
print(response.text)
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://api-test.ticketbaiws.eus/spfe-estados/?factura=F2026-0153&nif_emisor=B01000012");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Accept: application/json");
headers = curl_slist_append(headers, "Token: xxx");
headers = curl_slist_append(headers, "Nif: 00000014Z");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
CURLcode ret = curl_easy_perform(hnd);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://api-test.ticketbaiws.eus/spfe-estados/?factura=F2026-0153&nif_emisor=B01000012")
.get()
.addHeader("Accept", "application/json")
.addHeader("Token", "xxx")
.addHeader("Nif", "00000014Z")
.build();
Response response = client.newCall(request).execute();
HTTP/1.1 200 OK
{
"result": "OK",
"return": [
{
"id": 128,
"estado": "pago",
"baja": false,
"factura": "F2026-0153",
"fecha_factura": "03\/11\/2026",
"nif_emisor": "B01000012",
"fecha": "10\/11\/2026",
"vencimiento": "03\/12\/2026",
"result": "OK",
"errores": []
},
{
"id": 131,
"estado": "cobro",
"baja": false,
"factura": "A2026000245",
"fecha_factura": "28\/10\/2026",
"nif_emisor": "00000014Z",
"fecha": "09\/11\/2026",
"vencimiento": "27\/11\/2026",
"result": "OK",
"errores": []
}
],
"msg": null
}
Métodos TicketBAI / Verifactu
- POST Nueva factura / subsanación (zuzendu) TicketBAI / Verifactu
- POST Completar factura simplificada
- GET Consulta factura TicketBAI / Verifactu
- GET Listado facturas TicketBAI / Verifactu
- GET Descarga XML TicketBAI / Verifactu
- GET Descarga factura en formato FacturaE
- GET Descarga factura en PDF
- GET Estado sistema
- DEL Anular factura TicketBAI / Verifactu
- PUT Forzar reenvío TicketBAI / Verifactu
- POST Validar NIF en la AEAT
- POST Validar NIF en el VIES
Documento representación
- GET Documento Representación - Descargar modelo
- POST Documento Representación - Enviar documento
- GET Documento Representación - Descargar documento cargado
- DELETE Documento Representación - Revocar documento cargado
Métodos específicos para BATUZ BIZKAIA
- GET Listado de epígrafes
- POST LROE - Facturas recibidas - Envío (BATUZ)
- PUT LROE - Facturas recibidas - Modificar (BATUZ)
- GET LROE - Facturas recibidas - Consulta (BATUZ)
- DEL LROE - Facturas recibidas - Anular (BATUZ)
- POST LROE - Criterio Caja COBROS - Envío (BATUZ)
- PUT LROE - Criterio Caja COBROS - Modificar (BATUZ)
- GET LROE - Criterio Caja COBROS - Consulta (BATUZ)
- DEL LROE - Criterio Caja COBROS - Anular (BATUZ)
- POST LROE - Criterio Caja PAGOS - Envío (BATUZ)
- PUT LROE - Criterio Caja PAGOS - Modificar (BATUZ)
- GET LROE - Criterio Caja PAGOS - Consulta (BATUZ)
- DEL LROE - Criterio Caja PAGOS - Anular (BATUZ)
Factura electrónica B2B - SPFE (Ley Crea y Crece)
- POST SPFE - Comunicar pago, cobro, rechazo o impago
- GET SPFE - Consulta de pagos, cobros, rechazos e impagos
- GET SPFE - Facturas recibidas
