Draft v0.1. The Partner API is being built. Endpoints and payloads may still change until sandbox access opens.

Applications

A customer's paid request for cover with your company. You acknowledge it, ask questions if you need to, and decide. Applications arrive as application.submitted webhooks; these calls act on them.

EndpointWhat it does
GET/applicationsList applications
GET/applications/{id}Retrieve an application
POST/applications/{id}/acknowledgeAcknowledge an application
POST/applications/{id}/rfiRequest information (RFI)
POST/applications/{id}/decisionApprove or reject

List applications

GET/applications

Applications placed with your company, newest first. Only your company's applications are ever returned — the key decides which company you are.

Query parameters

FieldTypeDescription
statusstringsubmitted | under_review | rfi_required | approved | rejected
pageintegerPage number, starting at 1.
per_pageintegerItems per page, 1–200. Defaults to 50.
updated_sincetimestampOnly records changed at or after this ISO-8601 time — use it to sync incrementally.
Request
curl -X GET https://api-dev.sorplos.com/v1/partner-api/applications?status=submitted \
  -H "Authorization: Bearer sk_test_..."
Response
{
  "data": [
    {
      "id": "SPL-APP-2026-045",
      "insurer_application_ref": null,
      "status": "submitted",
      "product": {
        "sorplos_code": "MOTOR-COMP",
        "provider_product_id": "PROV-MTR-001",
        "name": "Comprehensive Motor",
        "category": "motor"
      },
      "customer": {
        "full_name": "Chidi Okonkwo"
      },
      "premium": {
        "total": 376300,
        "currency": "NGN"
      },
      "submitted_at": "2026-09-14T09:20:05Z"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 50,
    "total": 1
  }
}

Retrieve an application

GET/applications/{id}

The full application, including the customer, risk details, premium breakdown and any RFIs. The same object an application.submitted webhook carries.

Request
curl -X GET https://api-dev.sorplos.com/v1/partner-api/applications/SPL-APP-2026-045 \
  -H "Authorization: Bearer sk_test_..."
Response
{
  "id": "SPL-APP-2026-045",
  "insurer_application_ref": "LWY-APP-2026-045",
  "status": "under_review",
  "product": {
    "sorplos_code": "MOTOR-COMP",
    "provider_product_id": "PROV-MTR-001",
    "name": "Comprehensive Motor",
    "category": "motor"
  },
  "customer": {
    "full_name": "Chidi Okonkwo",
    "date_of_birth": "1985-03-15",
    "gender": "male",
    "email": "chidi@example.com",
    "phone": "+2348030000000",
    "address": "12 Admiralty Way, Lekki Phase 1, Lagos",
    "identity": {
      "type": "bvn",
      "verified_at": "2026-09-14T09:12:00Z",
      "last4": "8901",
      "liveness": "passed"
    }
  },
  "risk": {
    "registration_number": "LSR-123-XY",
    "year_of_manufacture": 2021,
    "usage_type": "private",
    "cover_type": "comprehensive",
    "sum_insured": 8500000,
    "coverage_start_date": "2026-10-01"
  },
  "premium": {
    "base": 350000,
    "taxes": [
      {
        "name": "VAT",
        "amount": 26250
      },
      {
        "name": "Stamp duty",
        "amount": 50
      }
    ],
    "total": 376300,
    "currency": "NGN"
  },
  "payment": {
    "status": "paid",
    "reference": "TXN-PAY-001",
    "paid_at": "2026-09-14T09:20:00Z"
  },
  "rfis": [],
  "submitted_at": "2026-09-14T09:20:05Z",
  "updated_at": "2026-09-14T10:02:00Z"
}

Acknowledge an application

POST/applications/{id}/acknowledge

Record that your system has received the application and give it your own reference. Moves it from submitted to under_review. Your reference is stored exactly as sent.

Body

FieldTypeDescription
insurer_application_refrequiredstringYour application reference, up to 64 characters, unique within your company.
Request
curl -X POST https://api-dev.sorplos.com/v1/partner-api/applications/SPL-APP-2026-045/acknowledge \
  -H "Authorization: Bearer sk_test_..." \
  -H "Idempotency-Key: 5f0c2a8e-7d1b-4c3e-9a64-1b2d3e4f5a6b" \
  -H "Content-Type: application/json" \
  -d '{
  "insurer_application_ref": "LWY-APP-2026-045"
}'
Response
{
  "id": "SPL-APP-2026-045",
  "insurer_application_ref": "LWY-APP-2026-045",
  "status": "under_review",
  "product": {
    "sorplos_code": "MOTOR-COMP",
    "provider_product_id": "PROV-MTR-001",
    "name": "Comprehensive Motor",
    "category": "motor"
  },
  "customer": {
    "full_name": "Chidi Okonkwo",
    "date_of_birth": "1985-03-15",
    "gender": "male",
    "email": "chidi@example.com",
    "phone": "+2348030000000",
    "address": "12 Admiralty Way, Lekki Phase 1, Lagos",
    "identity": {
      "type": "bvn",
      "verified_at": "2026-09-14T09:12:00Z",
      "last4": "8901",
      "liveness": "passed"
    }
  },
  "risk": {
    "registration_number": "LSR-123-XY",
    "year_of_manufacture": 2021,
    "usage_type": "private",
    "cover_type": "comprehensive",
    "sum_insured": 8500000,
    "coverage_start_date": "2026-10-01"
  },
  "premium": {
    "base": 350000,
    "taxes": [
      {
        "name": "VAT",
        "amount": 26250
      },
      {
        "name": "Stamp duty",
        "amount": 50
      }
    ],
    "total": 376300,
    "currency": "NGN"
  },
  "payment": {
    "status": "paid",
    "reference": "TXN-PAY-001",
    "paid_at": "2026-09-14T09:20:00Z"
  },
  "rfis": [],
  "submitted_at": "2026-09-14T09:20:05Z",
  "updated_at": "2026-09-14T10:02:00Z"
}

