VerifactuMidAPI/test/test_validate.py

55 lines
1.4 KiB
Python

import base64
import json
from urllib.request import urlopen, Request
from urllib.error import URLError
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import padding
from cryptography.hazmat.backends import default_backend
API_URL = "http://localhost:6789"
print("=" * 60)
print("Test: Enviar Factura con Validation")
print("=" * 60)
invoice = {
"tipo": "alta",
"factura": {
"emisor_nif": "53950250R",
"num_serie": "FV2026/001",
"fecha_expedicion": "17-04-2026",
"tipo_factura": "F1",
"descripcion": "Factura de prueba",
"destinatario": {
"nombre": "Cliente Test SL",
"nif": "B12345678"
},
"iva": [
{"base": 100.00, "cuota": 21.00, "tipo": 21.0}
],
"importe_total": 121.00
},
"sistema": {
"nombre": "VeriFactu API",
"nif_proveedor": "53950250R",
"version": "1.0"
}
}
print("\nEnviando factura...")
req = Request(
f"{API_URL}/api/v1/facturas",
data=json.dumps(invoice).encode(),
method="POST"
)
req.add_header("Content-Type", "application/json")
try:
with urlopen(req, timeout=30) as response:
result = json.loads(response.read().decode())
print(json.dumps(result, indent=2))
except URLError as e:
print(f"Error HTTP: {e}")
except Exception as e:
print(f"Error: {type(e).__name__}: {e}")