---
title: "Retry sending an invoice"
method: POST
path: "/invoices/{invoice_id}/retry-send"
tags: ["Invoicing"]
---

# Retry sending an invoice

`POST /invoices/{invoice_id}/retry-send`

Retries delivery of an invoice whose previous send attempt failed. Safe pre-acceptance failures (delivery_status `send_retryable`) retry as-is. Provider-terminal failures (`failed`, `send_failed`) require a non-empty `reason` recorded in the audit trail — correct the recipient's e-invoice address and operator first; the resend creates a new e-invoice and the failed one stays on record. `send_ambiguous` sends are refused (409) until the outcome is verified with the operator. Requires a write-scoped key.

## Path parameters

- `invoice_id` string, required

## Request body

- object
  - `customer_id` string — Target company. Optional for API keys.
  - `reason` string — Why the resend is safe (e.g. "recipient routing corrected"). Required when delivery_status is `failed` or `send_failed`.

## Response `200`

Updated invoice.

- PortalInvoice — One sales invoice or draft. Amounts are integer cents; interior fields beyond the stable ones vary by status.
  - `id` string
  - `status` string
  - `delivery_channel` string
  - `customer` Party — An invoicing counterparty (the customer you invoice), with e-invoice routing and per-party defaults. Rates in basis points (25.5% = 2550).
    - `id` string — Party id. Include on upsert to update an existing party.
    - `name` string, required
    - `business_id` string — Finnish business ID (Y-tunnus), e.g. `1234567-8`.
    - `vat_number` string — EU VAT number, e.g. `FI12345678`.
    - `address_line1` string
    - `postal_code` string
    - `city` string
    - `country_code` string — ISO 3166-1 alpha-2, e.g. `FI`.
    - `email` string
    - `einvoice_address` string — E-invoice (verkkolasku) address, e.g. an OVT identifier.
    - `einvoice_operator` string — E-invoice operator/intermediator code.
    - `default_payment_terms_days` integer
    - `default_vat_code` string
    - `default_vat_rate_basis_points` integer — Default VAT rate in basis points (25.5% = 2550).
    - `default_invoice_language` string
  - `lines` InvoiceLine[]
    - `description` string, required
    - `quantity` string, required — Decimal quantity as a string, e.g. `"2.5"`.
    - `unit_price_cents` integer, required — Unit price in integer cents.
    - `vat_rate_basis_points` integer, nullable — VAT rate in basis points (25.5% = 2550); null when not applicable.
    - `vat_code` string — VAT treatment code.
    - `net_cents` integer, required — Line net amount in integer cents.
    - `vat_cents` integer, required — Line VAT amount in integer cents.
    - `gross_cents` integer, required — Line gross amount in integer cents.

## Other responses

- `400` — Missing reason for a provider-terminal failure requeue.
- `401` — Missing or invalid bearer token.
- `403` — Insufficient scope or role — e.g. a read-scoped key on a mutating method, or an API key on an admin/approver-only endpoint.
- `409` — Not in a retryable state (including `send_ambiguous`, which must be verified with the e-invoice operator before retrying).

---

[API](https://skmtc.net/lastaccountingcompany/apis/lac-customer-api.md) · [All operations](https://skmtc.net/lastaccountingcompany/apis/lac-customer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lastaccountingcompany/lac-customer-api/revisions/52e277b4f031/schema)
