Docs/API/Support

Support Channels

Create support tickets linked to specific policies or applications, and exchange messages with PGI underwriters. Replies from PGI appear in the thread automatically.

Create a support ticket

POST /api/v2/support/tickets/

Request body

FieldTypeDescription
subjectrequired string Brief subject line for the ticket.
messagerequired string Initial message body. Describe your question or issue in detail.
policy_numberoptional string Link this ticket to a specific policy. Must be a policy you originated.
application_idoptional string Link this ticket to a specific application.

Response

201 Created
{
  "ticket_id": "B3C4D5E6F7A1890123456789DD",
  "subject": "Coverage question for PGI-2026-CA-00142",
  "status": "open",
  "policy_number": "PGI-2026-CA-00142",
  "messages": [
    {
      "sender": "partner",
      "content": "Can you confirm whether covenant breach events are covered under this policy? The borrower may be approaching a DSCR covenant trigger.",
      "created_at": "2026-04-03T18:30:00Z"
    }
  ],
  "created_at": "2026-04-03T18:30:00Z"
}

Example

curl -X POST https://api.pgicover.com/api/v2/support/tickets/ \
  -H "Authorization: Bearer pk_test_abc123def456ghi789jkl012mno345" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Coverage question for PGI-2026-CA-00142",
    "message": "Can you confirm whether covenant breach events are covered under this policy?",
    "policy_number": "PGI-2026-CA-00142"
  }'
resp = requests.post(
    "https://api.pgicover.com/api/v2/support/tickets/",
    headers={"Authorization": "Bearer pk_test_abc123def456ghi789jkl012mno345"},
    json={
        "subject": "Coverage question for PGI-2026-CA-00142",
        "message": "Can you confirm whether covenant breach events are covered under this policy?",
        "policy_number": "PGI-2026-CA-00142",
    },
)
ticket = resp.json()
print(f"Ticket {ticket['ticket_id']} created: {ticket['status']}")
const resp = await fetch("https://api.pgicover.com/api/v2/support/tickets/", {
  method: "POST",
  headers: {
    "Authorization": "Bearer pk_test_abc123def456ghi789jkl012mno345",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    subject: "Coverage question for PGI-2026-CA-00142",
    message: "Can you confirm whether covenant breach events are covered under this policy?",
    policy_number: "PGI-2026-CA-00142",
  }),
});
const ticket = await resp.json();
console.log(`Ticket ${ticket.ticket_id} created: ${ticket.status}`);

Send a message

POST /api/v2/support/tickets/{ticket_id}/messages/

Request body

FieldTypeDescription
contentrequired string The message text to send.

Response

201 Created
{
  "message_id": "C4D5E6F7A1B2890123456789EE",
  "sender": "partner",
  "content": "Here is the loan agreement for reference.",
  "created_at": "2026-04-03T19:12:44Z"
}

Get ticket details

GET /api/v2/support/tickets/{ticket_id}/

Returns full ticket details including the complete message thread. Messages from PGI underwriters appear automatically when they respond through the admin conversation UI.

200 OK
{
  "ticket_id": "B3C4D5E6F7A1890123456789DD",
  "subject": "Coverage question for PGI-2026-CA-00142",
  "status": "open",
  "policy_number": "PGI-2026-CA-00142",
  "messages": [
    {
      "sender": "partner",
      "content": "Can you confirm whether covenant breach events are covered under this policy?",
      "created_at": "2026-04-03T18:30:00Z"
    },
    {
      "sender": "pgi_underwriter",
      "content": "Yes, covenant breach is a covered event type under PGI-2026-CA-00142. If the borrower breaches a financial covenant and the lender calls the guarantee, you can file a claim with event_type 'covenant_breach'.",
      "created_at": "2026-04-04T09:15:00Z"
    }
  ],
  "created_at": "2026-04-03T18:30:00Z"
}

List tickets

GET /api/v2/support/tickets/

Returns a paginated list of all support tickets for your partner account.

200 OK
{
  "count": 5,
  "next": null,
  "previous": null,
  "results": [
    {
      "ticket_id": "B3C4D5E6F7A1890123456789DD",
      "subject": "Coverage question for PGI-2026-CA-00142",
      "status": "open",
      "policy_number": "PGI-2026-CA-00142",
      "message_count": 2,
      "created_at": "2026-04-03T18:30:00Z"
    }
  ]
}

Ticket statuses

StatusMeaning
openTicket is active and awaiting response.
pendingPGI is investigating and will respond.
closedTicket resolved and closed.
Webhook events You'll receive support.message_received when a PGI underwriter replies, and support.ticket_closed when a ticket is resolved. See Webhooks.