Funder API for Document Protection

Document protection that deters unauthorized use. Aquamark applies funder and broker attributions in the form of visible watermarks and embedded metadata, creating a strong deterrent against internal theft while signaling to brokers and merchants that their documents are safe with you.

Watermarked document sample
Setup time: 2-4 hours. Standard HTTP requests, simple polling pattern. Most developers complete same day.
Lightweight API. Funders receive submissions from brokers through multiple intake channels—API, portals, and email. Instead of sending those files directly into your CRM, route them to our API first. We process each PDF and send back a protected version for you to forward into your CRM. This guarantees that unmarked files never enter your system.

Get Started

How It Works

The API uses asynchronous processing to handle submissions without timeouts:

3-Step Process:

1 Submit job → Get job_id instantly

2 Poll status → Check if complete

3 Download → Get your watermarked PDFs

Endpoints

Submit Job

POST https://aquamark-funder-broker.onrender.com/watermark-funder-broker

Check Status

GET https://aquamark-funder-broker.onrender.com/job-status/:job_id

Authentication

Authorization: Bearer aqua-funder-api-101060-042858-101812

This API key is universal and can be used immediately for testing.

Parameters

Required

Parameter Type Description
user_email String Your company email (authorized funder account)
Use [email protected] for testing
broker_name String Name of submitting broker
Letters, numbers, spaces, and hyphens only
file_url String or Array One or more PDF URLs from broker submission

Max file size: 25MB per file

Note: Examples use cURL for clarity. Translate to your preferred language (Python, JavaScript, Java, etc.). Standard HTTP requests—nothing custom.

Complete Example

1 Submit Job

curl -X POST https://aquamark-funder-broker.onrender.com/watermark-funder-broker \
  -H "Authorization: Bearer aqua-funder-api-101060-042858-101812" \
  -H "Content-Type: application/json" \
  -d '{
    "user_email": "[email protected]",
    "broker_name": "ABC Capital Partners",
    "file_url": [
      "https://your-portal.com/submissions/jan-statement.pdf",
      "https://your-portal.com/submissions/feb-statement.pdf",
      "https://your-portal.com/submissions/credit-app.pdf"
    ]
  }'

Response (instant):

{
  "success": true,
  "job_id": "abc-123-def-456",
  "file_count": 3,
  "message": "Watermarking job started",
  "status_url": "/job-status/abc-123-def-456"
}

2 Poll Status

Use the job_id from Step 1 to check status every 10 seconds:

curl https://aquamark-funder-broker.onrender.com/job-status/abc-123-def-456

While processing:

{
  "job_id": "abc-123-def-456",
  "status": "processing",
  "progress": "Watermarking file 2 of 3",
  "created_at": "2025-01-06T10:00:00Z"
}

When complete:

{
  "job_id": "abc-123-def-456",
  "status": "completed",
  "download_url": "https://...funder-job-results/abc-123-def-456.zip",
  "message": "Ready for download. Files expire after 1 hour.",
  "created_at": "2025-01-06T10:00:00Z",
  "completed_at": "2025-01-06T10:01:30Z"
}

On error:

{
  "job_id": "abc-123-def-456",
  "status": "failed",
  "error_message": "Job timed out after 10 minutes",
  "created_at": "2025-01-06T10:00:00Z",
  "completed_at": "2025-01-06T10:10:00Z"
}

3 Download

Use the download_url from Step 2 to download the ZIP:

curl "https://...funder-job-results/abc-123-def-456.zip" --output watermarked.zip

Example ZIP Contents

watermarked.zip/
├── jan-statement-abc-capital-partners.pdf
├── feb-statement-abc-capital-partners.pdf
└── credit-app-abc-capital-partners.pdf

Each file is watermarked with your funder logo and the broker's name.

Polling Interval

File Availability

Error Codes

Code Meaning Example Response
400 Bad request Validation error (missing params, invalid format)
401 Invalid API key Invalid API key
403 User not authorized User not found or inactive
404 Job not found Job not found
413 File too large File exceeds 25MB limit
429 Rate limit exceeded Too many requests. Please wait 15 minutes and try again.
500 Server error Internal server error

Limits

Important Notes

Unzip required. Downloads are always ZIP files. Use standard extraction libraries in your language.

Getting Started

To integrate watermarking API:

  1. Test: Verify integration using test parameters above (uses Aquamark branding)
  2. Ready?: Email [email protected] to request production access
  3. Authorization: We'll authorize your company email
  4. Upload logo: We'll provide instructions for logo upload
  5. Billing setup: Provide payment information. Billed monthly at $0.05 per file.
  6. Go live: Deploy to production when ready

Questions? Contact [email protected]