Skip to content

API Reference

Status Notification

When the status of a tax information collection form changes, the platform sends an asynchronous callback to the merchant's configured webhook endpoint. The current notification is used to deliver form status changes.

POST
PathMerchant Webhook URL
Authenticationx-signature

Delivery Method

ItemDescription
HTTP MethodPOST
Content-Typeapplication/json;charset=UTF-8
Event Typetax.form.status.change

Request Headers

Header KeyTypeRequiredDescriptionFormat / Constraint
Content-TypestringYesFixed as application/json;charset=UTF-8Fixed value
x-timestampstringYesUnix timestampSeconds-level timestamp string
x-signaturestringYesHex signature generated with webhook_secret64-character hex string

For authentication and the standard request structure, see Webhook.

Trigger Scenarios

The platform sends a status notification when the tax information collection form status changes to one of the following values:

  • READY
  • FAILED
  • EXPIRED

Note

The PENDING_VERIFICATION status does not trigger webhook notifications. If you need to retrieve this status, call the detail query API actively.

eventType

text
tax.form.status.change

Request Body

Top-level Fields

FieldTypeDescriptionFormat / Constraint
requestIdstringNotification request ID-
eventTypestringFixed as tax.form.status.changeFixed value
createdAtstringNotification creation timeTime string in YYYY-MM-DD HH:mm:ss format
versionstringCurrently fixed as v1.0Fixed value, length 4
dataobjectTax information collection form payloadSee the structure below

data Fields

FieldTypeDescriptionFormat / Constraint
merchantNostringMerchant number-
merchantRefIdstringUnique identifier for the recipient in your systemOriginates from the merchant request; maximum length 128
taxTypestringTax type. See taxTypeEnum value
formTypestringTax information collection form type. See formTypeEnum value
formStatusstringLatest form status. See formStatusEnum value
submitTimestring(datetime) / nullForm submission timeTime string in YYYY-MM-DD HH:mm:ss format, or null

Callback Example

http
POST /notify/10001 HTTP/1.1
Content-Type: application/json;charset=UTF-8
x-timestamp: 1777012345
x-signature: 4d2f...
json
{
  "requestId": "1987654321123456789",
  "eventType": "tax.form.status.change",
  "createdAt": "2026-04-27 17:20:31",
  "version": "v1.0",
  "data": {
    "merchantNo": "10001",
    "merchantRefId": "payee_10001",
    "taxType": "TAX1099NEC",
    "formType": "W9",
    "formStatus": "READY",
    "submitTime": "2026-04-27 17:18:01"
  }
}

Field Notes

formStatus

ValueDescription
READYTax information collection and verification are complete, and downstream business processing can continue, such as allowing withdrawals
FAILEDThe form verification failed and the payee should refill the form or it should be handled manually
EXPIREDThe form has expired and a new collection link is recommended

For the full definition, see Enumerations.

Merchant Handling Recommendations

  • Verify the signature before processing business logic
  • Use requestId for notification-level idempotency control
  • It is recommended to use merchantRefId + formStatus + submitTime as an additional business-side deduplication key
  • When the status is FAILED or EXPIRED, continue processing according to the query API result or your business rules