# Update a customer by id Endpoint: PUT /customers/{id} Version: 1.0.0 Security: Biller Access Token (Staging), Biller Access Token (Production) ## Path parameters: - `id` (string, required) The id of the customer to update. ## Request fields (application/json): - `externalId` (string) The id of the customer from the platform that is integrating with Adfin. - `name` (string) The full name of the customer. - `people` (array) The list of people assigned to the customer. - `people.id` (string) The internal id of the person. - `people.firstName` (string) The first name of the person. - `people.lastName` (string) The last name of the person. - `people.email` (string) The email of the person. - `people.phoneNo` (string) The phone number of the person. - `people.isPrimaryContact` (boolean) True if this person is a primary contact. - `people.isIncludedInCommunications` (boolean) True if this person is included in the customers communications. - `people.validForEmailCommunication` (boolean) - `people.validForPhoneCommunication` (boolean) - `addresses` (array) The list of the addresses for the customer. Only 1 pe supported for now - `addresses.id` (string) The internal id of the address. - `addresses.city` (string) The name of the city. - `addresses.postalCode` (string) The postal code. - `addresses.country` (string) The name of the biller country. - `addresses.addressLine1` (string) The name of the street, and the house or building number. - `externalData` (object) References about this customer from external platforms Adfin integrates with, such as ID, etc. - `externalData.connectorType` (string, required) The name of the platform for which this data is stored for. Enum: "XERO", "QUICKBOOKS" - `externalData.id` (string, required) The ID of the Customer in the external platform. - `externalData.name` (string) The name of the Customer in the external platform. - `trackingItemIds` (array) The list of tracking item catalogue IDs associated with the customer. - `officeId` (string) The office ID associated with the customer. ## Response 200 fields (application/json): - `id` (string) The Adfin id of the customer. - `externalId` (string) The id of the customer from the platform that is integrating with Adfin. - `name` (string) The full name of the customer. - `creationTime` (string) The time the customer was created. - `lastUpdatedTime` (string) The last time when the customer was updated. - `people` (array) The list of people assigned to the customer. - `people.id` (string) The internal id of the person. - `people.firstName` (string) The first name of the person. - `people.lastName` (string) The last name of the person. - `people.email` (string) The email of the person. - `people.phoneNo` (string) The phone number of the person. - `people.isPrimaryContact` (boolean) True if this person is a primary contact. - `people.isIncludedInCommunications` (boolean) True if this person is included in the customers communications. - `people.validForEmailCommunication` (boolean) - `people.validForPhoneCommunication` (boolean) - `addresses` (array) The list of the addresses for the customer. - `addresses.id` (string) The internal id of the address. - `addresses.city` (string) The name of the city. - `addresses.postalCode` (string) The postal code. - `addresses.country` (string) The name of the biller country. - `addresses.addressLine1` (string) The name of the street, and the house or building number. - `directDebitMandate` (object) Direct Debit details (if a mandate was created). - `directDebitMandate.id` (string) The id of the direct debit mandate. - `directDebitMandate.status` (string) Current status of the direct debit. Enum: "CREATED", "PENDING", "ACTIVE", "CANCELLED", "MIGRATING" - `directDebitMandate.statusReasonCode` (string) The reason as predefined code why the mandate is in a certain status Enum: "PENDING_DD_CAPABILITY", "PENDING_ACTIVATION", "MIGRATED", "BANK_ACCOUNT_CHANGED", "INCORRECT_BANK_DETAILS", "INSTRUCTION_CANCELLED_BY_PAYER", "PAYER_DECEASED", "ACCOUNT_TRANSFERRED", "ADVANCE_NOTICE_DISPUTED", "AMOUNT_DISPUTED", "MANDATE_NOT_FOUND", "DISPUTE_TOO_EARLY", "DISPUTE_TOO_LATE", "INVALID_SORT_CODE", "INVALID_ACC_NUMBER", "ACCOUNT_CLOSED", "CANCELLED_ON_DEMAND", "REINSTATED", "OTHER" - `directDebitMandate.statusReason` (string) Reason explaining the current status of the direct debit mandate, especially useful for failure cases. - `directDebitMandate.creationTime` (string) The time when the mandate was created - `directDebitMandate.lastUpdatedTime` (string) The last time when the mandate was updated - `directDebitMandate.authorisationTime` (string) The time when the mandate was signed by the customer - `directDebitMandate.submissionTime` (string) The time when the mandate was submitted to the payment provider - `directDebitMandate.url` (string) The URL where the customer can sign the direct debit mandate. - `billerBankAccount` (object) Biller bank account for bank transfers - `billerBankAccount.accountHolderAddress` (object) Address of the bank account holder. Optional; used for compliance and verification. - `billerBankAccount.accountHolderName` (string, required) Full name of the bank account holder as registered with the bank. - `billerBankAccount.bankAccount` (object, required) Bank account identifiers (e.g., account number and sort code or IBAN/BIC). - `billerBankAccount.bankAccount.accountNumber` (string) - `billerBankAccount.bankAccount.sortCode` (string) - `billerBankAccount.bankAddress` (object) Address of the banking institution. Optional. - `billerBankAccount.currencyCode` (string, required) Currency of the bank account (ISO 4217). Enum: "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BRL", "BSD", "BTN", "BWP", "BYR", "BZD", "CAD", "CDF", "CHF", "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", "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", "SPL", "SRD", "STD", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "UYU", "UZS", "VEF", "VND", "VUV", "WST", "XAF", "XCD", "XDR", "XOF", "XPF", "YER", "ZAR", "ZMW", "ZWD" - `timezone` (string) The timezone of the customer. - `discount` (object) The discount applied for the customer. - `discount.percentage` (number) The discount as a percentage to be applied for the invoices. - `discount.period` (integer) The period in hours until the discount expires. - `externalData` (array) References about this customer from external platforms Adfin integrates with, such as ID, etc. - `externalData.connectorType` (string, required) The name of the platform for which this data is stored for. Enum: "XERO", "QUICKBOOKS" - `externalData.id` (string, required) The ID of the Customer in the external platform. - `externalData.name` (string) The name of the Customer in the external platform. - `tags` (array) The tag ids associated with the customer. - `status` (string) The status of the customer (ACTIVE, ARCHIVED) Enum: "ACTIVE", "ARCHIVED" - `statusReasonCode` (string) The reason as a predefined code for why the customer is in a certain status Enum: "MERGED", "ARCHIVED_MANUALLY" - `settings` (object) Customer settings - `settings.paymentSettings` (object) Customer payment settings - `settings.paymentSettings.allowPartialPayments` (boolean) Indicates whether partial payments are allowed - `settings.paymentSettings.minPartialPaymentAmount` (number) The minimum amount for partial payments - `settings.paymentSettings.surchargeIsEnabled` (boolean) Indicates whether a surcharge is applied to commercial card payments - `trackingItems` (array) The tracking item catalogues associated with the customer. - `trackingItems.id` (string) The id of the tracking item catalogue entry - `trackingItems.name` (string) The name of the tracking item catalogue entry - `trackingItems.externalData` (array) The external data of the tracking item catalogue entry - `trackingItems.externalData.externalId` (string) The unique id of the item in the external platform. - `trackingItems.items` (array) The child tracking items (options) of this category - `office` (object) The office associated with the customer. - `office.id` (string) The unique identifier of the office. - `office.name` (string) The name of the office. - `office.trackingItemId` (string) The tracking item identifier. - `office.details` (object) The office contact and address details. - `office.details.email` (string) The office email address. - `office.details.addressLine1` (string) The first line of the address. - `office.details.addressLine2` (string) The second line of the address. - `office.details.city` (string) The city. - `office.details.country` (string) The country. - `office.details.postcode` (string) The postcode. ## Response 400 fields ## Response 401 fields ## Response 422 fields ## Response 500 fields