Request information (RFI)

POST/applications/{id}/rfi

Ask for something you need before deciding. The question comes to Sorplos, never to the customer directly — we get the answer from the customer and reply. Moves the application to rfi_required until the RFI is answered.

Body

FieldTypeDescription
questionrequiredstringWhat you need, in plain language.
required_documentsstring[]Documents that would answer it, e.g. "Proof of ownership".

Sends application.rfi_requested to your webhooks.

Request
curl -X POST https://api-dev.sorplos.com/v1/partner-api/applications/SPL-APP-2026-045/rfi \
  -H "Authorization: Bearer sk_test_..." \
  -H "Idempotency-Key: 5f0c2a8e-7d1b-4c3e-9a64-1b2d3e4f5a6b" \
  -H "Content-Type: application/json" \
  -d '{
  "question": "Please confirm the vehicle's current mileage and provide a recent photo of each side.",
  "required_documents": [
    "Vehicle photos (4 sides)"
  ]
}'
Response
{
  "rfi": {
    "id": "rfi_01J8Z3",
    "question": "Please confirm the vehicle's current mileage and provide a recent photo of each side.",
    "required_documents": [
      "Vehicle photos (4 sides)"
    ],
    "status": "open",
    "raised_at": "2026-09-14T10:30:00Z"
  },
  "application_status": "rfi_required"
}

Approve or reject

POST/applications/{id}/decision

Record your underwriting decision. Approving does not make a policy live on its own — confirm the policy with its number, dates and document (Policies → Confirm a policy). Rejecting triggers a refund to the customer.

Body

FieldTypeDescription
decisionrequiredstringapproved | rejected
reasonstringRequired when rejecting. Shown to Sorplos, not the customer verbatim.

Sends application.approved or application.rejected to your webhooks.

Request
curl -X POST https://api-dev.sorplos.com/v1/partner-api/applications/SPL-APP-2026-045/decision \
  -H "Authorization: Bearer sk_test_..." \
  -H "Idempotency-Key: 5f0c2a8e-7d1b-4c3e-9a64-1b2d3e4f5a6b" \
  -H "Content-Type: application/json" \
  -d '{
  "decision": "approved"
}'
Response
{
  "id": "SPL-APP-2026-045",
  "insurer_application_ref": "LWY-APP-2026-045",
  "status": "approved",
  "product": {
    "sorplos_code": "MOTOR-COMP",
    "provider_product_id": "PROV-MTR-001",
    "name": "Comprehensive Motor",
    "category": "motor"
  },
  "customer": {
    "full_name": "Chidi Okonkwo",
    "date_of_birth": "1985-03-15",
    "gender": "male",
    "email": "chidi@example.com",
    "phone": "+2348030000000",
    "address": "12 Admiralty Way, Lekki Phase 1, Lagos",
    "identity": {
      "type": "bvn",
      "verified_at": "2026-09-14T09:12:00Z",
      "last4": "8901",
      "liveness": "passed"
    }
  },
  "risk": {
    "registration_number": "LSR-123-XY",
    "year_of_manufacture": 2021,
    "usage_type": "private",
    "cover_type": "comprehensive",
    "sum_insured": 8500000,
    "coverage_start_date": "2026-10-01"
  },
  "premium": {
    "base": 350000,
    "taxes": [
      {
        "name": "VAT",
        "amount": 26250
      },
      {
        "name": "Stamp duty",
        "amount": 50
      }
    ],
    "total": 376300,
    "currency": "NGN"
  },
  "payment": {
    "status": "paid",
    "reference": "TXN-PAY-001",
    "paid_at": "2026-09-14T09:20:00Z"
  },
  "rfis": [],
  "submitted_at": "2026-09-14T09:20:05Z",
  "updated_at": "2026-09-14T10:02:00Z"
}