51 lines
1.3 KiB
Python
51 lines
1.3 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")
|
|
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",
|
|
"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: {e}")
|
|
except Exception as e:
|
|
print(f"Error: {e}") |