Claims
Convert a predetermination into a claim
POST/api/v1/claims/{id}/convert
For a predetermination whose estimate came back (state returned): makes a new claim (kind claim, a draft) with the same patient, subscriber, payer, office, provider and lines, awaiting its service dates, linked both ways (converted_from, converted_to). The predetermination's attachments move to the new claim (an attachment is on one claim at a time). Add the service dates with an update, then submit the claim. Converting again answers with the claim made the first time (created false), unless that claim was voided before it was sent: then a new claim is made, and the attachments the void released go on it. Anything else (a claim, a predetermination still waiting for its estimate, one with a void open) is a conflict. A predetermination (kind predetermination) is made, validated, sent, voided and read with the same endpoints: it has no service dates, goes out with the predetermination indicator, and comes back returned with its estimate instead of a payment. Send an empty JSON object as the body. Needs an Idempotency-Key header and a key with the submit permission.
Needs a key with submit permission.
Request
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| Idempotency-Key | string | required | Makes the request safe to repeat: a request with the same key and body returns the first answer (the reply has an idempotent-replayed header), and the same key with a different request is refused. 1 to 255 printable characters; a UUID is a good choice.At least 1 character.At most 255 characters.Matches `^[\x21-\x7e]{1,255}$`. |
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | required | A claim ID (clm_...). |
Response
The predetermination and the claim made from it. Status 200.
| Name | Type | Description |
|---|---|---|
| object | string | Always `claim_conversion`. |
| predetermination | object | The predetermination, as it is now (converted_to names the claim). |
| predetermination.id | string | An ID that starts with clm_. |
| predetermination.object | string | Always `claim`. |
| predetermination.kind | string | claim, or predetermination (sent before treatment; its answer is an estimate). Set when it was made.One of: `claim`, `predetermination`. |
| predetermination.state | string | One of: `draft`, `validated`, `needs_attention`, `queued`, `submitted`, `accepted_clearinghouse`, `accepted_payer`, `rejected`, `voided`, `paid`, `denied`, `reconciled`, `returned`. |
| predetermination.next_step | string | One sentence saying what happens next, or what you must do. |
| predetermination.frequency | string | original; replacement for a resubmission of a claim the payer has; void for a void transaction.One of: `original`, `replacement`, `void`. |
| predetermination.parent_id | string or null | The claim a void transaction voids. |
| predetermination.patient_control_number | string | Your identifier for the claim, or the one we made: unique in your organization, sent on the claim and returned on its status. |
| predetermination.office | object | |
| predetermination.office.id | string | An ID that starts with off_. |
| predetermination.office.name | string | |
| predetermination.payer | object | |
| predetermination.payer.id | string | An ID that starts with pyr_. |
| predetermination.payer.payer_id | string | The payer's own payer ID. |
| predetermination.payer.name | string | |
| predetermination.rendering_provider | object | |
| predetermination.rendering_provider.id | string | An ID that starts with prv_. |
| predetermination.rendering_provider.first_name | string | |
| predetermination.rendering_provider.last_name | string | |
| predetermination.rendering_provider.npi | string | |
| predetermination.patient_name | object | The patient: the dependent when there is one, else the subscriber. |
| predetermination.patient_name.first_name | string | |
| predetermination.patient_name.last_name | string | |
| predetermination.patient_id | string or null | The patient this is about (pat_...) in the patient directory: the dependent when there is one, else the subscriber. Set by Claim House when a check completes or a claim's patient is written; null while a check is pending, and when the patient has no date of birth or a name with no letters or digits to compare. |
| predetermination.service_dates | object | |
| predetermination.service_dates.first | string (date) or null | |
| predetermination.service_dates.last | string (date) or null | |
| predetermination.totals | object | |
| predetermination.totals.charge | string | The sum of the line fees, in dollars, as a decimal string.Matches `^-?\d+\.\d{2}$`. |
| predetermination.totals.lines | integer | At least -9007199254740991. |
| predetermination.payment | object or null | What the payer paid (states paid, denied and reconciled), from its remittances; null before one arrives, when every payment was reversed, and always on a predetermination. |
| predetermination.payment.outcome | string | paid or denied: the outcome of the claim's current payment (the latest one no reversal cancelled). A reconciled claim keeps it.One of: `paid`, `denied`. |
| predetermination.payment.era_id | string | The ERA of the claim's current payment (era_...): the latest one, when that is not certain. |
| predetermination.payment.paid | string | What the payer paid in all: the sum of every payment applied, reversals subtracted.Matches `^-?\d+\.\d{2}$`. |
| predetermination.payment.allowed | string or null | The amount the current payment allowed, when it said.Matches `^-?\d+\.\d{2}$`. |
| predetermination.payment.patient_responsibility | string | What the patient owes, as the payer says (deductible, coinsurance and the like).Matches `^-?\d+\.\d{2}$`. |
| predetermination.payment.payment_date | string (date) or null | The payment date of the ERA. |
| predetermination.payment.reconciled_at | string (date-time) or null | When you confirmed you posted the payment (state reconciled); null until then. |
| predetermination.estimate | object or null | A predetermination's estimate (state returned); null before it arrives, and always on a claim. |
| predetermination.estimate.era_id | string | The ERA that carried the estimate (era_...). |
| predetermination.estimate.allowed | string or null | What the payer would allow, when it said.Matches `^-?\d+\.\d{2}$`. |
| predetermination.estimate.pay | string | What the payer would pay once the treatment is done.Matches `^-?\d+\.\d{2}$`. |
| predetermination.estimate.patient | string | The patient's estimated share.Matches `^-?\d+\.\d{2}$`. |
| predetermination.estimate.returned_at | string (date-time) | When the estimate arrived. |
| predetermination.estimate.lines | array of object | The estimate per line, where the payer said (line_number is the predetermination's). |
| predetermination.estimate.lines[].line_number | integer | At least 1. |
| predetermination.estimate.lines[].allowed | string or null | An amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`. |
| predetermination.estimate.lines[].pay | string | An amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`. |
| predetermination.estimate.lines[].patient | string | An amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`. |
| predetermination.converted_from | string or null | On a claim made from a predetermination: the predetermination. |
| predetermination.converted_to | string or null | On a converted predetermination: the claim made from it. |
| predetermination.request_id | string or null | The API request that made the claim (the x-request-id of its response); null for a claim made in the dashboard. |
| predetermination.created_at | string (date-time) | |
| predetermination.updated_at | string (date-time) | |
| predetermination.subscriber | object | |
| predetermination.subscriber.first_name | string | |
| predetermination.subscriber.last_name | string | |
| predetermination.subscriber.date_of_birth | string (date) or null | |
| predetermination.subscriber.gender | string or null | One of: `F`, `M`, `U`. |
| predetermination.subscriber.member_id | string | |
| predetermination.subscriber.group_number | value | |
| predetermination.subscriber.address | object or null | |
| predetermination.subscriber.address.line1 | string | |
| predetermination.subscriber.address.line2 | value | |
| predetermination.subscriber.address.city | string | |
| predetermination.subscriber.address.state | string | |
| predetermination.subscriber.address.postal_code | string | |
| predetermination.patient | object or null | The patient, when not the subscriber. |
| predetermination.patient.first_name | string | |
| predetermination.patient.last_name | string | |
| predetermination.patient.date_of_birth | string (date) or null | |
| predetermination.patient.gender | string or null | One of: `F`, `M`, `U`. |
| predetermination.patient.relationship | string | One of: `spouse`, `child`, `other`. |
| predetermination.patient.address | object or null | |
| predetermination.patient.address.line1 | string | |
| predetermination.patient.address.line2 | value | |
| predetermination.patient.address.city | string | |
| predetermination.patient.address.state | string | |
| predetermination.patient.address.postal_code | string | |
| predetermination.place_of_service | string | |
| predetermination.lines | array of object | |
| predetermination.lines[].line_number | integer | At least 1. |
| predetermination.lines[].cdt | string | |
| predetermination.lines[].description | value | The description you sent, or our short description of the code when you sent none and it is a common one. |
| predetermination.lines[].service_date | string (date) or null | The date of service. Null on a predetermination (it has none), and on a claim made from one until you add it. |
| predetermination.lines[].fee | string | The charge for the whole line, in dollars, as a decimal string (never multiplied by the quantity).Matches `^-?\d+\.\d{2}$`. |
| predetermination.lines[].quantity | integer | How many units the line is for: a count sent with the line (SV306).At least -9007199254740991. |
| predetermination.lines[].tooth | value | |
| predetermination.lines[].surfaces | value | |
| predetermination.lines[].area | value | The oral cavity code: a quadrant (10, 20, 30, 40), an arch (01, 02) or 00. |
| predetermination.remarks | value | |
| predetermination.metadata | object | |
| predetermination.attachments | array of string | The attachments the claim carries, in the order the claim file writes them (a PWK and a note for each).Each item matches `^att_[0-9A-HJKMNP-TV-Z]{26}$`. |
| predetermination.validation | object or null | The result of the last validation; null while the claim has not been validated. |
| predetermination.validation.validated_at | string (date-time) | |
| predetermination.validation.errors | integer | At least -9007199254740991. |
| predetermination.validation.warnings | integer | At least -9007199254740991. |
| predetermination.validation.findings | array of object | |
| predetermination.validation.findings[].field | value | The request field the finding is about, as a dotted path (lines[0].tooth), or null for the claim as a whole. |
| predetermination.validation.findings[].code | string | A stable code for the finding. |
| predetermination.validation.findings[].message | string | |
| predetermination.validation.findings[].severity | string | An error keeps the claim from being sent; a warning does not.One of: `error`, `warning`. |
| predetermination.network | object | |
| predetermination.network.submitted_at | string (date-time) or null | |
| predetermination.network.clearinghouse_claim_id | value | |
| predetermination.network.payer_claim_number | value | The payer's own number for the claim, once it has accepted it. |
| predetermination.network.rejection | object or null | |
| predetermination.network.rejection.source | string | One of: `clearinghouse`, `payer`. |
| predetermination.network.rejection.category | value | The status category code from the 277 (such as A7). |
| predetermination.network.rejection.code | value | The status code from the 277 (such as 33). |
| predetermination.network.rejection.message | string | Why, in plain words. |
| predetermination.network.rejection.fix | value | What to change, when it is known. |
| predetermination.idempotency_key | value | The Idempotency-Key the claim was sent with. |
| claim | object | The claim made from it: a draft with the same patient, subscriber, payer, office, provider, lines and attachments, and no service dates yet. |
| claim.id | string | An ID that starts with clm_. |
| claim.object | string | Always `claim`. |
| claim.kind | string | claim, or predetermination (sent before treatment; its answer is an estimate). Set when it was made.One of: `claim`, `predetermination`. |
| claim.state | string | One of: `draft`, `validated`, `needs_attention`, `queued`, `submitted`, `accepted_clearinghouse`, `accepted_payer`, `rejected`, `voided`, `paid`, `denied`, `reconciled`, `returned`. |
| claim.next_step | string | One sentence saying what happens next, or what you must do. |
| claim.frequency | string | original; replacement for a resubmission of a claim the payer has; void for a void transaction.One of: `original`, `replacement`, `void`. |
| claim.parent_id | string or null | The claim a void transaction voids. |
| claim.patient_control_number | string | Your identifier for the claim, or the one we made: unique in your organization, sent on the claim and returned on its status. |
| claim.office | object | |
| claim.office.id | string | An ID that starts with off_. |
| claim.office.name | string | |
| claim.payer | object | |
| claim.payer.id | string | An ID that starts with pyr_. |
| claim.payer.payer_id | string | The payer's own payer ID. |
| claim.payer.name | string | |
| claim.rendering_provider | object | |
| claim.rendering_provider.id | string | An ID that starts with prv_. |
| claim.rendering_provider.first_name | string | |
| claim.rendering_provider.last_name | string | |
| claim.rendering_provider.npi | string | |
| claim.patient_name | object | The patient: the dependent when there is one, else the subscriber. |
| claim.patient_name.first_name | string | |
| claim.patient_name.last_name | string | |
| claim.patient_id | string or null | The patient this is about (pat_...) in the patient directory: the dependent when there is one, else the subscriber. Set by Claim House when a check completes or a claim's patient is written; null while a check is pending, and when the patient has no date of birth or a name with no letters or digits to compare. |
| claim.service_dates | object | |
| claim.service_dates.first | string (date) or null | |
| claim.service_dates.last | string (date) or null | |
| claim.totals | object | |
| claim.totals.charge | string | The sum of the line fees, in dollars, as a decimal string.Matches `^-?\d+\.\d{2}$`. |
| claim.totals.lines | integer | At least -9007199254740991. |
| claim.payment | object or null | What the payer paid (states paid, denied and reconciled), from its remittances; null before one arrives, when every payment was reversed, and always on a predetermination. |
| claim.payment.outcome | string | paid or denied: the outcome of the claim's current payment (the latest one no reversal cancelled). A reconciled claim keeps it.One of: `paid`, `denied`. |
| claim.payment.era_id | string | The ERA of the claim's current payment (era_...): the latest one, when that is not certain. |
| claim.payment.paid | string | What the payer paid in all: the sum of every payment applied, reversals subtracted.Matches `^-?\d+\.\d{2}$`. |
| claim.payment.allowed | string or null | The amount the current payment allowed, when it said.Matches `^-?\d+\.\d{2}$`. |
| claim.payment.patient_responsibility | string | What the patient owes, as the payer says (deductible, coinsurance and the like).Matches `^-?\d+\.\d{2}$`. |
| claim.payment.payment_date | string (date) or null | The payment date of the ERA. |
| claim.payment.reconciled_at | string (date-time) or null | When you confirmed you posted the payment (state reconciled); null until then. |
| claim.estimate | object or null | A predetermination's estimate (state returned); null before it arrives, and always on a claim. |
| claim.estimate.era_id | string | The ERA that carried the estimate (era_...). |
| claim.estimate.allowed | string or null | What the payer would allow, when it said.Matches `^-?\d+\.\d{2}$`. |
| claim.estimate.pay | string | What the payer would pay once the treatment is done.Matches `^-?\d+\.\d{2}$`. |
| claim.estimate.patient | string | The patient's estimated share.Matches `^-?\d+\.\d{2}$`. |
| claim.estimate.returned_at | string (date-time) | When the estimate arrived. |
| claim.estimate.lines | array of object | The estimate per line, where the payer said (line_number is the predetermination's). |
| claim.estimate.lines[].line_number | integer | At least 1. |
| claim.estimate.lines[].allowed | string or null | An amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`. |
| claim.estimate.lines[].pay | string | An amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`. |
| claim.estimate.lines[].patient | string | An amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`. |
| claim.converted_from | string or null | On a claim made from a predetermination: the predetermination. |
| claim.converted_to | string or null | On a converted predetermination: the claim made from it. |
| claim.request_id | string or null | The API request that made the claim (the x-request-id of its response); null for a claim made in the dashboard. |
| claim.created_at | string (date-time) | |
| claim.updated_at | string (date-time) | |
| claim.subscriber | object | |
| claim.subscriber.first_name | string | |
| claim.subscriber.last_name | string | |
| claim.subscriber.date_of_birth | string (date) or null | |
| claim.subscriber.gender | string or null | One of: `F`, `M`, `U`. |
| claim.subscriber.member_id | string | |
| claim.subscriber.group_number | value | |
| claim.subscriber.address | object or null | |
| claim.subscriber.address.line1 | string | |
| claim.subscriber.address.line2 | value | |
| claim.subscriber.address.city | string | |
| claim.subscriber.address.state | string | |
| claim.subscriber.address.postal_code | string | |
| claim.patient | object or null | The patient, when not the subscriber. |
| claim.patient.first_name | string | |
| claim.patient.last_name | string | |
| claim.patient.date_of_birth | string (date) or null | |
| claim.patient.gender | string or null | One of: `F`, `M`, `U`. |
| claim.patient.relationship | string | One of: `spouse`, `child`, `other`. |
| claim.patient.address | object or null | |
| claim.patient.address.line1 | string | |
| claim.patient.address.line2 | value | |
| claim.patient.address.city | string | |
| claim.patient.address.state | string | |
| claim.patient.address.postal_code | string | |
| claim.place_of_service | string | |
| claim.lines | array of object | |
| claim.lines[].line_number | integer | At least 1. |
| claim.lines[].cdt | string | |
| claim.lines[].description | value | The description you sent, or our short description of the code when you sent none and it is a common one. |
| claim.lines[].service_date | string (date) or null | The date of service. Null on a predetermination (it has none), and on a claim made from one until you add it. |
| claim.lines[].fee | string | The charge for the whole line, in dollars, as a decimal string (never multiplied by the quantity).Matches `^-?\d+\.\d{2}$`. |
| claim.lines[].quantity | integer | How many units the line is for: a count sent with the line (SV306).At least -9007199254740991. |
| claim.lines[].tooth | value | |
| claim.lines[].surfaces | value | |
| claim.lines[].area | value | The oral cavity code: a quadrant (10, 20, 30, 40), an arch (01, 02) or 00. |
| claim.remarks | value | |
| claim.metadata | object | |
| claim.attachments | array of string | The attachments the claim carries, in the order the claim file writes them (a PWK and a note for each).Each item matches `^att_[0-9A-HJKMNP-TV-Z]{26}$`. |
| claim.validation | object or null | The result of the last validation; null while the claim has not been validated. |
| claim.validation.validated_at | string (date-time) | |
| claim.validation.errors | integer | At least -9007199254740991. |
| claim.validation.warnings | integer | At least -9007199254740991. |
| claim.validation.findings | array of object | |
| claim.validation.findings[].field | value | The request field the finding is about, as a dotted path (lines[0].tooth), or null for the claim as a whole. |
| claim.validation.findings[].code | string | A stable code for the finding. |
| claim.validation.findings[].message | string | |
| claim.validation.findings[].severity | string | An error keeps the claim from being sent; a warning does not.One of: `error`, `warning`. |
| claim.network | object | |
| claim.network.submitted_at | string (date-time) or null | |
| claim.network.clearinghouse_claim_id | value | |
| claim.network.payer_claim_number | value | The payer's own number for the claim, once it has accepted it. |
| claim.network.rejection | object or null | |
| claim.network.rejection.source | string | One of: `clearinghouse`, `payer`. |
| claim.network.rejection.category | value | The status category code from the 277 (such as A7). |
| claim.network.rejection.code | value | The status code from the 277 (such as 33). |
| claim.network.rejection.message | string | Why, in plain words. |
| claim.network.rejection.fix | value | What to change, when it is known. |
| claim.idempotency_key | value | The Idempotency-Key the claim was sent with. |
| created | boolean | False when the predetermination was converted already: the claim made then. |
Errors
| HTTP status | Code | What it means |
|---|---|---|
| 401 | UNAUTHORIZED | A valid API key is required. Send it as "Authorization: Bearer <key>". |
| 403 | PERMISSION_DENIED | This API key is not allowed to do that. |
| 404 | NOT_FOUND | Not found. |
| 422 | INVALID_REQUEST | The request is not valid. |
| 400 | IDEMPOTENCY_KEY_REQUIRED | POST and PATCH requests need an Idempotency-Key header. |
| 422 | IDEMPOTENCY_KEY_REUSED | That Idempotency-Key was already used with a different request. |
| 409 | IDEMPOTENCY_KEY_IN_USE | A request with that Idempotency-Key is still running. Retry shortly. |
| 413 | PAYLOAD_TOO_LARGE | The request body is larger than 1 MB. |
| 504 | TIMEOUT | The request took too long to finish. It may still have taken effect: look it up before sending it again with a new Idempotency-Key. What it made is found with GET /api/v1/eligibility?request_id=<this request_id>, and the same filter on /api/v1/claims and /api/v1/attachments (a key with read permission). |
| 503 | CLAIMS_UNAVAILABLE | Claims are not available in live mode yet. Use a test key. |
| 409 | CONFLICT | The resource is not in a state that allows this, or it changed while the request was handled. Read it, then decide whether to send the request again. |
| 500 | INTERNAL | Something went wrong on our side. Quote the request ID if you contact us. |
Example
Example request
curl -X POST "https://sandbox.myclaimhouse.com/api/v1/claims/clm_01JM000000E00800000000004G/convert" \
-H "Authorization: Bearer $CLAIMHOUSE_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{}'Example response: 200
{
"object": "claim_conversion",
"predetermination": {
"id": "clm_01JM000000E00800000000004G",
"object": "claim",
"kind": "predetermination",
"state": "returned",
"next_step": "The payer returned its estimate (what it would pay, not a payment). Once the treatment is done, convert it into a claim and add the service dates.",
"frequency": "original",
"parent_id": null,
"patient_control_number": "CH7PD3K8M2QA",
"office": {
"id": "off_01JM000000E008000000000003",
"name": "Example Family Dental"
},
"payer": {
"id": "pyr_01JM000000E008000000000004",
"payer_id": "00000",
"name": "Example Dental Plan"
},
"rendering_provider": {
"id": "prv_01JM000000E008000000000005",
"first_name": "Riley",
"last_name": "Example",
"npi": "1999990017"
},
"patient_name": {
"first_name": "Alex",
"last_name": "Example"
},
"service_dates": {
"first": null,
"last": null
},
"totals": {
"charge": "1140.00",
"lines": 1
},
"payment": null,
"estimate": {
"era_id": "era_01JM000000E00800000000003G",
"allowed": "1026.00",
"pay": "820.80",
"patient": "205.20",
"returned_at": "2026-09-24T21:03:30.000000+00:00",
"lines": [
{
"line_number": 1,
"allowed": "1026.00",
"pay": "820.80",
"patient": "205.20"
}
]
},
"converted_from": null,
"converted_to": "clm_01JM000000E00800000000004H",
"patient_id": "pat_01JM000000E00800000000004K",
"request_id": "req_01JM000000E00800000000002J",
"created_at": "2026-09-24T21:00:00.120000+00:00",
"updated_at": "2026-09-24T21:00:00.310000+00:00",
"subscriber": {
"first_name": "Alex",
"last_name": "Example",
"date_of_birth": "1985-04-12",
"gender": "F",
"member_id": "CH-ACTIVE-FULL",
"group_number": null,
"address": {
"line1": "1 Example Street",
"line2": null,
"city": "Exampleville",
"state": "GA",
"postal_code": "30000"
}
},
"patient": null,
"place_of_service": "11",
"lines": [
{
"line_number": 1,
"cdt": "D2740",
"description": "Porcelain or ceramic crown",
"service_date": null,
"fee": "1140.00",
"quantity": 1,
"tooth": "3",
"surfaces": null,
"area": null
}
],
"remarks": null,
"metadata": {
"pms_claim_number": "PMS-1042"
},
"attachments": [
"att_01JM000000E00800000000003G"
],
"validation": {
"validated_at": "2026-09-24T21:00:00.300000+00:00",
"errors": 0,
"warnings": 0,
"findings": []
},
"network": {
"submitted_at": "2026-09-24T21:00:30.000000+00:00",
"clearinghouse_claim_id": "SBX7PD3K8M2Q",
"payer_claim_number": "990000001090",
"rejection": null
},
"idempotency_key": "pms-1042"
},
"claim": {
"id": "clm_01JM000000E00800000000004H",
"object": "claim",
"kind": "claim",
"state": "draft",
"next_step": "This claim is a draft: it has not been checked or sent. Validate it, then queue it to send it.",
"frequency": "original",
"parent_id": null,
"patient_control_number": "CH9CV4T7N1RB",
"office": {
"id": "off_01JM000000E008000000000003",
"name": "Example Family Dental"
},
"payer": {
"id": "pyr_01JM000000E008000000000004",
"payer_id": "00000",
"name": "Example Dental Plan"
},
"rendering_provider": {
"id": "prv_01JM000000E008000000000005",
"first_name": "Riley",
"last_name": "Example",
"npi": "1999990017"
},
"patient_name": {
"first_name": "Alex",
"last_name": "Example"
},
"service_dates": {
"first": null,
"last": null
},
"totals": {
"charge": "1140.00",
"lines": 1
},
"payment": null,
"estimate": null,
"converted_from": "clm_01JM000000E00800000000004G",
"converted_to": null,
"patient_id": "pat_01JM000000E00800000000004K",
"request_id": "req_01JM000000E00800000000004J",
"created_at": "2026-09-24T21:00:00.120000+00:00",
"updated_at": "2026-09-24T21:00:00.310000+00:00",
"subscriber": {
"first_name": "Alex",
"last_name": "Example",
"date_of_birth": "1985-04-12",
"gender": "F",
"member_id": "CH-ACTIVE-FULL",
"group_number": null,
"address": {
"line1": "1 Example Street",
"line2": null,
"city": "Exampleville",
"state": "GA",
"postal_code": "30000"
}
},
"patient": null,
"place_of_service": "11",
"lines": [
{
"line_number": 1,
"cdt": "D2740",
"description": "Porcelain or ceramic crown",
"service_date": null,
"fee": "1140.00",
"quantity": 1,
"tooth": "3",
"surfaces": null,
"area": null
}
],
"remarks": null,
"metadata": {
"pms_claim_number": "PMS-1042"
},
"attachments": [
"att_01JM000000E00800000000003G"
],
"validation": null,
"network": {
"submitted_at": null,
"clearinghouse_claim_id": null,
"payer_claim_number": null,
"rejection": null
},
"idempotency_key": "convert-1090"
},
"created": true
}A predetermination still waiting for its estimate: 409
{
"error": "CONFLICT",
"message": "Only a predetermination whose estimate has come back (state returned), and with no void transaction in flight, can be converted into a claim.",
"errors": [],
"request_id": "req_01JM000000E008000000000010"
}