Kravia
Kravia is an invoicing service that enables businesses to send invoices and manage payments across the Nordics (Norway, Sweden, and Finland). By integrating Kravia into your Dintero checkout, you can offer customers invoice-based payment terms while Kravia handles distribution, follow-up, and collection.
Payment Types
| Payment Type | Description | Use Case |
|---|---|---|
kravia.invoice_b2b | Business-to-business invoicing | One-time invoices to companies |
kravia.invoice_b2b_grouped | B2B invoicing with automatic grouping | Multiple purchases consolidated into a single invoice per billing period |
kravia.invoice_b2c | Business-to-consumer invoicing | Invoices to individual customers |
How It Works
- Customer selects invoice payment at checkout.
- Billing information is collected (name, address, email, phone).
- Identity verification via BankID (if required for the payment type).
- Invoice is registered with Kravia.
- Kravia distributes the invoice to the customer.
- Customer pays the invoice via their bank.
- Dintero settles the funds through normal settlement.
Configuration
Enable Kravia payment types in the session configuration when creating a checkout session. We advise setting configuration in the Payment Profile via backoffice. Configuration can also be set in the session api call. The example below enables all three payment types:
POST https://checkout.dintero.com/v1/sessions-profile
Authorization: Bearer <token>
Content-Type: application/json
{
"url": {
"return_url": "https://example.com/accept",
"callback_url": "https://example.com/callback",
"merchant_terms_url": "https://example.com/terms.html"
},
"order": {
"amount": 50000,
"currency": "NOK",
"vat_amount": 10000,
"items": [
{
"amount": 50000,
"quantity": 1,
"line_id": "1",
"description": "Consulting services",
"vat": 25,
"id": "item-1"
}
],
"merchant_reference": "order-123"
},
"configuration": {
"kravia": {
"type": "payment_type",
"invoice_b2b": {
"type": "payment_product_type",
"enabled": true,
"days_until_due": 14,
"require_identity_verification": true
},
"invoice_b2b_grouped": {
"type": "payment_product_type",
"enabled": true,
"days_until_due": 14,
"require_identity_verification": true,
"invoice_schedule": {
"interval": "monthly"
}
},
"invoice_b2c": {
"type": "payment_product_type",
"enabled": true,
"days_until_due": 14
}
}
}
}
Configuration Options
| Option | Applies To | Type | Description |
|---|---|---|---|
days_until_due | All types | Integer (0-365) | Number of days until the invoice is due. Default: 14 days. |
require_identity_verification | B2B, B2B Grouped | Boolean | Whether BankID verification is required before payment. Default: true. Not configurable for B2C (always required). |
invoice_schedule.interval | B2B Grouped only | String | Billing cycle for grouped invoices: "monthly" or "quarterly". |
See related documentation for more information about creating payment sessions:
Identity Verification
Kravia uses BankID to verify customer identity before processing the invoice. Verification requirements vary by payment type:
| Payment Type | Verification | Configurable |
|---|---|---|
kravia.invoice_b2c | Always required | No |
kravia.invoice_b2b | Required by default | Yes — set require_identity_verification: false to disable |
kravia.invoice_b2b_grouped | Required by default | Yes — set require_identity_verification: false to disable |
Transaction Lifecycle
Kravia transactions are automatically captured upon successful registration. Unlike card payments, there is no separate authorization step.
| State | Description |
|---|---|
| CAPTURED | Invoice successfully registered with Kravia. This is the initial successful state. |
| ON_HOLD | Transaction is temporarily held pending further review. |
| FAILED | Invoice registration failed. |
| PARTIALLY_REFUNDED | A partial refund has been issued. The remaining amount is still valid. |
| REFUNDED | The full transaction amount has been refunded. |
| SETTLED | Invoice has been settled to the merchant. |
Refunds and Cancellations
- To cancel an invoice, issue a full refund while the transaction is in the CAPTURED state. This cancels the invoice in Kravia. If the customer has partially paid the invoice, the partial payment is refunded.
- Partial refunds can be issued while the transaction is in the CAPTURED state.
- Refunds are not supported for transactions in the SETTLED state.
The availability of refund actions depends on the current invoice state in Kravia.
Invoice Dates
Standard Invoices (B2B and B2C)
For non-grouped invoices:
- Invoice issue date: The date of the transaction.
- Invoice due date: Issue date +
days_until_due(default: 14 days).
Grouped Invoices (B2B Grouped)
Grouped invoices consolidate multiple purchases from the same customer into a single invoice, issued on a scheduled billing cycle. Configure the cycle using invoice_schedule.interval.
Monthly Billing Cycle
Invoices are issued on the first business day of the following month.
| Purchase Date | Invoice Issue Date | Due Date (14 days) |
|---|---|---|
| January 5th | February 1st (Mon) | February 15th |
| January 20th | February 1st (Mon) | February 15th |
| February 15th | March 1st (Mon)* | March 15th |
*If the 1st falls on a weekend, the invoice is issued on the following Monday.
Quarterly Billing Cycle
Invoices are issued on the first business day of the following quarter.
| Purchase Date | Invoice Issue Date | Due Date (14 days) |
|---|---|---|
| January 15th | April 1st | April 15th |
| February 20th | April 1st | April 15th |
| April 10th | July 1st | July 15th |
Quarter boundaries:
- Q1: January–March
- Q2: April–June
- Q3: July–September
- Q4: October–December
Customer Grouping
For grouped invoices, purchases are consolidated per customer. Customers are identified by a combination of:
- Business name
- Organization number
- Country
All purchases matching the same customer within a billing period are grouped into a single invoice.
Billing Address Requirements
Kravia requires a billing address with all payment types. The required fields differ between B2C and B2B:
| Field | B2C | B2B |
|---|---|---|
first_name | Required | Required |
last_name | Required | Required |
address_line | Required | Required |
postal_code | Required | Required |
country | Required (ISO 3166 alpha-2) | Required (ISO 3166 alpha-2) |
phone_number | Required | Required |
email | Required | Required |
business_name | Optional | Required |
organization_number | — | Required |
For Norway, the organization number is 9 digits. For Sweden, it is either 10 or 12 digits.