API reference
W-9 requests
W-9s asked of vendors by email, and what each vendor certified when they completed theirs.
- GET
/v1/w9_requestsList the W-9s asked of vendors - POST
/v1/w9_requestsAsk a vendor for their W-9 - GET
/v1/w9_requests/{request_id}Get a W-9 request and what the vendor certified - POST
/v1/w9_requests/{request_id}/cancelCancel a W-9 request
Guides: Read and export reports
List the W-9s asked of vendors
GET/v1/w9_requests
client.w9Requests.list()
The W-9s asked of vendors, the newest first, with what each came to.
Parameters
| Name | Type | Description |
|---|---|---|
counterparty_idQuery | string or null | An id that starts with |
statusQuery | string or null | Only open, completed, cancelled |
limitQuery | integer | Page size, 1–200. |
cursorQuery | string or null | The |
Response
Errors
- 400
- The request was malformed or a parameter is invalid.
- 401
- No valid credential was sent.
- 403
- The credential or the member's role does not allow this.
- 404
- No such resource in this ledger.
- 409
- A conflicting request, e.g. one with the same Idempotency-Key still running.
- 422
- A well-formed request a business rule refused.
- 429
- Too many requests; retry after the Retry-After header.
- 500
- Something failed on our side; the request_id identifies it.
Example
curl "https://api.ledgerit.ai/v1/w9_requests" \
-H "Authorization: Bearer $LEDGERIT_TOKEN"Ask a vendor for their W-9
POST/v1/w9_requests· Idempotent
client.w9Requests.create()
Ask a vendor for their W-9. They are emailed a link to a form that
works for 30 days; completing it records their W-9 on the vendor, with
their taxpayer identification number encrypted. Asking again cancels the
open request, and its link stops working. emailed says whether the
email went; when it did not, the request is open all the same and can be
asked again.
Request body
Response
201W9RequestOut
Errors
- 400
- The request was malformed or a parameter is invalid.
- 401
- No valid credential was sent.
- 403
- The credential or the member's role does not allow this.
- 404
- No such resource in this ledger.
- 409
- A conflicting request, e.g. one with the same Idempotency-Key still running.
- 422
- A well-formed request a business rule refused.
- 429
- Too many requests; retry after the Retry-After header.
- 500
- Something failed on our side; the request_id identifies it.
Example
curl -X POST "https://api.ledgerit.ai/v1/w9_requests" \
-H "Authorization: Bearer $LEDGERIT_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"counterparty_id":"…"}'Get a W-9 request and what the vendor certified
GET/v1/w9_requests/{request_id}
client.w9Requests.get()
One W-9 request, and what the vendor certified if they have.
Parameters
| Name | Type | Description |
|---|---|---|
request_idPath · Required | string | An id that starts with |
Response
200W9RequestOut
Errors
- 400
- The request was malformed or a parameter is invalid.
- 401
- No valid credential was sent.
- 403
- The credential or the member's role does not allow this.
- 404
- No such resource in this ledger.
- 409
- A conflicting request, e.g. one with the same Idempotency-Key still running.
- 422
- A well-formed request a business rule refused.
- 429
- Too many requests; retry after the Retry-After header.
- 500
- Something failed on our side; the request_id identifies it.
Example
curl "https://api.ledgerit.ai/v1/w9_requests/{request_id}" \
-H "Authorization: Bearer $LEDGERIT_TOKEN"Cancel a W-9 request
POST/v1/w9_requests/{request_id}/cancel
client.w9Requests.cancel()
Stop an open request's link working. Completed and cancelled requests stay as they are.
Parameters
| Name | Type | Description |
|---|---|---|
request_idPath · Required | string | An id that starts with |
Response
200W9RequestOut
Errors
- 400
- The request was malformed or a parameter is invalid.
- 401
- No valid credential was sent.
- 403
- The credential or the member's role does not allow this.
- 404
- No such resource in this ledger.
- 409
- A conflicting request, e.g. one with the same Idempotency-Key still running.
- 422
- A well-formed request a business rule refused.
- 429
- Too many requests; retry after the Retry-After header.
- 500
- Something failed on our side; the request_id identifies it.
Example
curl -X POST "https://api.ledgerit.ai/v1/w9_requests/{request_id}/cancel" \
-H "Authorization: Bearer $LEDGERIT_TOKEN"Objects
The objects these operations take and return.
W9RequestPage
| Name | Type | Description |
|---|---|---|
dataRequired | array of W9RequestOut | |
has_moreRequired | boolean | |
next_cursorRequired | string or null |
W9RequestCreate
| Name | Type | Description |
|---|---|---|
counterparty_idRequired | string | The vendor to ask. Asking again cancels their open request. |
email | string or null | Where to send the link. The vendor's own email when left out. |
W9RequestOut
| Name | Type | Description |
|---|---|---|
addressRequired | string or null | Lines 5 and 6: their address. |
business_nameRequired | string or null | Line 2: their business or disregarded entity name. |
cancelled_atRequired | string (date-time) or null | |
completed_atRequired | string (date-time) or null | |
counterparty_idRequired | string | The vendor it was asked of. |
emailed | boolean or null | On a request just made: whether the email went. Null when read later. |
expiredRequired | boolean | Open, but its link stopped working: ask again for a new one. |
expires_atRequired | string (date-time) | When its link stops working. |
idRequired | string | An id that starts with |
legal_nameRequired | string or null | Line 1 of the W-9: the name on their tax return. |
sent_atRequired | string (date-time) | |
sent_toRequired | string | The address the link was emailed to. |
signed_nameRequired | string or null | The name they signed the certification with. |
statusRequired | string |
open, completed, cancelled |
tax_classificationRequired | string or null | Line 3a: their federal tax classification. individual, c_corporation, s_corporation, partnership, trust_estate, llc_c, llc_s, llc_p, other |
tax_idRequired | string or null | The vendor's taxpayer identification number on file, whole for a member who may read sensitive data and masked to its last four digits for anyone else. |
tin_typeRequired | string or null | Part I: a social security number or an employer identification number. ssn, ein |