Hanzo AI

Create match

Records the result of IRS TIN Matching for a payee, as the payer.

POST /v1/tax/w9/{id}/match

Addresshttps://api.hanzo.ai/v1/tax/w9/{id}/match
MethodPOST
Operationpost_tax_w9_by_id_match
AuthAuthorization: Bearer $HANZO_API_KEY

Records the result of IRS TIN Matching for a payee, as the payer. Org admins of the payer only, on a live grant.

It does not run TIN Matching. That is an IRS e-Services program a payer enrolls in and runs itself, on the name and TIN it holds; this records what the IRS answered so it sits beside the W-9 and on the audit trail. Nothing here ever records a match the payer did not report.

Request

3 fields, body application/json (required).

FieldInTypeRequiredDescription
idpathstringyesID is the relationship, from the path.
idbodystring—ID is the relationship, from the path.
resultbodystring—Result is what IRS TIN Matching answered for this payee's name and TIN: matched or mismatched.

Response

StatusBodyMeaning
200tax.W9ok
defaultproblem-detailsrefused

200 body — 62 fields.

FieldInTypeAlwaysDescription
categorybodystring—Category is what the payer states it pays this payee for.
decidedAtbodyinteger (int64)—DecidedAt is when the payee last granted, declined or revoked.
idbodystring—ID addresses the relationship on both sides.
matchbodytax.Match—
match.atbodyinteger (int64)—At is when the payer recorded it, unix seconds.
match.bybodystring—By is the admin who recorded it.
match.resultbodystring—Result is what IRS TIN Matching answered: matched or mismatched.
payeebodystring—Payee is the org whose W-9 it is.
payerbodystring—Payer is the org that asked.
profilebodytax.Profile—
profile.addressbodytax.Address—
profile.address.citybodystring—City is the city or town.
profile.address.countrybodystring—Country is ISO 3166-1 alpha-2; "US" when absent.
profile.address.line1bodystring—Line1 is the number, street, and apartment or suite.
profile.address.line2bodystring—Line2 continues the street address, when there is more of it.
profile.address.statebodystring—State is the two-letter state or territory code.
profile.address.zipbodystring—ZIP is five or nine digits.
profile.businessNamebodystring—BusinessName is line 2: the business or disregarded entity name.
profile.certificationbodytax.Certification—
profile.certification.bybodystring—By is who signed it: the IAM user legal recorded completing the signature.
profile.certification.documentbodystring—Document is the /v1/legal document that carries the signature.
profile.certification.signedbodyinteger (int64)—Signed is when legal reported the document signed, unix seconds.
profile.certification.signerbodystring—Signer is the IAM user the signature was opened for — the admin who asked.
profile.certification.statusbodystring—Status is none, pending (a signature is open) or certified.
profile.certification.versionbodyinteger (int64)—Version is the profile version the signature covers.
profile.classificationbodystring—Classification is line 3a.
profile.consentbodytax.Consent—
profile.consent.atbodyinteger (int64)—At is when the consent was given or withdrawn, unix seconds.
profile.consent.bybodystring—By is the IAM user who gave or withdrew it.
profile.consent.electronicbodyboolean—Electronic is true while the consent stands.
profile.disclosurebodystring—Disclosure is the electronic-delivery disclosure the consent is given against.
profile.exemptPayeebodystring—ExemptPayee is line 4's exempt payee code, 1–13.
profile.expiresbodyinteger (int64)—Expires is when a certified W-8 stops being valid, unix seconds: the last day of the third calendar year after the year it was signed.
profile.fatcabodystring—FATCA is line 4's FATCA exemption code, A–M.
profile.foreignOwnersbodyboolean—ForeignOwners is line 3b: a flow-through entity with foreign partners, owners or beneficiaries.
profile.foreignTinbodystring—ForeignTIN is a W-8's foreign tax identifying number, masked.
profile.formbodystring—Form is w9, w8ben or w8bene.
profile.namebodystring—Name is line 1: the name on the income tax return, or of the foreign individual or organization that is the beneficial owner.
profile.phonebodystring—Phone is the number a 1099 this org files as PAYER prints for it.
profile.tinbodystring—TIN is Part I, masked to its last four digits.
profile.tinTypebodystring—TINType is which Part I box: ssn (an SSN or ITIN) or ein.
profile.updatedAtbodyinteger (int64)—UpdatedAt is when the profile last changed, unix seconds.
profile.validbodyboolean—Valid is whether the form establishes what it certifies today — for a W-8, certified for its current version and not expired; for a W-9, a TIN on file.
profile.versionbodyinteger (int64)—Version counts the W-9's revisions; a certification covers exactly one.
profile.w8bodytax.W8—
profile.w8.birthbodystring—Birth is W-8BEN line 8, the individual's date of birth, YYYY-MM-DD.
profile.w8.capacitybodystring—Capacity is the capacity in which the signer signs for the beneficial owner — "Director", "Authorized officer".
profile.w8.chapter3bodystring—Chapter3 is W-8BEN-E line 4.
profile.w8.chapter4bodystring—Chapter4 is W-8BEN-E line 5, the FATCA status.
profile.w8.countrybodystring—Country is line 2: the country of citizenship (W-8BEN) or of incorporation or organization (W-8BEN-E), ISO 3166-1 alpha-2.
profile.w8.giinbodystring—GIIN is W-8BEN-E line 9a, when the chapter 4 status carries one.
profile.w8.noForeignTinbodyboolean—NoForeignTIN is W-8BEN line 6b / W-8BEN-E line 9b's alternative: the jurisdiction of residence does not require or issue a foreign TIN.
profile.w8.treatybodytax.Treaty—
profile.w8.treaty.articlebodystring—Article is the treaty article and paragraph claimed, e.g. "12(2)".
profile.w8.treaty.conditionsbodystring—Conditions is the explanation the form asks for: the conditions of the article the beneficial owner meets.
profile.w8.treaty.countrybodystring—Country is the treaty country the beneficial owner is resident in.
profile.w8.treaty.incomebodystring—Income is the type of income the claim covers: services, rents, royalties or other.
profile.w8.treaty.lobbodystring—LOB is W-8BEN-E line 14b: the treaty's limitation on benefits provision the entity meets.
profile.w8.treaty.rateBpsbodyinteger (int64)—RateBps is the claimed withholding rate in basis points: 0 is exempt, 1000 is 10%.
requestedAtbodyinteger (int64)—RequestedAt is when the payer asked, unix seconds.
rolebodystring—Role is the caller's side of it: payer or payee.
statusbodystring—Status is requested, granted, declined or revoked.

Failure carries the platform error shape — see Errors.

Examples

hanzo has no subcommand for this operation — the CLI serves only what cloud's live route table confirms. Use HTTP or an SDK.


Tax API · All Hanzo APIs · Interactive reference

How is this guide?

On this page