Skip to the page
Chapters

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

Headers
NameTypeRequiredDescription
Idempotency-KeystringrequiredMakes 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

Path parameters
NameTypeRequiredDescription
idstringrequiredA claim ID (clm_...).

Response

The predetermination and the claim made from it. Status 200.

Response fields
NameTypeDescription
objectstringAlways `claim_conversion`.
predeterminationobjectThe predetermination, as it is now (converted_to names the claim).
predetermination.idstringAn ID that starts with clm_.
predetermination.objectstringAlways `claim`.
predetermination.kindstringclaim, or predetermination (sent before treatment; its answer is an estimate). Set when it was made.One of: `claim`, `predetermination`.
predetermination.statestringOne of: `draft`, `validated`, `needs_attention`, `queued`, `submitted`, `accepted_clearinghouse`, `accepted_payer`, `rejected`, `voided`, `paid`, `denied`, `reconciled`, `returned`.
predetermination.next_stepstringOne sentence saying what happens next, or what you must do.
predetermination.frequencystringoriginal; replacement for a resubmission of a claim the payer has; void for a void transaction.One of: `original`, `replacement`, `void`.
predetermination.parent_idstring or nullThe claim a void transaction voids.
predetermination.patient_control_numberstringYour identifier for the claim, or the one we made: unique in your organization, sent on the claim and returned on its status.
predetermination.officeobject
predetermination.office.idstringAn ID that starts with off_.
predetermination.office.namestring
predetermination.payerobject
predetermination.payer.idstringAn ID that starts with pyr_.
predetermination.payer.payer_idstringThe payer's own payer ID.
predetermination.payer.namestring
predetermination.rendering_providerobject
predetermination.rendering_provider.idstringAn ID that starts with prv_.
predetermination.rendering_provider.first_namestring
predetermination.rendering_provider.last_namestring
predetermination.rendering_provider.npistring
predetermination.patient_nameobjectThe patient: the dependent when there is one, else the subscriber.
predetermination.patient_name.first_namestring
predetermination.patient_name.last_namestring
predetermination.patient_idstring or nullThe 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_datesobject
predetermination.service_dates.firststring (date) or null
predetermination.service_dates.laststring (date) or null
predetermination.totalsobject
predetermination.totals.chargestringThe sum of the line fees, in dollars, as a decimal string.Matches `^-?\d+\.\d{2}$`.
predetermination.totals.linesintegerAt least -9007199254740991.
predetermination.paymentobject or nullWhat 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.outcomestringpaid 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_idstringThe ERA of the claim's current payment (era_...): the latest one, when that is not certain.
predetermination.payment.paidstringWhat the payer paid in all: the sum of every payment applied, reversals subtracted.Matches `^-?\d+\.\d{2}$`.
predetermination.payment.allowedstring or nullThe amount the current payment allowed, when it said.Matches `^-?\d+\.\d{2}$`.
predetermination.payment.patient_responsibilitystringWhat the patient owes, as the payer says (deductible, coinsurance and the like).Matches `^-?\d+\.\d{2}$`.
predetermination.payment.payment_datestring (date) or nullThe payment date of the ERA.
predetermination.payment.reconciled_atstring (date-time) or nullWhen you confirmed you posted the payment (state reconciled); null until then.
predetermination.estimateobject or nullA predetermination's estimate (state returned); null before it arrives, and always on a claim.
predetermination.estimate.era_idstringThe ERA that carried the estimate (era_...).
predetermination.estimate.allowedstring or nullWhat the payer would allow, when it said.Matches `^-?\d+\.\d{2}$`.
predetermination.estimate.paystringWhat the payer would pay once the treatment is done.Matches `^-?\d+\.\d{2}$`.
predetermination.estimate.patientstringThe patient's estimated share.Matches `^-?\d+\.\d{2}$`.
predetermination.estimate.returned_atstring (date-time)When the estimate arrived.
predetermination.estimate.linesarray of objectThe estimate per line, where the payer said (line_number is the predetermination's).
predetermination.estimate.lines[].line_numberintegerAt least 1.
predetermination.estimate.lines[].allowedstring or nullAn amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`.
predetermination.estimate.lines[].paystringAn amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`.
predetermination.estimate.lines[].patientstringAn amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`.
predetermination.converted_fromstring or nullOn a claim made from a predetermination: the predetermination.
predetermination.converted_tostring or nullOn a converted predetermination: the claim made from it.
predetermination.request_idstring or nullThe API request that made the claim (the x-request-id of its response); null for a claim made in the dashboard.
predetermination.created_atstring (date-time)
predetermination.updated_atstring (date-time)
predetermination.subscriberobject
predetermination.subscriber.first_namestring
predetermination.subscriber.last_namestring
predetermination.subscriber.date_of_birthstring (date) or null
predetermination.subscriber.genderstring or nullOne of: `F`, `M`, `U`.
predetermination.subscriber.member_idstring
predetermination.subscriber.group_numbervalue
predetermination.subscriber.addressobject or null
predetermination.subscriber.address.line1string
predetermination.subscriber.address.line2value
predetermination.subscriber.address.citystring
predetermination.subscriber.address.statestring
predetermination.subscriber.address.postal_codestring
predetermination.patientobject or nullThe patient, when not the subscriber.
predetermination.patient.first_namestring
predetermination.patient.last_namestring
predetermination.patient.date_of_birthstring (date) or null
predetermination.patient.genderstring or nullOne of: `F`, `M`, `U`.
predetermination.patient.relationshipstringOne of: `spouse`, `child`, `other`.
predetermination.patient.addressobject or null
predetermination.patient.address.line1string
predetermination.patient.address.line2value
predetermination.patient.address.citystring
predetermination.patient.address.statestring
predetermination.patient.address.postal_codestring
predetermination.place_of_servicestring
predetermination.linesarray of object
predetermination.lines[].line_numberintegerAt least 1.
predetermination.lines[].cdtstring
predetermination.lines[].descriptionvalueThe description you sent, or our short description of the code when you sent none and it is a common one.
predetermination.lines[].service_datestring (date) or nullThe date of service. Null on a predetermination (it has none), and on a claim made from one until you add it.
predetermination.lines[].feestringThe charge for the whole line, in dollars, as a decimal string (never multiplied by the quantity).Matches `^-?\d+\.\d{2}$`.
predetermination.lines[].quantityintegerHow many units the line is for: a count sent with the line (SV306).At least -9007199254740991.
predetermination.lines[].toothvalue
predetermination.lines[].surfacesvalue
predetermination.lines[].areavalueThe oral cavity code: a quadrant (10, 20, 30, 40), an arch (01, 02) or 00.
predetermination.remarksvalue
predetermination.metadataobject
predetermination.attachmentsarray of stringThe 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.validationobject or nullThe result of the last validation; null while the claim has not been validated.
predetermination.validation.validated_atstring (date-time)
predetermination.validation.errorsintegerAt least -9007199254740991.
predetermination.validation.warningsintegerAt least -9007199254740991.
predetermination.validation.findingsarray of object
predetermination.validation.findings[].fieldvalueThe request field the finding is about, as a dotted path (lines[0].tooth), or null for the claim as a whole.
predetermination.validation.findings[].codestringA stable code for the finding.
predetermination.validation.findings[].messagestring
predetermination.validation.findings[].severitystringAn error keeps the claim from being sent; a warning does not.One of: `error`, `warning`.
predetermination.networkobject
predetermination.network.submitted_atstring (date-time) or null
predetermination.network.clearinghouse_claim_idvalue
predetermination.network.payer_claim_numbervalueThe payer's own number for the claim, once it has accepted it.
predetermination.network.rejectionobject or null
predetermination.network.rejection.sourcestringOne of: `clearinghouse`, `payer`.
predetermination.network.rejection.categoryvalueThe status category code from the 277 (such as A7).
predetermination.network.rejection.codevalueThe status code from the 277 (such as 33).
predetermination.network.rejection.messagestringWhy, in plain words.
predetermination.network.rejection.fixvalueWhat to change, when it is known.
predetermination.idempotency_keyvalueThe Idempotency-Key the claim was sent with.
claimobjectThe claim made from it: a draft with the same patient, subscriber, payer, office, provider, lines and attachments, and no service dates yet.
claim.idstringAn ID that starts with clm_.
claim.objectstringAlways `claim`.
claim.kindstringclaim, or predetermination (sent before treatment; its answer is an estimate). Set when it was made.One of: `claim`, `predetermination`.
claim.statestringOne of: `draft`, `validated`, `needs_attention`, `queued`, `submitted`, `accepted_clearinghouse`, `accepted_payer`, `rejected`, `voided`, `paid`, `denied`, `reconciled`, `returned`.
claim.next_stepstringOne sentence saying what happens next, or what you must do.
claim.frequencystringoriginal; replacement for a resubmission of a claim the payer has; void for a void transaction.One of: `original`, `replacement`, `void`.
claim.parent_idstring or nullThe claim a void transaction voids.
claim.patient_control_numberstringYour identifier for the claim, or the one we made: unique in your organization, sent on the claim and returned on its status.
claim.officeobject
claim.office.idstringAn ID that starts with off_.
claim.office.namestring
claim.payerobject
claim.payer.idstringAn ID that starts with pyr_.
claim.payer.payer_idstringThe payer's own payer ID.
claim.payer.namestring
claim.rendering_providerobject
claim.rendering_provider.idstringAn ID that starts with prv_.
claim.rendering_provider.first_namestring
claim.rendering_provider.last_namestring
claim.rendering_provider.npistring
claim.patient_nameobjectThe patient: the dependent when there is one, else the subscriber.
claim.patient_name.first_namestring
claim.patient_name.last_namestring
claim.patient_idstring or nullThe 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_datesobject
claim.service_dates.firststring (date) or null
claim.service_dates.laststring (date) or null
claim.totalsobject
claim.totals.chargestringThe sum of the line fees, in dollars, as a decimal string.Matches `^-?\d+\.\d{2}$`.
claim.totals.linesintegerAt least -9007199254740991.
claim.paymentobject or nullWhat 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.outcomestringpaid 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_idstringThe ERA of the claim's current payment (era_...): the latest one, when that is not certain.
claim.payment.paidstringWhat the payer paid in all: the sum of every payment applied, reversals subtracted.Matches `^-?\d+\.\d{2}$`.
claim.payment.allowedstring or nullThe amount the current payment allowed, when it said.Matches `^-?\d+\.\d{2}$`.
claim.payment.patient_responsibilitystringWhat the patient owes, as the payer says (deductible, coinsurance and the like).Matches `^-?\d+\.\d{2}$`.
claim.payment.payment_datestring (date) or nullThe payment date of the ERA.
claim.payment.reconciled_atstring (date-time) or nullWhen you confirmed you posted the payment (state reconciled); null until then.
claim.estimateobject or nullA predetermination's estimate (state returned); null before it arrives, and always on a claim.
claim.estimate.era_idstringThe ERA that carried the estimate (era_...).
claim.estimate.allowedstring or nullWhat the payer would allow, when it said.Matches `^-?\d+\.\d{2}$`.
claim.estimate.paystringWhat the payer would pay once the treatment is done.Matches `^-?\d+\.\d{2}$`.
claim.estimate.patientstringThe patient's estimated share.Matches `^-?\d+\.\d{2}$`.
claim.estimate.returned_atstring (date-time)When the estimate arrived.
claim.estimate.linesarray of objectThe estimate per line, where the payer said (line_number is the predetermination's).
claim.estimate.lines[].line_numberintegerAt least 1.
claim.estimate.lines[].allowedstring or nullAn amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`.
claim.estimate.lines[].paystringAn amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`.
claim.estimate.lines[].patientstringAn amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`.
claim.converted_fromstring or nullOn a claim made from a predetermination: the predetermination.
claim.converted_tostring or nullOn a converted predetermination: the claim made from it.
claim.request_idstring or nullThe API request that made the claim (the x-request-id of its response); null for a claim made in the dashboard.
claim.created_atstring (date-time)
claim.updated_atstring (date-time)
claim.subscriberobject
claim.subscriber.first_namestring
claim.subscriber.last_namestring
claim.subscriber.date_of_birthstring (date) or null
claim.subscriber.genderstring or nullOne of: `F`, `M`, `U`.
claim.subscriber.member_idstring
claim.subscriber.group_numbervalue
claim.subscriber.addressobject or null
claim.subscriber.address.line1string
claim.subscriber.address.line2value
claim.subscriber.address.citystring
claim.subscriber.address.statestring
claim.subscriber.address.postal_codestring
claim.patientobject or nullThe patient, when not the subscriber.
claim.patient.first_namestring
claim.patient.last_namestring
claim.patient.date_of_birthstring (date) or null
claim.patient.genderstring or nullOne of: `F`, `M`, `U`.
claim.patient.relationshipstringOne of: `spouse`, `child`, `other`.
claim.patient.addressobject or null
claim.patient.address.line1string
claim.patient.address.line2value
claim.patient.address.citystring
claim.patient.address.statestring
claim.patient.address.postal_codestring
claim.place_of_servicestring
claim.linesarray of object
claim.lines[].line_numberintegerAt least 1.
claim.lines[].cdtstring
claim.lines[].descriptionvalueThe description you sent, or our short description of the code when you sent none and it is a common one.
claim.lines[].service_datestring (date) or nullThe date of service. Null on a predetermination (it has none), and on a claim made from one until you add it.
claim.lines[].feestringThe charge for the whole line, in dollars, as a decimal string (never multiplied by the quantity).Matches `^-?\d+\.\d{2}$`.
claim.lines[].quantityintegerHow many units the line is for: a count sent with the line (SV306).At least -9007199254740991.
claim.lines[].toothvalue
claim.lines[].surfacesvalue
claim.lines[].areavalueThe oral cavity code: a quadrant (10, 20, 30, 40), an arch (01, 02) or 00.
claim.remarksvalue
claim.metadataobject
claim.attachmentsarray of stringThe 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.validationobject or nullThe result of the last validation; null while the claim has not been validated.
claim.validation.validated_atstring (date-time)
claim.validation.errorsintegerAt least -9007199254740991.
claim.validation.warningsintegerAt least -9007199254740991.
claim.validation.findingsarray of object
claim.validation.findings[].fieldvalueThe request field the finding is about, as a dotted path (lines[0].tooth), or null for the claim as a whole.
claim.validation.findings[].codestringA stable code for the finding.
claim.validation.findings[].messagestring
claim.validation.findings[].severitystringAn error keeps the claim from being sent; a warning does not.One of: `error`, `warning`.
claim.networkobject
claim.network.submitted_atstring (date-time) or null
claim.network.clearinghouse_claim_idvalue
claim.network.payer_claim_numbervalueThe payer's own number for the claim, once it has accepted it.
claim.network.rejectionobject or null
claim.network.rejection.sourcestringOne of: `clearinghouse`, `payer`.
claim.network.rejection.categoryvalueThe status category code from the 277 (such as A7).
claim.network.rejection.codevalueThe status code from the 277 (such as 33).
claim.network.rejection.messagestringWhy, in plain words.
claim.network.rejection.fixvalueWhat to change, when it is known.
claim.idempotency_keyvalueThe Idempotency-Key the claim was sent with.
createdbooleanFalse when the predetermination was converted already: the claim made then.

Errors

Errors
HTTP statusCodeWhat it means
401UNAUTHORIZEDA valid API key is required. Send it as "Authorization: Bearer <key>".
403PERMISSION_DENIEDThis API key is not allowed to do that.
404NOT_FOUNDNot found.
422INVALID_REQUESTThe request is not valid.
400IDEMPOTENCY_KEY_REQUIREDPOST and PATCH requests need an Idempotency-Key header.
422IDEMPOTENCY_KEY_REUSEDThat Idempotency-Key was already used with a different request.
409IDEMPOTENCY_KEY_IN_USEA request with that Idempotency-Key is still running. Retry shortly.
413PAYLOAD_TOO_LARGEThe request body is larger than 1 MB.
504TIMEOUTThe 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).
503CLAIMS_UNAVAILABLEClaims are not available in live mode yet. Use a test key.
409CONFLICTThe 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.
500INTERNALSomething went wrong on our side. Quote the request ID if you contact us.

Example

Example request

Shell
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

JSON
{
  "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

JSON
{
  "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"
}