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 RowCredits: 1 per PDF page. MIME: PDF, JPEG, PNG, WebP.
1. Trigger and download
- Add Google Drive — Watch Files in a Folder.
- Point at an
invoices/folder; optionally filterapplication/pdf. - 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
| Field | Value |
|---|---|
| URL | https://api.cryvis.com/v1/documents/invoice |
| Method | POST |
| Body type | Multipart/form-data |
| Request headers | Authorization: Bearer sk_live_... |
| Multipart field name | file |
| Multipart field type | File |
| Data | Download module binary |
| File name | Drive 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?
| Document | URL | Notes |
|---|---|---|
| Receipt | /v1/documents/receipt | Multi-file → results[] |
| Custom PDF | /v1/custom-extractors/<slug> | Your schema |
| Passport | /v1/documents/passport | first_page + last_page |
See Extract PDF data before inventing a second HTTP module named “OCR.”
5. Errors to expect
| Status | Code | Action |
|---|---|---|
| 401 | AUTHENTICATION_ERROR | Fix Bearer token |
| 402 | CREDIT_ERROR | Top up credits |
| 422 | EXTRACTION_ERROR / VALIDATION_ERROR | Check file / content |
| 502 | AI_PROVIDER_ERROR | Retry with Break handler |
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.