# Paper Checks Manage paper check printing. Create, queue, and batch print paper checks for vendor payments, direct expenses, vendor prepayments, and customer refunds. ## List paper checks - [GET /public/v1/paper-checks/](https://docs.dualentry.com/resources/paper-checks/core_api_public_paper_checks_list_paper_checks.md): Retrieve a paginated list of paper checks with filtering options. Paper checks represent physical checks that can be printed for vendor payments, direct expenses, vendor prepayments, or customer refunds. Common use cases: - List all queued checks ready to print: ?record_status=not_printed - List checks for a specific vendor: ?vendor_id=123 - List checks within a date range: ?start_date=2024-01-01&end_date=2024-01-31 ## Print check immediately - [POST /public/v1/paper-checks/print-now/](https://docs.dualentry.com/resources/paper-checks/core_api_public_paper_checks_print_now.md): Create and immediately print a paper check for a transaction. This endpoint creates a paper check record and generates the PDF in a single operation. The check is immediately marked as PRINTED. When to use: - When you need to print a single check right away - For on-demand check printing workflows Alternative: Use POST /print-later/ to queue checks for batch printing. Supported transaction types: - Direct expenses - Vendor payments - Vendor prepayments - Customer refunds Returns: The created paper check details along with the PDF content encoded in base64. ## Queue checks for later printing - [POST /public/v1/paper-checks/print-later/](https://docs.dualentry.com/resources/paper-checks/core_api_public_paper_checks_print_later.md): Create paper checks for transactions that will be printed later in a batch. This endpoint creates paper check records with status NOT_PRINTED. These checks can then be printed together using the PUT /print-batch/ endpoint. When to use: - When you want to accumulate checks before printing - For batch check printing workflows - When check numbers need to be assigned in sequence Alternative: Use POST /print-now/ to print a single check immediately. Workflow: 1. Queue checks: POST /print-later/ with transaction IDs 2. Review queued checks: GET /paper-checks/?record_status=not_printed 3. Print batch: PUT /print-batch/ with paper check IDs Returns: List of created paper checks with status 'not_printed'. ## Batch print paper checks - [PUT /public/v1/paper-checks/print-batch/](https://docs.dualentry.com/resources/paper-checks/core_api_public_paper_checks_print_batch.md): Print multiple queued paper checks in a batch. This endpoint prints all specified checks, assigns sequential check numbers, and returns a merged PDF containing all checks. Prerequisites: - All specified checks must have status 'not_printed' - Use POST /print-later/ to queue checks first Check number assignment: Check numbers are assigned sequentially starting from first_check_number. The order of paper_check_ids in the request determines: 1. The order of checks in the PDF 2. The order of check number assignment Example: If first_check_number=1001 and you print 3 checks, they will be numbered 1001, 1002, 1003. Returns: - pdf_content: Base64-encoded PDF with all checks - printed_checks: List showing each check ID and its assigned check number - total_printed: Count of checks printed ## Get paper check - [GET /public/v1/paper-checks/{paper_check_id}/](https://docs.dualentry.com/resources/paper-checks/core_api_public_paper_checks_get_paper_check.md): Retrieve a specific paper check by ID. Returns the full details of a paper check including the associated transaction information, payee details, and current status. ## Archive paper check - [DELETE /public/v1/paper-checks/{paper_check_id}/](https://docs.dualentry.com/resources/paper-checks/core_api_public_paper_checks_delete_paper_check.md): Archive a paper check by setting its status to ARCHIVED. Archiving a paper check removes it from active workflows without deleting it. This allows you to: - Remove a check from the print queue - Create a new check for the same transaction - Maintain audit history Note: Archived checks can still be retrieved via the list and get endpoints by filtering with record_status=archived.