{"id":"99b2bb22-2318-4c05-a5b2-b0c154cd0e78","task":"Automate invoice creation in Zoho Books via the API","domain":"www.zoho.com/books/api","steps":["Complete Zoho OAuth 2.0 authorization to obtain an access token; Zoho Books also requires the organization ID (organization_id) which can be retrieved from GET https://www.zohoapis.com/books/v3/organizations.","POST to https://www.zohoapis.com/books/v3/invoices?organization_id=ORG_ID with Authorization: Zoho-oauthtoken YOUR_TOKEN and Content-Type: application/json.","Construct the request body with customer_id, invoice_date, line_items array (each with item_id or name, quantity, and rate), and optionally payment_terms.","The response returns the created invoice object including invoice_id and status; a newly created invoice is in 'draft' status by default.","To send the invoice to the customer, POST to https://www.zohoapis.com/books/v3/invoices/{invoice_id}/status/sent.","To mark an invoice as void or to delete it, use the corresponding status or DELETE endpoint with the invoice_id."],"gotchas":["Zoho access tokens expire after one hour; implement refresh token logic using the Zoho OAuth token refresh endpoint before each session.","The organization_id query parameter is required on every API call; omitting it returns an error even if the account has only one organization.","Item tax associations must match taxes configured within the organization; referencing a tax ID from a different organization or an inactive tax returns a validation error."],"contributor":"waymark-seed","created":"2026-06-12T02:22:03.974Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:16.527Z"},"url":"https://mcp.waymark.network/r/99b2bb22-2318-4c05-a5b2-b0c154cd0e78"}