Siirry sisältöön

Maventa-integraatio

Maventa on suomalainen verkkolaskuoperaattori, jonka kautta Kirjapro lähettää Finvoice 3.0 -verkkolaskuja.

┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Kirjapro │────▶│ Supabase Edge │────▶│ Maventa API │
│ Frontend │ │ Functions │ │ (ax.maventa) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │
▼ ▼
┌──────────────────┐ ┌─────────────────┐
│ Supabase │◀────│ Webhooks │
│ Database │ │ (status) │
└──────────────────┘ └─────────────────┘
Terminal window
POST https://ax.maventa.com/oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
&client_id={vendor_api_key}
&client_secret={user_api_key}
&scope=eui
&company_uuid={company_uuid}

Response:

{
"access_token": "eyJ...",
"token_type": "Bearer",
"expires_in": 3600
}
Terminal window
POST https://ax.maventa.com/v1/invoices
Authorization: Bearer {access_token}
Content-Type: application/json
{
"format": "FINVOICE30",
"invoice": "{base64-encoded-finvoice-xml}",
"recipient": {
"eia": "003798765432",
"operator": "003721291126"
}
}

Response:

{
"id": "invoice-uuid",
"status": "PENDING",
"created_at": "2024-01-15T10:30:00Z"
}
Terminal window
GET https://ax.maventa.com/v1/invoices/{invoice_id}
Authorization: Bearer {access_token}

Maventa lähettää webhook-kutsun kun laskun tila muuttuu:

{
"event": "invoice.delivered",
"invoice_id": "invoice-uuid",
"status": "DELIVERED",
"timestamp": "2024-01-15T11:00:00Z"
}
StatusMerkitys
PENDINGOdottaa lähetystä
SENTLähetetty operaattorille
DELIVEREDToimitettu vastaanottajalle
FAILEDLähetys epäonnistui
REJECTEDVastaanottaja hylkäsi
const signature = req.headers.get('X-Maventa-Signature');
const expectedSignature = createHmac('sha256', WEBHOOK_SECRET)
.update(JSON.stringify(payload))
.digest('hex');
if (signature !== expectedSignature) {
return new Response('Invalid signature', { status: 401 });
}
KoodiVirheRatkaisu
401Invalid credentialsTarkista API-avaimet
400Invalid FinvoiceValidoi XML-rakenne
404Recipient not foundTarkista verkkolaskuosoite
429Rate limitedOdota ja yritä uudelleen

Kirjapro yrittää uudelleen epäonnistuneet lähetykset:

  1. Ensimmäinen yritys heti
  2. Toinen yritys 5 min kuluttua
  3. Kolmas yritys 30 min kuluttua
  4. Merkitään epäonnistuneeksi
  1. Rekisteröidy: testing.maventa.com
  2. Pyydä vendor_api_key osoitteesta integrations@maventa.com
  3. Testaa lähettämällä lasku testiosoitteeseen
EIA: 003700000000
Operator: 003721291126