Contacts

Update a customer profile

Update sales, collection, tax and DIR3 defaults for the customer role. Supplier defaults are never changed. The contact must already have the customer role.

patch/companies/{company}/contacts/{contact}/customer-profile

Request

  • Base URL: https://api.factuarea.com/v1
  • URL: https://api.factuarea.com/v1/companies/{company}/contacts/{contact}/customer-profile
  • 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).

contactstring uuid required

Public identifier (UUID v7) of the contact.

Headers

Idempotency-Keystring
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.

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.

Request body

default_price_list_uuidstring uuid nullable
discountnumber nullable
vat_ratenumber nullable
retention_ratenumber nullable
surcharge_subjectboolean
operation_regime'general' | 'intracomunitaria' | 'importacion_exportacion' | 'isp' | 'null' nullable
payment_method'bank_transfer' | 'direct_debit' | 'sepa_direct_debit' | 'cash' | 'credit_card' | 'check' | 'paypal' | 'bizum' | 'other' | 'null' nullable
payment_terms_daysinteger nullable
dir3_accounting_officestring nullable
dir3_managing_bodystring nullable
dir3_processing_unitstring nullable

Response

BusinessContactV1Resource

Example response

{
  "data": {
    "id": "0198f4d1-a492-7e05-9a35-000000000001",
    "object": "contact",
    "kind": "company",
    "name": "Distribuciones Ejemplo SL",
    "business_name": "Distribuciones Ejemplo SL",
    "commercial_name": "Ejemplo",
    "tax_id": "B12345674",
    "vat_id": null,
    "alternative_id": null,
    "address": {
      "line1": "Calle Mayor",
      "line2": null,
      "number": "10",
      "floor": null,
      "door": null,
      "staircase": null,
      "city": "Madrid",
      "province": "Madrid",
      "postal_code": "28013",
      "country": "ES"
    },
    "contact_person": "Ana García",
    "email": "administracion@example.com",
    "phone": "+34910000000",
    "mobile": null,
    "fax": null,
    "website": "https://example.com",
    "billing_emails": [
      "facturas@example.com"
    ],
    "tags": [
      "distribuidor"
    ],
    "coordinates": null,
    "notes": null,
    "metadata": {
      "erp_id": "CONTACT-42"
    },
    "accumulate_347": true,
    "external_id": "CONTACT-42",
    "roles": [
      {
        "role": "customer",
        "status": "active",
        "assigned_at": "2026-08-29T10:00:00+00:00",
        "deactivated_at": null
      },
      {
        "role": "supplier",
        "status": "active",
        "assigned_at": "2026-08-29T10:00:00+00:00",
        "deactivated_at": null
      }
    ],
    "bank_accounts": [],
    "customer_profile": null,
    "supplier_profile": null,
    "financial_summary": {
      "sales": {
        "invoiced_amount": "1210.00",
        "collected_amount": "800.00",
        "receivable_amount": "410.00",
        "currency": "EUR"
      },
      "purchases": {
        "purchased_amount": "605.00",
        "paid_amount": "400.00",
        "payable_amount": "205.00",
        "currency": "EUR"
      }
    },
    "latest_activity": null,
    "is_archived": false,
    "archived_at": null,
    "created_at": "2026-08-29T10:00:00+00:00",
    "updated_at": "2026-08-29T10:00:00+00:00"
  }
}

Changes

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