DOCUMENTAZIONE API
Integra Proofy con il tuo ERP o gestionale tramite le nostre API RESTful complete.
Introduzione
Le API di Proofy ti permettono di gestire spedizioni, autisti e documenti di trasporto in modo programmatico. Tutte le API seguono le convenzioni REST e utilizzano JSON per richieste e risposte.
/api/v1
Autenticazione
Tutte le API (eccetto /auth/token) richiedono autenticazione via Bearer token JWT.
- Ottieni le credenziali API dal pannello admin (Impostazioni > API)
- Chiama
POST /api/v1/auth/tokenconapi_keyeapi_secret - Usa il token ricevuto nell'header
Authorization: Bearer {token}
{
"api_key": "tk_live_abc123def456",
"api_secret": "sk_live_xyz789ghi012"
}
Rate Limiting
- ! 100 richieste/minuto per endpoint
- ! 1000 richieste/ora totali
Errori
Gli errori seguono il formato standard:
{
"message": "Descrizione errore",
"errors": {
"campo": ["Dettaglio errore"]
}
}
Authentication
POST
/auth/token
/auth/token
Ottieni un token JWT di accesso.
{
"api_key": "string (required)",
"api_secret": "string (required)"
}
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"token_type": "Bearer",
"expires_in": 3600,
"tenant": {
"id": 1,
"name": "Azienda Demo",
"plan": "professional"
}
}
POST
/auth/refresh
/auth/refresh
Rinnova un token JWT valido prima della scadenza. Richiede autenticazione.
GET
/auth/me
/auth/me
Restituisce le informazioni del tenant autenticato e le quote di utilizzo.
{
"id": 1,
"name": "Azienda Demo",
"plan": "professional",
"quota": {
"shipments_used": 45,
"shipments_limit": 1000,
"drivers_used": 2,
"drivers_limit": 10
}
}
Shipments
GET
/shipments
/shipments
Restituisce la lista paginata delle spedizioni.
status- Filtra per stato (unassigned, assigned, in_delivery, completed, not_delivered)date- Filtra per data (YYYY-MM-DD)driver_id- Filtra per ID autistaper_page- Risultati per pagina (default: 15, max: 100)
POST
/shipments
/shipments
Crea una nuova spedizione/DDT.
{
"document_number": "DDT-2026-001",
"customer_name": "Ristorante La Pergola",
"customer_email": "info@lapergola.it",
"customer_phone": "+39 06 1234567",
"delivery_address": "Via Roma 123, 00100 Roma RM",
"scheduled_date": "2026-01-28",
"scheduled_time": "10:00",
"notes": "Consegna al piano terra",
"driver_id": 1,
"external_id": "ERP-12345"
}
GET
/shipments/{'{id}'}
/shipments/{'{id}'}
Restituisce i dettagli completi di una spedizione.
PUT
/shipments/{'{id}'}
/shipments/{'{id}'}
Aggiorna i dati di una spedizione esistente.
DELETE
/shipments/{'{id}'}
/shipments/{'{id}'}
Elimina una spedizione. Non è possibile eliminare spedizioni già firmate.
GET
/shipments/{'{id}'}/status
/shipments/{'{id}'}/status
Restituisce lo stato corrente e la cronologia degli stati.
GET
/shipments/{'{id}'}/pod
/shipments/{'{id}'}/pod
Restituisce i dati della prova di consegna (firma, PDF, coordinate GPS).
{
"signed": true,
"signatory_name": "Mario Rossi",
"signatory_role": "Responsabile Magazzino",
"signed_at": "2026-01-28T10:30:00Z",
"signature_image_url": "/storage/signatures/...",
"pdf_url": "/storage/pods/...",
"gps_latitude": 41.9028,
"gps_longitude": 12.4964
}
Drivers
GET
/drivers
/drivers
Restituisce la lista degli autisti del tenant.
active- Filtra per stato attivo (true/false)
POST
/drivers
/drivers
Crea un nuovo autista. Genera automaticamente badge e codice interno.
{
"first_name": "Mario",
"last_name": "Rossi",
"email": "mario.rossi@email.it",
"phone": "+39 333 1234567",
"internal_code": "DRV001",
"external_id": "ERP-DRV-001"
}
GET
/drivers/{'{id}'}
/drivers/{'{id}'}
Restituisce i dettagli di un autista.
PUT
/drivers/{'{id}'}
/drivers/{'{id}'}
Aggiorna i dati di un autista.
DELETE
/drivers/{'{id}'}
/drivers/{'{id}'}
Disattiva un autista (soft delete).
GET
/drivers/{'{id}'}/shipments
/drivers/{'{id}'}/shipments
Restituisce le spedizioni assegnate a un autista.
date- Filtra per data (YYYY-MM-DD)status- Filtra per stato
HAI BISOGNO DI AIUTO?
Contattaci per supporto tecnico sull'integrazione API.
CONTATTACI