Clearer rejections, and updates that do not re-ask the census
A customer update only asks the AEAT census when the fiscal pair changes, the invitation 404 stops saying "pending", and readiness names an incomplete identity.
ChangelogImproved
Three small changes to what the API tells you, grouped because none of them is worth a page of its own.
What else changed
- Updating a customer only consults the AEAT census when the fiscal pair changes. A
PUTorPATCHthat leaves the NIF and the legal name as they are no longer asks — so a notes-only update on a customer whose NIF has since been de-registered stops failing. Deduplication and format checks are unchanged. - The invitation
404no longer says "pending".GET /v1/accounts/{account_id}/invitations/{invitation_id}reads an invitation in any state, so its404now answersINVITATION_NOT_FOUNDwith a generic message. Revoking, whose update really is limited to pending invitations, keeps the wording under its own new codePENDING_INVITATION_NOT_FOUND. - Issuing readiness names an incomplete fiscal identity.
PROFILE_INCOMPLETEjoins the readiness chain, listing the requirements that are missing, so "why can I not issue" is answered without guessing. A missing NIF is still reported by its own blocker.
Endpoints
- PUT|PATCH/v1/companies/{company_id}/customers/{customer_id}The census is consulted only when the NIF or the legal name changes
- GET/v1/accounts/{account_id}/invitations/{invitation_id}404 answers INVITATION_NOT_FOUND
- GET/v1/companies/{company_id}/issuing-readinessCan report PROFILE_INCOMPLETE
Where to go next
Three response fields were never guaranteed
`amount`, `currency` and `sending_history.sent_at` leave `required`. No response changes — the contract was promising something the server never did.
An import row without an address is a bad row
A customer import row with an incomplete address is now reported as a bad row instead of being created with placeholder values.