Skip to content
NewAgent-ready

Contacts are real, and an order can name who to bill

Customers can now carry contacts, the people an invoice is addressed to, with a full set of endpoints and a place to manage them in the dashboard. An order can name one of them as its billing contact, and the getting-started walkthrough now shows the calls this API actually accepts.

A customer used to be a company and nothing else. It can now carry the people behind it.

Contacts. Create a contact against one of your customers with a name, an email, an optional phone number and postal address, and your own identifier for it. Read them back one at a time, as a list, or by the identifier you gave them, update them in place, and delete them. A contact belongs to exactly one customer, and your identifier only has to be unique within that customer, so two customers can each have a contact you number the same way.

A billing contact on an order. An order can name one of its customer's contacts as the contact to bill. A contact from a different customer is refused. Deleting a contact later clears that field rather than touching the order.

A place to manage them. The customer page now lists that customer's contacts, with search, and lets you add, edit and delete them. Choosing which contact an order bills is a dropdown on both the new-order and edit-order screens, where the edit screen used to show a permanent "no contacts found" message and a button that did nothing.

A getting-started guide that works. The Developers page walked new integrators through installing another company's client library and calling endpoints this service does not serve. It now shows five languages calling this API directly, end to end: set up an HTTP client, create a key, create a customer, create a contact, create an order billed to that contact, and price it with order lines.

Two smaller fixes rode along. Creating an order now checks that the customer is yours instead of trusting the identifier, and the order update endpoint is documented, which it never was.

  • Contacts: create, list, read, update, delete, and lookup by your own identifier
  • Orders accept and return a billing contact
  • Contacts section on the customer page, with add, edit, search and delete
  • Billing contact selectable when creating or editing an order
  • Getting-started walkthrough rewritten against the real API in Python, Node.js, Go, Ruby and Java