Ping and identity
GET /v1/buyer/ping verifies both headers and returns {"type":"pingpong","data":"pong","status":"ok"}. It is not rate limited, so it is safe for monitoring probes.
GET /v1/buyer/me returns the identity behind your key as a deliberately small projection: contact email, name, contactType, buyerFacilityName, buyerCompanyId, and buyerCompanyName.
buyerCompanyId and facility id in the request body, and logging the identity makes key mix-ups obvious.
Provisioning buyer users
POST /v1/buyer/user/provision creates a buyer contact, optionally with a login, and sends an invite email. Use it to sync users from your HR or identity system.
email,nameGiven,nameFamily, androlesare required. Admin and super-admin roles are rejected with403; API provisioning is for regular roles only.- The target facility defaults to your API key’s facility. A supplied
facilityIdmust belong to the same buyer company (403otherwise). - An account or contact already existing for the email returns
400with a conflict message. - With a
password, the login is created immediately and the invite email says “invited you to OpenWrench”; without one, the invite asks the user to sign up.passwordResetRequiredforces a change on first login. - Location scoping:
hasAccessToAllLocations, or explicitlocationIds/brandIds. - Technicians’ EPA 608 credentials can be attached with
epaCertificationType(validated against the recognized classes; unrecognized values are400) andepaCertificationNumber(free-form, max 64 characters).
Currency exchange rates
Multi-currency portfolios can fetch the latest stored rate between two currency codes:GET /v1/buyer/currency_exchange/latest/{targetCurrencyId}/{baseCurrencyId} takes currency codes (for example USD, CAD) and returns the latest rate from base to target. Work orders carry the related fields currencyId, locationCurrencyId, and the two currencyExchangeRate... values when cross-currency pricing is in play.