Contacts

Preview a contact import

Validate a contact import without writing. Each row is classified as create, update, add-role, merge candidate, conflict or invalid; ambiguous identities are never merged automatically. A file containing only column headers returns 200 with total 0, no rows and source_headers preserved in their original order, so clients can inspect template columns before adding data.

post/companies/{company}/contacts/import/preview

Request

  • Base URL: https://api.factuarea.com/v1
  • URL: https://api.factuarea.com/v1/companies/{company}/contacts/import/preview
  • Auth: one of:
    • HTTP bearer
    • API key in header X-API-Key

Path parameters

companystring uuid required

Public identifier (UUID v7) of the company. Get it from GET /v1/me (data.scope[].id).

Headers

Idempotency-Keystring required
Example:01928f10-7c0e-7c4a-9b7d-2f8a6e3c1d4b

Client-generated opaque key (up to 255 characters; UUID v7 recommended) that makes retries safe: the first response is cached and replayed for repeats without re-executing the mutation. Reusing a key with a different body returns 422 idempotency_key_reused; the values of secret fields (password, secret…) count as part of the body, so retrying with a corrected secret under the same key is a different request, never the replay of the earlier answer. See the Idempotency guide. Required on this operation: repeating it delivers an effect that cannot be taken back (an email sent, a file generated, a third-party call, a charge), so a request without this header is rejected with 422 idempotency_key_required before any business logic runs.

Factuarea-Versionstring date
Example:2026-06-01

Pin the API version (YYYY-MM-DD, Stripe-style date versioning) for this request; omit to use the key's pinned version, or the latest if none. Unsupported version → 400 unsupported_api_version; malformed → 400 parameter_invalid_format. The effective version is echoed in the Factuarea-Version response header. See the Versioning guide.

Response

BusinessContactImportPreviewResource

Example response

{
  "data": {
    "source_headers": [
      "Name",
      "VAT number",
      "Email"
    ],
    "rows": [
      {
        "row": 2,
        "action": "create",
        "reason": null,
        "target_uuid": null,
        "errors": [],
        "warnings": []
      }
    ],
    "total": 1,
    "create": 1,
    "update": 0,
    "add_role": 0,
    "merge_candidate": 0,
    "skip": 0,
    "conflict": 0,
    "invalid": 0,
    "dry_run": true,
    "queued": false,
    "import_uuid": null,
    "added_count": null,
    "updated_count": null,
    "skipped_count": null,
    "failed_count": null,
    "warnings_count": null,
    "unprocessed_count": null,
    "skip_reasons": {},
    "outcome_kind": null,
    "status": null,
    "failure_reason": null
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.