openapi: 3.2.0 info: title: Reference Insurance Refunds API version: 1.0.0 servers: - url: https://pre-api.joincandidhealth.com description: Production - url: https://pre-api-staging.joincandidhealth.com description: Staging - url: https://sandbox-pre-api.joincandidhealth.com description: CandidSandbox - url: https://staging-pre-api.joincandidhealth.com description: CandidStaging - url: http://localhost:4000 description: Local - url: https://api.joincandidhealth.com description: Production - url: https://api-staging.joincandidhealth.com description: Staging - url: https://sandbox-api.joincandidhealth.com description: CandidSandbox - url: https://staging-api.joincandidhealth.com description: CandidStaging - url: http://localhost:5050 description: Local tags: - name: Insurance Refunds paths: /api/insurance-refunds/v1: get: operationId: get_multi summary: Get insurance refunds description: 'Returns all insurance refunds satisfying the search criteria AND whose organization_id matches the current organization_id of the authenticated user.' tags: - Insurance Refunds parameters: - name: limit in: query description: Defaults to 100. The value must be greater than 0 and less than 1000. required: false schema: type: integer - name: payer_uuid in: query required: false schema: $ref: '#/components/schemas/type_payers_v3_PayerUuid' - name: claim_id in: query required: false schema: $ref: '#/components/schemas/type_commons_ClaimId' - name: service_line_id in: query required: false schema: $ref: '#/components/schemas/type_commons_ServiceLineId' - name: billing_provider_id in: query required: false schema: $ref: '#/components/schemas/type_commons_ProviderId' - name: sort in: query description: Defaults to refund_timestamp required: false schema: $ref: '#/components/schemas/type_insurance-refunds_v1_InsuranceRefundSortField' - name: sort_direction in: query description: Sort direction. Defaults to descending order if not provided. required: false schema: $ref: '#/components/schemas/type_commons_SortDirection' - name: page_token in: query required: false schema: $ref: '#/components/schemas/type_commons_PageToken' - name: Authorization in: header description: OAuth authentication required: true schema: type: string responses: '200': description: Response with status 200 content: application/json: schema: $ref: '#/components/schemas/type_insurance-refunds_v1_InsuranceRefundsPage' '403': description: Error response with status 403 content: application/json: schema: type: object properties: errorName: type: string enum: - UnauthorizedError content: $ref: '#/components/schemas/type_commons_UnauthorizedErrorMessage' required: - errorName - content '422': description: Error response with status 422 content: application/json: schema: type: object properties: errorName: type: string enum: - UnprocessableEntityError content: $ref: '#/components/schemas/type_commons_UnprocessableEntityErrorMessage' required: - errorName - content post: operationId: create summary: Create insurance refund description: 'Creates a new insurance refund record and returns the newly created `InsuranceRefund` object. The allocations can describe whether the refund is being applied toward a specific service line, claim, or billing provider.' tags: - Insurance Refunds parameters: - name: Authorization in: header description: OAuth authentication required: true schema: type: string responses: '200': description: Response with status 200 content: application/json: schema: $ref: '#/components/schemas/type_insurance-refunds_v1_InsuranceRefund' '403': description: Error response with status 403 content: application/json: schema: type: object properties: errorName: type: string enum: - UnauthorizedError content: $ref: '#/components/schemas/type_commons_UnauthorizedErrorMessage' required: - errorName - content '404': description: Error response with status 404 content: application/json: schema: type: object properties: errorName: type: string enum: - EntityNotFoundError content: $ref: '#/components/schemas/type_commons_EntityNotFoundErrorMessage' required: - errorName - content '422': description: Error response with status 422 content: application/json: schema: type: object properties: errorName: type: string enum: - UnprocessableEntityError content: $ref: '#/components/schemas/type_commons_UnprocessableEntityErrorMessage' required: - errorName - content requestBody: content: application/json: schema: $ref: '#/components/schemas/type_insurance-refunds_v1_InsuranceRefundCreate' /api/insurance-refunds/v1/{insurance_refund_id}: get: operationId: get summary: Get insurance refund description: 'Retrieves a previously created insurance refund by its `insurance_refund_id`. If the refund does not exist, a `403` will be thrown.' tags: - Insurance Refunds parameters: - name: insurance_refund_id in: path required: true schema: $ref: '#/components/schemas/type_insurance-refunds_v1_InsuranceRefundId' - name: Authorization in: header description: OAuth authentication required: true schema: type: string responses: '200': description: Response with status 200 content: application/json: schema: $ref: '#/components/schemas/type_insurance-refunds_v1_InsuranceRefund' '403': description: Error response with status 403 content: application/json: schema: type: object properties: errorName: type: string enum: - UnauthorizedError content: $ref: '#/components/schemas/type_commons_UnauthorizedErrorMessage' required: - errorName - content '404': description: Error response with status 404 content: application/json: schema: type: object properties: errorName: type: string enum: - EntityNotFoundError content: $ref: '#/components/schemas/type_commons_EntityNotFoundErrorMessage' required: - errorName - content patch: operationId: update summary: Update description: 'Updates the patient refund record matching the provided insurance_refund_id. If updating the refund amount, then the allocations must be appropriately updated as well.' tags: - Insurance Refunds parameters: - name: insurance_refund_id in: path required: true schema: $ref: '#/components/schemas/type_insurance-refunds_v1_InsuranceRefundId' - name: Authorization in: header description: OAuth authentication required: true schema: type: string responses: '200': description: Response with status 200 content: application/json: schema: $ref: '#/components/schemas/type_insurance-refunds_v1_InsuranceRefund' '403': description: Error response with status 403 content: application/json: schema: type: object properties: errorName: type: string enum: - UnauthorizedError content: $ref: '#/components/schemas/type_commons_UnauthorizedErrorMessage' required: - errorName - content '404': description: Error response with status 404 content: application/json: schema: type: object properties: errorName: type: string enum: - EntityNotFoundError content: $ref: '#/components/schemas/type_commons_EntityNotFoundErrorMessage' required: - errorName - content '422': description: Error response with status 422 content: application/json: schema: type: object properties: errorName: type: string enum: - UnprocessableEntityError content: $ref: '#/components/schemas/type_commons_UnprocessableEntityErrorMessage' required: - errorName - content requestBody: content: application/json: schema: type: object properties: refund_timestamp: type: string format: date-time refund_note: $ref: '#/components/schemas/type_financials_NoteUpdate' refund_reason: $ref: '#/components/schemas/type_financials_RefundReasonUpdate' delete: operationId: delete summary: Delete insurance refund description: 'Deletes the insurance refund record matching the provided `insurance_refund_id`. If the matching record''s organization_id does not match the authenticated user''s current organization_id, then a response code of `403` will be returned.' tags: - Insurance Refunds parameters: - name: insurance_refund_id in: path required: true schema: $ref: '#/components/schemas/type_insurance-refunds_v1_InsuranceRefundId' - name: Authorization in: header description: OAuth authentication required: true schema: type: string responses: '200': description: Successful response '403': description: Error response with status 403 content: application/json: schema: type: object properties: errorName: type: string enum: - UnauthorizedError content: $ref: '#/components/schemas/type_commons_UnauthorizedErrorMessage' required: - errorName - content '404': description: Error response with status 404 content: application/json: schema: type: object properties: errorName: type: string enum: - EntityNotFoundError content: $ref: '#/components/schemas/type_commons_EntityNotFoundErrorMessage' required: - errorName - content '422': description: Error response with status 422 content: application/json: schema: type: object properties: errorName: type: string enum: - UnprocessableEntityError content: $ref: '#/components/schemas/type_commons_UnprocessableEntityErrorMessage' required: - errorName - content components: schemas: type_financials_RefundReasonUpdate: oneOf: - type: object properties: type: type: string enum: - set description: 'Discriminator value: set' value: $ref: '#/components/schemas/type_financials_RefundReason' required: - type - value - type: object properties: type: type: string enum: - remove description: 'Discriminator value: remove' required: - type discriminator: propertyName: type title: RefundReasonUpdate type_commons_EncounterExternalId: type: string title: EncounterExternalId type_insurance-refunds_v1_InsuranceRefundSortField: type: string enum: - amount_cents - refund_timestamp - refund_note - refund_reason title: InsuranceRefundSortField type_insurance-refunds_v1_InsuranceRefundsPage: type: object properties: prev_page_token: $ref: '#/components/schemas/type_commons_PageToken' next_page_token: $ref: '#/components/schemas/type_commons_PageToken' items: type: array items: $ref: '#/components/schemas/type_insurance-refunds_v1_InsuranceRefund' required: - items title: InsuranceRefundsPage type_commons_AllocationId: type: string format: uuid title: AllocationId type_commons_Date: type: string description: ISO 8601 date; formatted YYYY-MM-DD (i.e. 2012-02-01) title: Date type_insurance-refunds_v1_InsuranceRefund: type: object properties: insurance_refund_id: $ref: '#/components/schemas/type_insurance-refunds_v1_InsuranceRefundId' payer: $ref: '#/components/schemas/type_payers_v3_Payer' amount_cents: type: integer refund_timestamp: type: string format: date-time refund_note: type: string allocations: type: array items: $ref: '#/components/schemas/type_financials_Allocation' refund_reason: $ref: '#/components/schemas/type_financials_RefundReason' required: - insurance_refund_id - payer - amount_cents - allocations title: InsuranceRefund type_payers_v3_PayerUuid: type: string format: uuid title: PayerUuid type_financials_Allocation: type: object properties: allocation_id: $ref: '#/components/schemas/type_commons_AllocationId' amount_cents: type: integer target: $ref: '#/components/schemas/type_financials_AllocationTarget' earmark: $ref: '#/components/schemas/type_financials_BalanceEarmark' description: The active earmark created by this allocation, if any. Only present when this allocation created an earmark for future auto-allocation and the earmark has not been deleted. allocated_on: type: string format: date-time required: - amount_cents - target title: Allocation type_commons_State: type: string enum: - AA - AE - AP - AL - AK - AS - AZ - AR - CA - CO - CT - DC - DE - FL - FM - GA - GU - HI - ID - IL - IN - IA - KS - KY - LA - ME - MD - MA - MH - MI - MN - MP - MS - MO - MT - NE - NV - NH - NJ - NM - NY - NC - ND - OH - OK - OR - PA - PR - PW - RI - SC - SD - TN - TX - UT - VI - VT - VA - WA - WV - WI - WY title: State type_payers_v3_PayerIdentifier: oneOf: - type: object properties: type: type: string enum: - payer_info description: 'Discriminator value: payer_info' payer_id: $ref: '#/components/schemas/type_payers_v3_PayerId' payer_name: $ref: '#/components/schemas/type_payers_v3_PayerName' required: - type - payer_id - payer_name - type: object properties: type: type: string enum: - payer_uuid description: 'Discriminator value: payer_uuid' value: $ref: '#/components/schemas/type_payers_v3_PayerUuid' required: - type - value discriminator: propertyName: type title: PayerIdentifier type_commons_PatientExternalId: type: string title: PatientExternalId type_payers_v3_PayerName: type: string title: PayerName type_financials_BalanceEarmark: type: object properties: id: type: string format: uuid target: $ref: '#/components/schemas/type_financials_AllocationEarmarkType' description: The target for this earmark (date of service or external encounter ID) amount_earmarked_cents: type: integer description: The amount earmarked in cents for future allocation created_by_allocation_id: $ref: '#/components/schemas/type_commons_AllocationId' description: The ID of the allocation that created this earmark required: - id - target description: 'Represents an active balance earmarking record that holds allocated funds for future auto-allocation. Earmarks are created when funds are allocated but should be held for a specific encounter or date of service. Only active (non-deleted) earmarks are returned.' title: BalanceEarmark type_commons_ProviderId: type: string format: uuid title: ProviderId type_insurance-refunds_v1_InsuranceRefundId: type: string format: uuid title: InsuranceRefundId type_commons_SortDirection: type: string enum: - asc - desc title: SortDirection type_commons_EncounterId: type: string format: uuid title: EncounterId type_commons_StreetAddressLongZip: type: object properties: address1: type: string address2: type: string city: type: string state: $ref: '#/components/schemas/type_commons_State' zip_code: type: string description: 5-digit zip code zip_plus_four_code: type: string description: 4-digit zip add-on code https://en.wikipedia.org/wiki/ZIP_Code#ZIP+4 required: - address1 - city - state - zip_code - zip_plus_four_code title: StreetAddressLongZip type_financials_AllocationCreate: type: object properties: amount_cents: type: integer target: $ref: '#/components/schemas/type_financials_AllocationTargetCreate' earmark: $ref: '#/components/schemas/type_financials_AllocationEarmarkType' description: 'If enabled for your organization, optional earmarking configuration for patient prepayments. When provided on unattributed allocations, holds the payment for future auto-allocation to matching encounters.' required: - amount_cents - target description: 'Allocations are portions of payments that are applied to specific resources, known as targets. Each allocation has and amount, defined in cents, and a target.' title: AllocationCreate type_payers_v3_PayerId: type: string title: PayerId type_financials_AllocationTargetCreate: oneOf: - type: object properties: type: type: string enum: - service_line_by_id description: 'Discriminator value: service_line_by_id' value: $ref: '#/components/schemas/type_commons_ServiceLineId' required: - type - value - type: object properties: type: type: string enum: - claim_by_id description: 'Discriminator value: claim_by_id' value: $ref: '#/components/schemas/type_commons_ClaimId' required: - type - value - type: object properties: type: type: string enum: - claim_by_encounter_external_id description: 'Discriminator value: claim_by_encounter_external_id' value: $ref: '#/components/schemas/type_commons_EncounterExternalId' required: - type - value - type: object properties: type: type: string enum: - billing_provider_by_id description: 'Discriminator value: billing_provider_by_id' value: $ref: '#/components/schemas/type_commons_ProviderId' required: - type - value - type: object properties: type: type: string enum: - appointment_by_id_and_patient_external_id description: 'Discriminator value: appointment_by_id_and_patient_external_id' appointment_id: $ref: '#/components/schemas/type_commons_AppointmentId' patient_external_id: $ref: '#/components/schemas/type_commons_PatientExternalId' required: - type - appointment_id - patient_external_id - type: object properties: type: type: string enum: - unattributed description: 'Discriminator value: unattributed' required: - type discriminator: propertyName: type description: 'Allocation targets describe whether the portion of a payment is being applied toward a specific service line, claim, billing provider, or is unallocated.' title: AllocationTargetCreate type_commons_ServiceLineId: type: string format: uuid title: ServiceLineId type_payers_v3_Payer: type: object properties: payer_uuid: $ref: '#/components/schemas/type_payers_v3_PayerUuid' description: Auto-generated ID set on creation. payer_id: type: string description: The primary national payer ID of the payer. payer_name: type: string description: The primary display name of the payer. availity_payer_name: type: string description: The name of the payer as it appears in Availity. availity_claims_payer_id: type: string description: The ID of the payer as it appears in Availity. availity_eligibility_id: type: string description: The eligibility ID of the payer as it appears in Availity. availity_remittance_payer_id: type: string description: The remittance ID of the payer as it appears in Availity. street_address: $ref: '#/components/schemas/type_commons_StreetAddressLongZip' required: - payer_uuid - payer_id - payer_name title: Payer type_commons_PageToken: type: string title: PageToken type_financials_RefundReason: type: string enum: - OVERCHARGED - ENTERED_IN_ERROR - TRANSFER title: RefundReason type_financials_AllocationEarmarkType: oneOf: - type: object properties: type: type: string enum: - date_of_service description: 'Discriminator value: date_of_service' value: $ref: '#/components/schemas/type_commons_Date' required: - type - value description: Earmark for auto-allocation to an encounter with this specific date of service - type: object properties: type: type: string enum: - external_encounter_id description: 'Discriminator value: external_encounter_id' value: $ref: '#/components/schemas/type_commons_EncounterExternalId' required: - type - value description: Earmark for auto-allocation to an encounter with this specific external ID (more specific than date of service) discriminator: propertyName: type description: 'If enabled for your organization, defines how a patient prepayment allocation should be earmarked for future auto-allocation. Earmarks hold the allocation until a matching encounter is created, then attempt to allocate to that encounter. Only applicable for unattributed allocations.' title: AllocationEarmarkType type_financials_AllocationTarget: oneOf: - type: object properties: type: type: string enum: - service_line description: 'Discriminator value: service_line' service_line_id: $ref: '#/components/schemas/type_commons_ServiceLineId' claim_id: $ref: '#/components/schemas/type_commons_ClaimId' encounter_id: $ref: '#/components/schemas/type_commons_EncounterId' required: - type - service_line_id - claim_id - encounter_id - type: object properties: type: type: string enum: - claim description: 'Discriminator value: claim' claim_id: $ref: '#/components/schemas/type_commons_ClaimId' encounter_id: $ref: '#/components/schemas/type_commons_EncounterId' required: - type - claim_id - encounter_id - type: object properties: type: type: string enum: - billing_provider_id description: 'Discriminator value: billing_provider_id' billing_provider_id: $ref: '#/components/schemas/type_commons_ProviderId' required: - type - billing_provider_id - type: object properties: type: type: string enum: - appointment description: 'Discriminator value: appointment' appointment_id: $ref: '#/components/schemas/type_commons_AppointmentId' patient_external_id: $ref: '#/components/schemas/type_commons_PatientExternalId' required: - type - appointment_id - patient_external_id - type: object properties: type: type: string enum: - unattributed description: 'Discriminator value: unattributed' required: - type discriminator: propertyName: type description: 'Allocation targets describe whether the portion of a payment is being applied toward a specific service line, claim, billing provider, or is unallocated.' title: AllocationTarget type_commons_EntityNotFoundErrorMessage: type: object properties: id: type: string required: - id title: EntityNotFoundErrorMessage type_commons_UnprocessableEntityErrorMessage: type: object properties: message: type: string title: UnprocessableEntityErrorMessage type_financials_NoteUpdate: oneOf: - type: object properties: type: type: string enum: - set description: 'Discriminator value: set' value: type: string required: - type - value - type: object properties: type: type: string enum: - remove description: 'Discriminator value: remove' required: - type discriminator: propertyName: type title: NoteUpdate type_insurance-refunds_v1_InsuranceRefundCreate: type: object properties: payer_identifier: $ref: '#/components/schemas/type_payers_v3_PayerIdentifier' amount_cents: type: integer refund_timestamp: type: string format: date-time refund_note: type: string allocations: type: array items: $ref: '#/components/schemas/type_financials_AllocationCreate' refund_reason: $ref: '#/components/schemas/type_financials_RefundReason' required: - payer_identifier - amount_cents - allocations title: InsuranceRefundCreate type_commons_AppointmentId: type: string title: AppointmentId type_commons_UnauthorizedErrorMessage: type: object properties: message: type: string title: UnauthorizedErrorMessage type_commons_ClaimId: type: string format: uuid title: ClaimId securitySchemes: OAuthScheme: type: http scheme: bearer description: OAuth 2.0 authentication