← Back to blog

Send a PDF to Cryvis OCR from Make.com

Use Make.com HTTP Make a Request to POST a PDF to Cryvis Invoice API—multipart file, Bearer auth, and JSON mapping. No generic OCR URL.

Make’s HTTP — Make a Request module is how you send a PDF into Cryvis. There is no /v1/ocr endpoint. For invoices, post to https://api.cryvis.com/v1/documents/invoice with multipart field file.

This tutorial wires Drive → HTTP → Sheets for invoices. Other document types swap the URL and field names (multipart guide). Hub: Make.com + Cryvis. Product: Invoice OCR API.

Scenario overview

Google Drive — Watch Files
        |
        v
Google Drive — Download a File
        |
        v
HTTP — Make a Request
  POST /v1/documents/invoice
  Authorization: Bearer ...
  multipart: file=<binary>
        |
        v
Google Sheets — Add a Row

Credits: 1 per PDF page. MIME: PDF, JPEG, PNG, WebP.

1. Trigger and download

  1. Add Google Drive — Watch Files in a Folder.
  2. Point at an invoices/ folder; optionally filter application/pdf.
  3. Add Download a File; map File ID from the watch module.

Confirm the download bundle includes binary data (Buffer). You will map that Buffer—not the webViewLink.

2. HTTP — Make a Request

FieldValue
URLhttps://api.cryvis.com/v1/documents/invoice
MethodPOST
Body typeMultipart/form-data
Request headersAuthorization: Bearer sk_live_...
Multipart field namefile
Multipart field typeFile
DataDownload module binary
File nameDrive filename

Turn on JSON parse / “Parse response” so Make builds a collection from the body.

Equivalent curl:

curl -X POST https://api.cryvis.com/v1/documents/invoice \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@invoice.pdf"

Auth patterns: Add Bearer authentication. Binary mapping: Upload file to API.

3. Response you will map

Single-file invoice responses look like:

{
  "success": true,
  "data": {
    "invoice_number": "INV-2024-00142",
    "invoice_date": "2024-03-15",
    "due_date": "2024-04-14",
    "currency": "USD",
    "seller": { "name": "Acme Cloud Services", "tax_id": "US12-3456789" },
    "total_amount": 1193.77
  },
  "meta": {
    "document_type": "invoice",
    "request_id": "..."
  }
}

Map data.invoice_number, data.seller.name, data.total_amount, meta.request_id. Nested mapping: Map API JSON fields. Envelope details: Parse API JSON responses.

4. Not an invoice?

DocumentURLNotes
Receipt/v1/documents/receiptMulti-file → results[]
Custom PDF/v1/custom-extractors/<slug>Your schema
Passport/v1/documents/passportfirst_page + last_page

See Extract PDF data before inventing a second HTTP module named “OCR.”

5. Errors to expect

StatusCodeAction
401AUTHENTICATION_ERRORFix Bearer token
402CREDIT_ERRORTop up credits
422EXTRACTION_ERROR / VALIDATION_ERRORCheck file / content
502AI_PROVIDER_ERRORRetry with Break handler

Handle API errors.

Checklist

  • URL is /v1/documents/invoice (or another real document route)
  • Multipart field name is file
  • Binary mapped from Download
  • Sheets uses data.* paths
  • Error Handler attached

Clone this scenario for receipts or custom extractors by changing URL and mappings—keep the same auth and binary pattern. Full REST overview: Connect REST API.