Claim Submission Workflow
The Claim Submission API uses a multi-step flow to submit reimbursement claims. Each step builds on the previous one.
Submission Flow
┌─────────────────┐ ┌──────────────────┐ ┌───────────────────┐ ┌──────────────┐
│ 1. List │────▶│ 2. Get Provider │────▶│ 3. Upload │────▶│ 4. Submit │
│ Providers │ │ Form Reqs │ │ Documents │ │ Claim │
└─────────────────┘ └──────────────────┘ └───────────────────┘ └──────────────┘
Step 1: List Providers
Retrieve available providers for claim submission.
curl -X GET https://claim-submission.withsilver.app/v1/providers \
-H "apiKey: your-partner-api-key"
Response:
[
{
"id": "prv_abc123",
"name": "Wellness Center",
"logo": "https://cdn.withsilver.app/logos/wellness-center.png",
"type": "service"
},
{
"id": "prv_def456",
"name": "PharmaCo",
"logo": "https://cdn.withsilver.app/logos/pharmaco.png",
"type": "product"
}
]
Step 2: Get Provider Form Requirements
Fetch the provider's details including form requirements. These describe the fields that must be populated in user_form_fields when submitting a claim.
curl -X GET https://claim-submission.withsilver.app/v1/providers/prv_abc123 \
-H "apiKey: your-partner-api-key"
Response:
{
"id": "prv_abc123",
"name": "Wellness Center",
"logo": "https://cdn.withsilver.app/logos/wellness-center.png",
"type": "service",
"form_requirements": [
{
"field_name": "employee_id",
"label": "Employee ID",
"type": "text",
"required": true
},
{
"field_name": "relationship",
"label": "Relationship to Plan Holder",
"type": "select",
"required": true,
"options": ["self", "spouse", "dependent"]
}
]
}
Use the form_requirements to build your claim submission form dynamically. Pay attention to:
- Required fields — Must be included in
user_form_fieldswhen submitting - Field types — Determines input validation (text, number, date, select)
- Options — For
selectfields, use the provided options list
Step 3: Upload Claimable Documents
Upload supporting documents (receipts, invoices, EOBs) along with their line-item services. Documents are submitted as base64-encoded files. Each upload returns a document ID to reference when submitting the claim.
curl -X POST https://claim-submission.withsilver.app/v1/claimable_documents \
-H "apiKey: your-partner-api-key" \
-H "Content-Type: application/json" \
-d '{
"user_id": "usr_m3mb3r01",
"document_type": "receipt",
"file": {
"base64": "JVBERi0xLjQKJcfs...",
"mime_type": "application/pdf"
},
"claimable_services": [
{
"service_date_start": "2026-01-10",
"service_date_end": "2026-01-10",
"service_provider": "Downtown Physical Therapy",
"service_description": "Physical therapy session — 60 min",
"claimable_amount": 150.00
}
],
"supporting_documents": [
{
"base64": "iVBORw0KGgoAAAANS...",
"mime_type": "image/png"
}
]
}'
Response: Returns the claimable document ID as a string (e.g., "cdoc_a1b2c3d4").
You can also retrieve and manage the services on a document after creation:
- List services:
GET /v1/claimable_documents/{id}/claimable_services - Remove a service:
DELETE /v1/claimable_documents/{document_id}/claimable_services/{service_id}
Step 4: Submit the Claim
Submit the claim referencing the uploaded documents, the chosen provider, the required form fields, and the member's signature (base64-encoded PNG).
curl -X POST https://claim-submission.withsilver.app/v1/claims \
-H "apiKey: your-partner-api-key" \
-H "Content-Type: application/json" \
-d '{
"user_id": "usr_m3mb3r01",
"provider_id": "prv_abc123",
"plan_period_start": "2026-01-01",
"plan_period_end": "2026-12-31",
"user_form_fields": {
"employee_id": "EMP-9876",
"relationship": "self"
},
"signature": "iVBORw0KGgoAAAANSUhEUgAA...",
"claimable_documents": ["cdoc_a1b2c3d4"]
}'
Response:
{
"claim_id": "clm_x7y8z9",
"user_provider_id": "uprv_11223344"
}
Best Practices
- Check eligibility first — Use the Eligibility API before starting the submission flow to reduce rejections.
- Respect the form requirements — Always fetch the provider's
form_requirementsdynamically rather than hardcoding fields. Requirements may change as plan configurations are updated. - Upload documents before submitting — All document uploads must complete before the claim is submitted.
- Store the claim ID — Save the returned
claim_idfor tracking and customer support purposes. - Include all line-item services — When uploading documents, include the
claimable_servicesarray with accurate service dates, amounts, and descriptions.