Agicap Clients AR (v1)

Manage and synchronize clients data within the Accounts Receivable module.

OpenAPI Specification

agicap-ar-clients-v1-openapi.json Raw ↑
{
 "components": {
  "schemas": {
   "AddClientAddressesRequest": {
    "properties": {
     "clientAddresses": {
      "description": "List of client addresses to create",
      "items": {
       "$ref": "#/components/schemas/ClientAddressToCreate"
      },
      "type": "array"
     }
    },
    "required": [
     "clientAddresses"
    ],
    "type": "object"
   },
   "AddClientAddressesResponse": {
    "properties": {
     "created": {
      "description": "Successfully created client addresses",
      "items": {
       "$ref": "#/components/schemas/CreatedClientAddress"
      },
      "type": "array"
     },
     "notCreated": {
      "description": "Client addresses that failed to be created",
      "items": {
       "$ref": "#/components/schemas/NotCreatedClientAddress"
      },
      "type": "array"
     }
    },
    "required": [
     "created",
     "notCreated"
    ],
    "type": "object"
   },
   "AddExternalContactFailureEnum": {
    "description": "Reason why the external contact could not be created",
    "enum": [
     "CLIENT_NOT_FOUND",
     "EXTERNAL_ID_ALREADY_EXISTS"
    ],
    "type": "string"
   },
   "Address": {
    "properties": {
     "city": {
      "description": "City name",
      "example": "Paris",
      "type": "string"
     },
     "country": {
      "allOf": [
       {
        "$ref": "#/components/schemas/CountryEnum"
       }
      ],
      "description": "Country code (ISO 3166-1)"
     },
     "line1": {
      "description": "Primary address line (street name and number)",
      "example": "5 Rodeo Street",
      "type": "string"
     },
     "line2": {
      "description": "Secondary address line (apartment, suite, building, etc.)",
      "example": "4th floor",
      "nullable": true,
      "type": "string"
     },
     "name": {
      "description": "Name of the address (e.g., \"Main Office\", \"Billing Address\")",
      "example": "Main Office",
      "type": "string"
     },
     "postalCode": {
      "description": "Postal or ZIP code",
      "example": "75100",
      "type": "string"
     }
    },
    "required": [
     "name",
     "line1",
     "line2",
     "postalCode",
     "city",
     "country"
    ],
    "type": "object"
   },
   "AddressCreationFailureEnum": {
    "description": "Reason why the address could not be created",
    "enum": [
     "CLIENT_NOT_FOUND",
     "CLIENT_ADDRESS_ALREADY_EXISTS"
    ],
    "type": "string"
   },
   "AssignUsersToClientsByExternalIdFailureReasonEnum": {
    "description": "Reason why the user could not be assigned to the client.",
    "enum": [
     "USER_NOT_FOUND",
     "CLIENT_NOT_FOUND"
    ],
    "type": "string"
   },
   "AssignUsersToClientsByExternalIdRequest": {
    "properties": {
     "assignments": {
      "description": "List of client-to-users assignments. Max 1000 items per request.",
      "items": {
       "$ref": "#/components/schemas/ClientUserRightAssignment"
      },
      "type": "array"
     }
    },
    "required": [
     "assignments"
    ],
    "type": "object"
   },
   "AssignUsersToClientsByExternalIdResponse": {
    "properties": {
     "assigned": {
      "description": "Successfully assigned user-to-client groups.",
      "items": {
       "$ref": "#/components/schemas/ClientUserAssignment"
      },
      "type": "array"
     },
     "notAssigned": {
      "description": "User-to-client groups that could not be assigned.",
      "items": {
       "$ref": "#/components/schemas/FailedClientUserAssignment"
      },
      "type": "array"
     }
    },
    "required": [
     "assigned",
     "notAssigned"
    ],
    "type": "object"
   },
   "AssignmentFailure": {
    "properties": {
     "agicapUserEmail": {
      "description": "Email address of the Agicap user that could not be assigned.",
      "example": "unknown@example.com",
      "type": "string"
     },
     "reason": {
      "allOf": [
       {
        "$ref": "#/components/schemas/AssignUsersToClientsByExternalIdFailureReasonEnum"
       }
      ],
      "description": "Reason why the user could not be assigned to the client."
     }
    },
    "required": [
     "agicapUserEmail",
     "reason"
    ],
    "type": "object"
   },
   "Client": {
    "properties": {
     "averagePaymentDelay": {
      "description": "Average payment delay of the client in days. `null` when not enough data is available.",
      "example": 12,
      "nullable": true,
      "type": "number"
     },
     "consolidatedCurrency": {
      "allOf": [
       {
        "$ref": "#/components/schemas/Currency"
       }
      ],
      "description": "Entity main currency the consolidated amounts are expressed in."
     },
     "consolidatedDueAmount": {
      "description": "Total due amount consolidated into the entity main currency, in currency units (not cents), rounded.",
      "example": 1680,
      "type": "number"
     },
     "consolidatedOutstandingAmount": {
      "description": "Total outstanding amount consolidated into the entity main currency, in currency units (not cents), rounded.",
      "example": 2380,
      "type": "number"
     },
     "dueAmountSummary": {
      "description": "Due amounts broken down by currency, with conversion to the entity main currency.",
      "items": {
       "$ref": "#/components/schemas/DueAmountSummaryItem"
      },
      "type": "array"
     },
     "electronicInvoicingAddress": {
      "description": "Address used for electronic invoicing (Chorus Pro, Peppol, etc.)",
      "example": "83486222100034",
      "nullable": true,
      "type": "string"
     },
     "externalId": {
      "description": "Identifier from the ERP or external invoicing system",
      "example": "erp_agicap_001",
      "nullable": true,
      "type": "string"
     },
     "id": {
      "description": "Unique client identifier (UUID format)",
      "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "type": "string"
     },
     "legalId": {
      "description": "Legal identifier (SIREN, SIRET, VAT, etc.)",
      "example": "FR12345678901",
      "nullable": true,
      "type": "string"
     },
     "name": {
      "description": "Client name",
      "example": "Agicap",
      "type": "string"
     },
     "numberOfContacts": {
      "description": "Number of external contacts attached to the client.",
      "example": 3,
      "type": "number"
     },
     "outstandingAmountSummary": {
      "description": "Outstanding amounts broken down by currency, with conversion to the entity main currency.",
      "items": {
       "$ref": "#/components/schemas/OutstandingAmountSummaryItem"
      },
      "type": "array"
     },
     "reference": {
      "description": "Business reference for the client",
      "example": "Agicap",
      "type": "string"
     },
     "tags": {
      "description": "Tags associated with the client",
      "example": [
       "priority",
       "france"
      ],
      "items": {
       "type": "string"
      },
      "type": "array"
     }
    },
    "required": [
     "id",
     "name",
     "reference",
     "externalId",
     "legalId",
     "electronicInvoicingAddress",
     "tags",
     "outstandingAmountSummary",
     "dueAmountSummary",
     "averagePaymentDelay",
     "numberOfContacts",
     "consolidatedOutstandingAmount",
     "consolidatedDueAmount",
     "consolidatedCurrency"
    ],
    "type": "object"
   },
   "ClientAddressToCreate": {
    "properties": {
     "city": {
      "description": "City name",
      "example": "Paris",
      "maxLength": 250,
      "type": "string"
     },
     "clientExternalId": {
      "description": "Identifier from the ERP or external system. Max 1000 characters. Value is trimmed.",
      "example": "client_1",
      "maxLength": 1000,
      "type": "string"
     },
     "country": {
      "allOf": [
       {
        "$ref": "#/components/schemas/CountryEnum"
       }
      ],
      "description": "Country code (ISO 3166-1)"
     },
     "line1": {
      "description": "Primary address line (street name and number)",
      "example": "5 Rodeo Street",
      "maxLength": 250,
      "type": "string"
     },
     "line2": {
      "description": "Secondary address line (apartment, suite, building, etc.)",
      "example": "4th floor",
      "maxLength": 250,
      "type": "string"
     },
     "name": {
      "description": "Name of the address (e.g., \"Main Office\", \"Billing Address\")",
      "example": "Main Office",
      "maxLength": 38,
      "type": "string"
     },
     "postalCode": {
      "description": "Postal or ZIP code. Validated against country-specific postal code format.",
      "example": "75100",
      "maxLength": 38,
      "type": "string"
     }
    },
    "required": [
     "clientExternalId",
     "name",
     "line1",
     "postalCode",
     "city",
     "country"
    ],
    "type": "object"
   },
   "ClientAddressToUpdate": {
    "properties": {
     "city": {
      "description": "City name",
      "example": "Paris",
      "maxLength": 250,
      "type": "string"
     },
     "clientExternalId": {
      "description": "Identifier from the ERP or external system. Max 1000 characters. Value is trimmed.",
      "example": "client_1",
      "maxLength": 1000,
      "type": "string"
     },
     "country": {
      "allOf": [
       {
        "$ref": "#/components/schemas/CountryEnum"
       }
      ],
      "description": "Country code (ISO 3166-1)"
     },
     "line1": {
      "description": "Primary address line (street name and number)",
      "example": "5 Rodeo Street",
      "maxLength": 250,
      "type": "string"
     },
     "line2": {
      "description": "Secondary address line (apartment, suite, building, etc.)",
      "example": "4th floor",
      "maxLength": 250,
      "type": "string"
     },
     "name": {
      "description": "Name of the address (e.g., \"Main Office\", \"Billing Address\")",
      "example": "Main Office",
      "maxLength": 38,
      "type": "string"
     },
     "postalCode": {
      "description": "Postal or ZIP code. Validated against country-specific postal code format.",
      "example": "75100",
      "maxLength": 38,
      "type": "string"
     }
    },
    "required": [
     "clientExternalId",
     "name",
     "line1",
     "postalCode",
     "city",
     "country"
    ],
    "type": "object"
   },
   "ClientInternalContact": {
    "properties": {
     "clientExternalId": {
      "description": "Identifier from the ERP or external system for the client. Max 1000 characters. Value is trimmed.",
      "example": "client_1",
      "maxLength": 1000,
      "type": "string"
     },
     "email": {
      "description": "Email address of the contact. Must be a valid email address. Value is lowercased and trimmed. Must be unique per client: if the email already exists, the contact will appear in the notCreated list with reason EMAIL_ALREADY_EXISTS.",
      "example": "john.doe@example.com",
      "type": "string"
     },
     "externalId": {
      "description": "Identifier from the ERP or external system for this contact. Max 1000 characters. Value is trimmed.",
      "example": "contact_1",
      "maxLength": 1000,
      "type": "string"
     }
    },
    "required": [
     "email",
     "externalId",
     "clientExternalId"
    ],
    "type": "object"
   },
   "ClientSummaryDto": {
    "properties": {
     "externalId": {
      "description": "Identifier from the ERP or external system",
      "example": "client_1",
      "type": "string"
     },
     "id": {
      "description": "Unique client identifier (UUID format)",
      "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "type": "string"
     }
    },
    "required": [
     "id",
     "externalId"
    ],
    "type": "object"
   },
   "ClientToCreate": {
    "properties": {
     "electronicInvoicingAddress": {
      "description": "Address used for electronic invoicing (Chorus Pro, Peppol, etc.). Max 256 characters. Cannot be empty when provided. Value is trimmed.",
      "example": "83486222100034",
      "maxLength": 256,
      "type": "string"
     },
     "externalId": {
      "description": "Identifier from the ERP or external system. Max 1000 characters. Value is trimmed.",
      "example": "client_1",
      "maxLength": 1000,
      "type": "string"
     },
     "legalId": {
      "description": "Legal identifier (SIREN, SIRET, VAT, etc.). Cannot be empty when provided. Value is trimmed.",
      "example": "FR12345678901",
      "type": "string"
     },
     "name": {
      "description": "Client name. Max 400 characters. Cannot be empty. Value is trimmed.",
      "example": "Acme Industries",
      "maxLength": 400,
      "type": "string"
     },
     "reference": {
      "description": "Business reference for the client. Max 400 characters. Cannot be empty. Value is trimmed.",
      "example": "C-10023",
      "maxLength": 400,
      "type": "string"
     },
     "tags": {
      "description": "Tags associated with the client. Each tag: min 1, max 30 characters. Value is trimmed.",
      "example": [
       "Key Account"
      ],
      "items": {
       "type": "string"
      },
      "type": "array"
     }
    },
    "required": [
     "externalId",
     "name",
     "reference",
     "tags"
    ],
    "type": "object"
   },
   "ClientToUpdate": {
    "properties": {
     "electronicInvoicingAddress": {
      "description": "Address used for electronic invoicing (Chorus Pro, Peppol, etc.). Max 256 characters. Cannot be empty when provided. Value is trimmed.",
      "example": "83486222100034",
      "maxLength": 256,
      "type": "string"
     },
     "externalId": {
      "description": "Identifier from the ERP or external system. Max 1000 characters. Value is trimmed.",
      "example": "client_1",
      "maxLength": 1000,
      "type": "string"
     },
     "id": {
      "description": "Agicap internal client identifier. Must be a valid UUID.",
      "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "type": "string"
     },
     "legalId": {
      "description": "Legal identifier (SIREN, SIRET, VAT, etc.). Cannot be empty when provided. Value is trimmed.",
      "example": "FR12345678901",
      "type": "string"
     },
     "name": {
      "description": "Client name. Max 400 characters. Cannot be empty. Value is trimmed.",
      "example": "Acme Industries",
      "maxLength": 400,
      "type": "string"
     },
     "tags": {
      "description": "Tags associated with the client. Each tag: min 1, max 30 characters. Value is trimmed.",
      "example": [
       "Key Account"
      ],
      "items": {
       "type": "string"
      },
      "type": "array"
     }
    },
    "required": [
     "externalId",
     "name",
     "tags"
    ],
    "type": "object"
   },
   "ClientUserAssignment": {
    "properties": {
     "agicapUserEmails": {
      "description": "Email addresses of the successfully assigned Agicap users.",
      "example": [
       "john.doe@example.com",
       "jane.doe@example.com"
      ],
      "items": {
       "type": "string"
      },
      "type": "array"
     },
     "clientExternalId": {
      "description": "External identifier of the client.",
      "example": "client_1",
      "type": "string"
     }
    },
    "required": [
     "clientExternalId",
     "agicapUserEmails"
    ],
    "type": "object"
   },
   "ClientUserRightAssignment": {
    "properties": {
     "agicapUserEmails": {
      "description": "Email addresses of the Agicap users in the organization to assign. Must be valid email addresses. Values are lowercased and trimmed.",
      "example": [
       "john.doe@example.com",
       "jane.doe@example.com"
      ],
      "items": {
       "type": "string"
      },
      "type": "array"
     },
     "clientExternalId": {
      "description": "External identifier of the client from the ERP or external system. Max 1000 characters, trimmed.",
      "example": "client_1",
      "type": "string"
     }
    },
    "required": [
     "clientExternalId",
     "agicapUserEmails"
    ],
    "type": "object"
   },
   "ContactCreationFailureEnum": {
    "description": "Reason why the contact could not be created",
    "enum": [
     "CLIENT_NOT_FOUND",
     "EMAIL_ALREADY_EXISTS",
     "EXTERNAL_ID_ALREADY_EXISTS"
    ],
    "type": "string"
   },
   "ContactDeletionFailureEnum": {
    "description": "Reason why the contact could not be deleted",
    "enum": [
     "CLIENT_NOT_FOUND",
     "CONTACT_NOT_FOUND"
    ],
    "type": "string"
   },
   "ContactUpdateFailureEnum": {
    "description": "Reason why the contact could not be updated",
    "enum": [
     "CLIENT_NOT_FOUND",
     "CONTACT_NOT_FOUND",
     "EMAIL_ALREADY_EXISTS",
     "EXTERNAL_ID_ALREADY_EXISTS"
    ],
    "type": "string"
   },
   "CountryEnum": {
    "description": "Country code (ISO 3166-1)",
    "enum": [
     "AUT",
     "BGD",
     "BEL",
     "BRA",
     "BGR",
     "CAN",
     "CHN",
     "HRV",
     "CYP",
     "CZE",
     "COD",
     "DNK",
     "EGY",
     "EST",
     "ETH",
     "FIN",
     "FRA",
     "GUF",
     "DEU",
     "GRC",
     "GLP",
     "GGY",
     "HUN",
     "ISL",
     "IND",
     "IDN",
     "IRN",
     "IRL",
     "IMN",
     "ITA",
     "JPN",
     "JEY",
     "LVA",
     "LIE",
     "LTU",
     "LUX",
     "MLT",
     "MTQ",
     "MYT",
     "MEX",
     "MCO",
     "NLD",
     "NGA",
     "NOR",
     "PAK",
     "PHL",
     "POL",
     "PRT",
     "REU",
     "ROU",
     "RUS",
     "SPM",
     "SVK",
     "SVN",
     "ZAF",
     "ESP",
     "SWE",
     "CHE",
     "TZA",
     "THA",
     "TUR",
     "UKR",
     "GBR",
     "USA",
     "VNM"
    ],
    "type": "string"
   },
   "CreateClientFailureEnum": {
    "description": "Reason why the client could not be created",
    "enum": [
     "DUPLICATED_EXTERNAL_ID",
     "DUPLICATED_REFERENCE"
    ],
    "type": "string"
   },
   "CreateClientsRequest": {
    "properties": {
     "clients": {
      "description": "List of clients to create",
      "items": {
       "$ref": "#/components/schemas/ClientToCreate"
      },
      "type": "array"
     }
    },
    "required": [
     "clients"
    ],
    "type": "object"
   },
   "CreateClientsResponse": {
    "properties": {
     "created": {
      "description": "Successfully created clients",
      "items": {
       "$ref": "#/components/schemas/ClientSummaryDto"
      },
      "type": "array"
     },
     "notCreated": {
      "description": "Clients that failed to be created",
      "items": {
       "$ref": "#/components/schemas/NotCreatedClient"
      },
      "type": "array"
     }
    },
    "required": [
     "created",
     "notCreated"
    ],
    "type": "object"
   },
   "CreateExternalContactsRequest": {
    "properties": {
     "contacts": {
      "description": "List of external contacts to create",
      "items": {
       "$ref": "#/components/schemas/ExternalContactToCreate"
      },
      "type": "array"
     }
    },
    "required": [
     "contacts"
    ],
    "type": "object"
   },
   "CreateExternalContactsResponse": {
    "properties": {
     "created": {
      "description": "Successfully created external contacts",
      "items": {
       "$ref": "#/components/schemas/CreatedExternalContact"
      },
      "type": "array"
     },
     "notCreated": {
      "description": "External contacts that failed to be created",
      "items": {
       "$ref": "#/components/schemas/NotCreatedExternalContact"
      },
      "type": "array"
     }
    },
    "required": [
     "created",
     "notCreated"
    ],
    "type": "object"
   },
   "CreateInternalContactsRequest": {
    "properties": {
     "contacts": {
      "description": "List of contacts to create (max 1000 items)",
      "items": {
       "$ref": "#/components/schemas/ClientInternalContact"
      },
      "type": "array"
     }
    },
    "required": [
     "contacts"
    ],
    "type": "object"
   },
   "CreateInternalContactsResponse": {
    "properties": {
     "created": {
      "description": "Successfully created contacts",
      "items": {
       "$ref": "#/components/schemas/CreatedInternalContact"
      },
      "type": "array"
     },
     "notCreated": {
      "description": "Contacts that failed to be created",
      "items": {
       "$ref": "#/components/schemas/NotCreatedInternalContact"
      },
      "type": "array"
     }
    },
    "required": [
     "created",
     "notCreated"
    ],
    "type": "object"
   },
   "CreatedClientAddress": {
    "properties": {
     "clientExternalId": {
      "description": "Identifier from the ERP or external system",
      "example": "client_1",
      "type": "string"
     }
    },
    "required": [
     "clientExternalId"
    ],
    "type": "object"
   },
   "CreatedExternalContact": {
    "properties": {
     "externalId": {
      "description": "External contact identifier from the ERP or external system",
      "example": "contact_1",
      "type": "string"
     }
    },
    "required": [
     "externalId"
    ],
    "type": "object"
   },
   "CreatedInternalContact": {
    "properties": {
     "externalId": {
      "description": "Identifier from the ERP or external system for this contact",
      "example": "contact_1",
      "type": "string"
     },
     "id": {
      "description": "Internal identifier of the created contact",
      "example": "550e8400-e29b-41d4-a716-446655440000",
      "type": "string"
     }
    },
    "required": [
     "id",
     "externalId"
    ],
    "type": "object"
   },
   "Currency": {
    "description": "Currency of the outstanding amount.",
    "enum": [
     "AED",
     "AFN",
     "ALL",
     "AMD",
     "ANG",
     "AOA",
     "ARS",
     "AUD",
     "AWG",
     "AZN",
     "BAM",
     "BBD",
     "BDT",
     "BGN",
     "BHD",
     "BIF",
     "BMD",
     "BND",
     "BOB",
     "BRL",
     "BSD",
     "BTC",
     "BTN",
     "BWP",
     "BYN",
     "BYR",
     "BZD",
     "CAD",
     "CDF",
     "CHF",
     "CLF",
     "CLP",
     "CNY",
     "COP",
     "CRC",
     "CUC",
     "CUP",
     "CVE",
     "CZK",
     "DJF",
     "DKK",
     "DOP",
     "DZD",
     "EGP",
     "ERN",
     "ETB",
     "EUR",
     "FJD",
     "FKP",
     "GBP",
     "GEL",
     "GGP",
     "GHS",
     "GIP",
     "GMD",
     "GNF",
     "GTQ",
     "GYD",
     "HKD",
     "HNL",
     "HRK",
     "HTG",
     "HUF",
     "IDR",
     "ILS",
     "IMP",
     "INR",
     "IQD",
     "IRR",
     "ISK",
     "JEP",
     "JMD",
     "JOD",
     "JPY",
     "KES",
     "KGS",
     "KHR",
     "KMF",
     "KPW",
     "KRW",
     "KWD",
     "KYD",
     "KZT",
     "LAK",
     "LBP",
     "LKR",
     "LRD",
     "LSL",
     "LTL",
     "LVL",
     "LYD",
     "MAD",
     "MDL",
     "MGA",
     "MKD",
     "MMK",
     "MNT",
     "MOP",
     "MRO",
     "MUR",
     "MVR",
     "MWK",
     "MXN",
     "MYR",
     "MZN",
     "NAD",
     "NGN",
     "NIO",
     "NOK",
     "NPR",
     "NZD",
     "OMR",
     "PAB",
     "PEN",
     "PGK",
     "PHP",
     "PKR",
     "PLN",
     "PYG",
     "QAR",
     "RON",
     "RSD",
     "RUB",
     "RWF",
     "SAR",
     "SBD",
     "SCR",
     "SDG",
     "SEK",
     "SGD",
     "SHP",
     "SLL",
     "SOS",
     "SRD",
     "STD",
     "SVC",
     "SYP",
     "SZL",
     "THB",
     "TJS",
     "TMT",
     "TND",
     "TOP",
     "TRY",
     "TTD",
     "TWD",
     "TZS",
     "UAH",
     "UGX",
     "USD",
     "UYU",
     "UZS",
     "VEF",
     "VND",
     "VUV",
     "WST",
     "XAF",
     "XAG",
     "XAU",
     "XCD",
     "XDR",
     "XOF",
     "XPF",
     "YER",
     "ZAR",
     "ZMK",
     "ZMW",
     "ZWL",
     "BOV",
     "COU",
     "MRU",
     "XUA",
     "MXV",
     "STN",
     "SLE",
     "XSU",
     "SSD",
     "CHE",
     "CHW",
     "USN",
     "UYI",
     "UYW",
     "VES",
     "VED",
     "XBA",
     "XBB",
     "XBC",
     "XBD",
     "XTS",
     "XXX",
     "XPD",
     "XPT"
    ],
    "type": "string"
   },
   "DeleteClientAddressesFailureReasonEnum": {
    "description": "Reason why the address could not be deleted",
    "enum": [
     "ADDRESS_NOT_FOUND",
     "CLIENT_NOT_FOUND"
    ],
    "type": "string"
   },
   "DeleteClientAddressesRequest": {
    "properties": {
     "clientExternalIds": {
      "description": "List of client external IDs whose addresses should be deleted. Each ID: max 1000 characters, value is trimmed.",
      "example": [
       "client_1",
       "client_2"
      ],
      "items": {
       "type": "string"
      },
      "type": "array"
     }
    },
    "required": [
     "clientExternalIds"
    ],
    "type": "object"
   },
   "DeleteClientAddressesResponse": {
    "properties": {
     "deleted": {
      "description": "Successfully deleted client addresses",
      "items": {
       "$ref": "#/components/schemas/DeletedAddresses"
      },
      "type": "array"
     },
     "notDeleted": {
      "description": "Client addresses that failed to be deleted",
      "items": {
       "$ref": "#/components/schemas/NotDeletedAddresses"
      },
      "type": "array"
     }
    },
    "required": [
     "deleted",
     "notDeleted"
    ],
    "type": "object"
   },
   "DeleteClientsRequest": {
    "properties": {
     "externalIds": {
      "description": "List of client external IDs to delete. Max 1000 items. Each ID: max 1000 characters, value is trimmed.",
      "example": [
       "client_1",
       "client_2"
      ],
      "items": {
       "type": "string"
      },
      "type": "array"
     }
    },
    "required": [
     "externalIds"
    ],
    "type": "object"
   },
   "DeleteClientsResponse": {
    "properties": {
     "deleted": {
      "description": "Successfully deleted clients",
      "items": {
       "$ref": "#/components/schemas/ClientSummaryDto"
      },
      "type": "array"
     },
     "notDeleted": {
      "description": "Clients that failed to be deleted",
      "items": {
       "$ref": "#/components/schemas/NotDeletedClient"
      },
      "type": "array"
     }
    },
    "required": [
     "deleted",
     "notDeleted"
    ],
    "type": "object"
   },
   "DeleteExternalContactsRequest": {
    "properties": {
     "contacts": {
      "description": "List of external contacts to delete (max 1000 items)",
      "items": {
       "$ref": "#/components/schemas/ExternalContactToDelete"
      },
      "type": "array"
     }
    },
    "required": [
     "contacts"
    ],
    "type": "object"
   },
   "DeleteExternalContactsResponse": {
    "properties": {
     "deleted": {
      "description": "Successfully deleted external contacts",
      "items": {
       "$ref": "#/components/schemas/DeletedExternalContact"
      },
      "type": "array"
     },
     "notDeleted": {
      "description": "External contacts that failed to be deleted",
      "items": {
       "$ref": "#/components/schemas/NotDeletedExternalContact"
      },
      "type": "array"
     }
    },
    "required": [
     "deleted",
     "notDeleted"
    ],
    "type": "object"
   },
   "DeleteInternalContactsRequest": {
    "properties": {
     "contacts": {
      "description": "List of contacts to delete (max 1000 items)",
      "items": {
       "$ref": "#/components/schemas/InternalContactToDelete"
      },
      "type": "array"
     }
    },
    "required": [
     "contacts"
    ],
    "type": "object"
   },
   "DeleteInternalContactsResponse": {
    "properties": {
     "deleted": {
      "description": "Successfully deleted contacts",
      "items": {
       "$ref": "#/components/schemas/DeletedInternalContact"
      },
      "type": "array"
     },
     "notDeleted": {
      "description": "Contacts that failed to be deleted",
      "items": {
       "$ref": "#/components/schemas/NotDeletedInternalContact"
      },
      "type": "array"
     }
    },
    "required": [
     "deleted",
     "notDeleted"
    ],
    "type": "object"
   },
   "DeleteInvoicesCompletedEvent": {
    "properties": {
     "deleted": {
      "type": "number"
     },
     "entityId": {
      "type": "number"
     },
     "notDeleted": {
      "type": "number"
     },
     "total": {
      "type": "number"
     },
     "workflowId": {
      "type": "string"
     }
    },
    "required": [
     "workflowId",
     "entityId",
     "deleted",
     "notDeleted",
     "total"
    ],
    "type": "object"
   },
   "DeleteInvoicesFailedEvent": {
    "properties": {
     "deleted": {
      "type": "number"
     },
     "entityId": {
      "type": "number"
     },
     "error": {
      "type": "string"
     },
     "notDeleted": {
      "type": "number"
     },
     "total": {
      "type": "number"
     },
     "workflowId": {
      "type": "string"
     }
    },
    "required": [
     "workflowId",
     "entityId",
     "error",
     "deleted",
     "notDeleted",
     "total"
    ],
    "type": "object"
   },
   "DeleteInvoicesProgressEvent": {
    "properties": {
     "deleted": {
      "type": "number"
     },
     "entityId": {
      "type": "number"
     },
     "notDeleted": {
      "type": "number"
     },
     "total": {
      "type": "number"
     },
     "workflowId": {
      "type": "string"
     }
    },
    "required": [
     "workflowId",
     "entityId",
     "deleted",
     "notDeleted",
     "total"
    ],
    "type": "object"
   },
   "DeletedAddresses": {
    "properties": {
     "clientExternalId": {
      "description": "Identifier from the ERP or external system",
      "example": "client_1",
      "type": "string"
     }
    },
    "required": [
     "clientExternalId"
    ],
    "type": "object"
   },
   "DeletedExternalContact": {
    "properties": {
     "externalId": {
      "description": "Identifier from the ERP or external system for this contact",
      "example": "contact_1",
      "type": "string"
     }
    },
    "required": [
     "externalId"
    ],
    "type": "object"
   },
   "DeletedInternalContact": {
    "properties": {
     "clientExternalId": {
      "description": "Client external ID that owns this contact",
      "example": "ext-client-001",
      "type": "string"
     },
     "externalId": {
      "description": "Identifier from the ERP or external system for this contact",
      "example": "contact_1",
      "type": "string"
     }
    },
    "required": [
     "externalId",
     "clientExternalId"
    ],
    "type": "object"
   },
   "DueAmountSummaryItem": {
    "properties": {
     "convertedCurrencyCode": {
      "allOf": [
       {
        "$ref": "#/components/schemas/Currency"
       }
      ],
      "description": "Main currency the amount was converted to. `null` when no conversion was applied.",
      "nullable": true
     },
     "convertedDueAmount": {
      "description": "Due amount converted to the entity main currency, in currency units (not cents), rounded. `null` when the amount is already in the main currency or no exchange rate is available.",
      "example": 880,
      "nullable": true,
      "type": "number"
     },
     "currencyCode": {
      "allOf": [
       {
        "$ref": "#/components/schemas/Currency"
       }
      ],
      "description": "Currency of the due amount."
     },
     "dueAmount": {
      "description": "Due amount in the original currency, expressed in currency units (not cents), rounded.",
      "example": 800,
      "type": "number"
     }
    },
    "required": [
     "dueAmount",
     "currencyCode",
     "convertedDueAmount",
     "convertedCurrencyCode"
    ],
    "type": "object"
   },
   "ExternalContactDeletionFailureEnum": {
    "description": "Reason why the contact could not be deleted",
    "enum": [
     "CLIENT_NOT_FOUND",
     "CONTACT_NOT_FOUND"
    ],
    "type": "string"
   },
   "ExternalContactItem": {
    "properties": {
     "clientExternalId": {
      "description": "External identifier of the client this contact belongs to.",
      "example": "ext-client-001",
      "nullable": true,
      "type": "string"
     },
     "createdDate": {
      "description": "Date and time the external contact was created (ISO 8601).",
      "example": "2024-01-15T09:30:00.000Z",
      "format": "date-time",
      "type": "string"
     },
     "email": {
      "description": "Email address of the external contact.",
      "example": "john@example.com",
      "nullable": true,
      "type": "string"
     },
     "externalId": {
      "description": "Identifier from the ERP or external system. Unique per client if not `null`.",
      "example": "contact_1",
      "nullable": true,
      "type": "string"
     },
     "id": {
      "description": "Unique external contact identifier (UUID format)",
      "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "type": "string"
     },
     "isMainContact": {
      "description": "Whether this contact is the main (primary) contact of its client.",
      "example": true,
      "type": "boolean"
    

# --- truncated at 32 KB (82 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/agicap/refs/heads/main/openapi/agicap-ar-clients-v1-openapi.json