{"openapi":"3.1.0","info":{"title":"POST /api/v1/sales-receipts","version":"1.0.0","description":"Create sales receipt"},"servers":[{"url":"https://api.ondayzero.com","description":"Production"}],"paths":{"/api/v1/sales-receipts":{"post":{"tags":["sales-receipts"],"summary":"Create sales receipt","description":"Create and post a sales receipt (or refund receipt).","operationId":"create_sales_receipt_api_v1_sales_receipts_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-business-id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Business-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalesReceiptCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalesReceiptResponse"}}}},"400":{"description":"Bad Request - Invalid input","content":{"application/json":{"example":{"detail":"Invalid request parameters"}}}},"401":{"description":"Unauthorized - Authentication required","content":{"application/json":{"example":{"detail":"Not authenticated"}}}},"403":{"description":"Forbidden - Insufficient permissions","content":{"application/json":{"example":{"detail":"Not enough permissions"}}}},"404":{"description":"Not Found - Resource does not exist","content":{"application/json":{"example":{"detail":"Resource not found"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"SalesReceiptCreateRequest":{"properties":{"receipt_type":{"type":"string","title":"Receipt Type","description":"One of: sale, refund.","default":"sale"},"customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id","description":"Optional customer (anonymous cash sales allowed)."},"receipt_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Receipt Date","description":"Receipt date. Defaults to today when omitted."},"deposit_to_ledger_id":{"type":"string","title":"Deposit To Ledger Id","description":"Bank/cash ledger that receives (sale) or pays out (refund)."},"income_ledger_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Income Ledger Id","description":"Revenue ledger override. Defaults to the Invoice Sales system account."},"line_items":{"items":{"$ref":"#/components/schemas/SalesReceiptLineItem"},"type":"array","minItems":1,"title":"Line Items","description":"At least one line item is required."},"tax_total":{"type":"integer","minimum":0.0,"title":"Tax Total","description":"Total sales tax in cents (posted to Sales Tax Payable).","default":0},"number":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Number","description":"Optional document number; auto-generated."},"memo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Memo","description":"Optional memo / note."},"currency":{"type":"string","maxLength":3,"title":"Currency","default":"USD"}},"type":"object","required":["deposit_to_ledger_id","line_items"],"title":"SalesReceiptCreateRequest","description":"Request schema for creating (and immediately posting) a sales receipt."},"SalesReceiptLineItem":{"properties":{"catalog_item_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Catalog Item Id","description":"Optional catalog item this line is based on."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Line description."},"quantity":{"type":"number","exclusiveMinimum":0.0,"title":"Quantity","description":"Quantity sold/refunded.","default":1},"unit_price":{"type":"integer","minimum":0.0,"title":"Unit Price","description":"Price per unit in cents (e.g. 15000 = $150.00)."},"amount":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Amount","description":"Line total in cents. Computed from quantity * unit_price when omitted."}},"type":"object","required":["unit_price"],"title":"SalesReceiptLineItem","description":"A single line on a sales/refund receipt."},"SalesReceiptResponse":{"properties":{"id":{"type":"string","title":"Id"},"business_id":{"type":"string","title":"Business Id"},"number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Number"},"receipt_type":{"type":"string","title":"Receipt Type"},"status":{"type":"string","title":"Status"},"customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"},"customer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Name"},"receipt_date":{"type":"string","format":"date","title":"Receipt Date"},"deposit_to_ledger_id":{"type":"string","title":"Deposit To Ledger Id"},"deposit_to_ledger_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deposit To Ledger Name"},"income_ledger_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Income Ledger Id"},"income_ledger_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Income Ledger Name"},"line_items":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Line Items"},"subtotal":{"type":"integer","title":"Subtotal"},"tax_total":{"type":"integer","title":"Tax Total"},"total":{"type":"integer","title":"Total"},"memo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Memo"},"currency":{"type":"string","title":"Currency"},"journal_entry_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Journal Entry Id"},"void_journal_entry_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Void Journal Entry Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","business_id","receipt_type","status","receipt_date","deposit_to_ledger_id","subtotal","tax_total","total","currency","created_at","updated_at"],"title":"SalesReceiptResponse","description":"Response schema for a sales/refund receipt."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Token","description":"API token authentication. Format: `Bearer dz_...`"}}},"security":[{"BearerAuth":[]}]}