---
title: "Get Transactions"
method: GET
path: "/api/external-consolidated-remit/v1/{consolidated_remit_id}/transactions"
tags: ["v1"]
---

# Get Transactions

`GET /api/external-consolidated-remit/v1/{consolidated_remit_id}/transactions`

## Request

- Base URL: `https://pre-api.joincandidhealth.com`
- URL: `https://pre-api.joincandidhealth.com/api/external-consolidated-remit/v1/{consolidated_remit_id}/transactions`
- Auth: HTTP bearer

Paginated, combined list of InsurancePayment and InsuranceAdjustment transactions posted
from a consolidated remit's ERA payments - covering service-payment-driven and
payment-bundle-driven activity of both kinds, and both the posted and voided sides of each
(see is_void). Each item is discriminated by type; fields common to both transaction types
are always present alongside the type-specific ones. One combined, single-cursor
pagination stream rather than two separate endpoints - filter to a single type with
transaction_type if you only care about one.

## Path parameters

- `consolidated_remit_id` string, uuid, required

## Query parameters

- `page_token` string
- `limit` integer
- `era_payment_id` string, uuid
- `transaction_id` string, uuid
- `transaction_type` 'insurance_payment' | 'insurance_adjustment': Whether this transaction is an insurance payment or an insurance adjustment (write-off).

## Response `200`

Response with status 200

- ExternalConsolidatedRemitV1ExternalConsolidatedRemitTransactionPage: No total_count is returned for this endpoint. prev_page_token/next_page_token are only null when there is genuinely no more data in that direction.
  - `prev_page_token` string
  - `next_page_token` string
  - `items` ExternalConsolidatedRemitV1ExternalConsolidatedRemitTransaction[], required
    - union: A single financial transaction posted from a consolidated remit's ERA payments - either an InsurancePayment or an InsuranceAdjustment. Fields common to both (see TransactionCommonFields) are always present alongside whichever type-specific fields apply, so callers who only care about the common shape never need to branch on type.
      - object
        - `type` 'insurance_payment', required: Discriminator value: insurance_payment
        - `id` string, uuid, required
        - `remit_id` string, uuid
        - `consolidated_remit_id` string, uuid
        - `era_payer_name` string: Null under the same conditions as remit_id (see above). Also returned nested under EraPayer on the sibling era-payments endpoint.
        - `target_type` 'ORGANIZATION' | 'PROVIDER' | 'EXTERNAL_PROVIDER' | 'CLAIM' | 'SERVICE_LINE' | 'APPOINTMENT', required: Where the money landed. organization_service_facility_id/_external_id only ever resolve for CLAIM and SERVICE_LINE - they're always null for ORGANIZATION, PROVIDER, and EXTERNAL_PROVIDER, which have no associated service facility. Transactions targeting an appointment, or a provider without an NPI, are omitted, matching the insurance AR event feed.
        - `target_id` string, required: Identifies the target, per target_type - the same value as target_id on the corresponding insurance AR event: - ORGANIZATION: the organization id - PROVIDER / EXTERNAL_PROVIDER: the provider's NPI - CLAIM: the claim id - SERVICE_LINE: the service line id
        - `organization_service_facility_id` string, uuid
        - `organization_service_facility_external_id` string: Only ever resolves for target_type in (CLAIM, SERVICE_LINE).
        - `amount_cents` integer, required
        - `created_at` string, date-time, required: When this specific row (posting or void) was created - not to be confused with posted_at/voided_at below, which additionally carry who did it.
        - `is_void` boolean, required: True if this transaction is itself a voiding/reversal; false if it's an original posting. A reversed original is returned as two separate items - this one with is_void=false, plus a second item elsewhere in the page with is_void=true - rather than a single item with a "reversed" flag.
        - `posted_at` string, date-time: Set iff is_void=false.
        - `posted_by` string: Set iff is_void=false. See each concrete transaction type for whether this can genuinely be a real user id or is always the system account.
        - `voided_at` string, date-time: Set iff is_void=true.
        - `voided_by` string: Set iff is_void=true. See each concrete transaction type for whether this can genuinely be a real user id or is always null.
        - `source` union, required: Every transaction in scope here originates either directly from an ERA service payment (the common case) or from a provider-level adjustment (PLB) payment bundle.
          - object
            - `type` 'era_service_payment', required: Discriminator value: era_service_payment
            - `era_service_payment` ErasEraServicePayment, required
              - …
            - `service_line_id` string, uuid
            - `era_claim_payment` ExternalConsolidatedRemitV1EraClaimPaymentSummary, required: EraClaimPayment fields, minus era_payment (redundant with the remit_id already on this transaction) and service_payments (redundant with the single related service payment already returned alongside this).
              - …
          - object
            - `type` 'payment_bundle', required: Discriminator value: payment_bundle
            - `payment_bundle` ExternalConsolidatedRemitV1PaymentBundle, required
              - …
        - `provider_adjustment_reason_code` string: Only ever set for payment-bundle-sourced transactions (source.type = payment_bundle).
        - `voids_transaction_id` string, uuid
      - object
        - `type` 'insurance_adjustment', required: Discriminator value: insurance_adjustment
        - `id` string, uuid, required
        - `remit_id` string, uuid
        - `consolidated_remit_id` string, uuid
        - `era_payer_name` string: Null under the same conditions as remit_id (see above). Also returned nested under EraPayer on the sibling era-payments endpoint.
        - `target_type` 'ORGANIZATION' | 'PROVIDER' | 'EXTERNAL_PROVIDER' | 'CLAIM' | 'SERVICE_LINE' | 'APPOINTMENT', required: Where the money landed. organization_service_facility_id/_external_id only ever resolve for CLAIM and SERVICE_LINE - they're always null for ORGANIZATION, PROVIDER, and EXTERNAL_PROVIDER, which have no associated service facility. Transactions targeting an appointment, or a provider without an NPI, are omitted, matching the insurance AR event feed.
        - `target_id` string, required: Identifies the target, per target_type - the same value as target_id on the corresponding insurance AR event: - ORGANIZATION: the organization id - PROVIDER / EXTERNAL_PROVIDER: the provider's NPI - CLAIM: the claim id - SERVICE_LINE: the service line id
        - `organization_service_facility_id` string, uuid
        - `organization_service_facility_external_id` string: Only ever resolves for target_type in (CLAIM, SERVICE_LINE).
        - `amount_cents` integer, required
        - `created_at` string, date-time, required: When this specific row (posting or void) was created - not to be confused with posted_at/voided_at below, which additionally carry who did it.
        - `is_void` boolean, required: True if this transaction is itself a voiding/reversal; false if it's an original posting. A reversed original is returned as two separate items - this one with is_void=false, plus a second item elsewhere in the page with is_void=true - rather than a single item with a "reversed" flag.
        - `posted_at` string, date-time: Set iff is_void=false.
        - `posted_by` string: Set iff is_void=false. See each concrete transaction type for whether this can genuinely be a real user id or is always the system account.
        - `voided_at` string, date-time: Set iff is_void=true.
        - `voided_by` string: Set iff is_void=true. See each concrete transaction type for whether this can genuinely be a real user id or is always null.
        - `source` union, required: Every transaction in scope here originates either directly from an ERA service payment (the common case) or from a provider-level adjustment (PLB) payment bundle.
          - object
            - `type` 'era_service_payment', required: Discriminator value: era_service_payment
            - `era_service_payment` ErasEraServicePayment, required
              - …
            - `service_line_id` string, uuid
            - `era_claim_payment` ExternalConsolidatedRemitV1EraClaimPaymentSummary, required: EraClaimPayment fields, minus era_payment (redundant with the remit_id already on this transaction) and service_payments (redundant with the single related service payment already returned alongside this).
              - …
          - object
            - `type` 'payment_bundle', required: Discriminator value: payment_bundle
            - `payment_bundle` ExternalConsolidatedRemitV1PaymentBundle, required
              - …
        - `adjustment_source` 'MANUAL' | 'ERA' | 'ERA_RULE' | 'PAYMENT_BUNDLE', required: MANUAL is never returned by this endpoint - it isn't ERA-attributed, so it has no remit to scope this endpoint by.
        - `adjustment_reason` 'SMALL_BALANCE' | 'NO_AUTHORIZATION_OR_REFERRAL' | 'TIMELY_FILING' | 'STALE_DATE' | 'TIMELY_FILING_LATE_ENCOUNTER' | 'CREDENTIALING_OR_CONTRACTING' | 'NON_COVERED_MAX_BENEFIT' | 'NOT_MEDICALLY_NECESSARY' | 'BUNDLED_OR_INCLUSIVE' | 'UNCOLLECTIBLE_OR_NON_BILLABLE' | 'EFFORTS_EXHAUSTED' | 'ADMINISTRATIVE_WRITE_OFF' | 'CASE_RATE_OR_CAPITATED' | 'CHARITY_OR_FINANCIAL_ASSISTANCE' | 'PATIENT_EXPERIENCE_OR_SERVICE_RECOVERY' | 'OON_COURTESY_ADJUSTMENT' | 'PROMPT_PAY_DISCOUNT' | 'BAD_DEBT' | 'COLLECTION_AGENCY' | 'OTHER' | 'UNKNOWN' | 'CONTRACTUAL_ADJUSTMENT' | 'DECEASED' | 'BANKRUPTCY' | 'PRIMARY_PAID_MAX_BENEFITS' | 'INTEREST', required: The reason this adjustment was made.
        - `carc` string: The single X12 CARC (Claim Adjustment Reason Code) that best explains this adjustment (lowest-position/highest-priority tie-break when more than one applies). Null only when this adjustment has no ERA link at all (a manual/non-ERA write-off) - see adjustment_source. For the full underlying set rather than the single flattened value, see adjustment_details.
        - `adjustment_details` ErasEraAdjustment[], required: The full CARC/RARC-level ERA adjustment detail(s) this transaction was created from, if any. carc above is the flattened single-value equivalent of the first (lowest-position) entry here.
          - `adjustment_group_code` 'CO' | 'CR' | 'DE' | 'MA' | 'OA' | 'PI' | 'PR' | 'RR' | 'NC' | 'UNKNOWN', required
          - `adjustment_reason_code` '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '16' | '18' | '19' | '20' | '21' | '22' | '23' | '24' | '26' | '27' | '29' | '31' | '32' | '33' | '34' | '35' | '39' | '40' | '44' | '45' | '49' | '50' | '51' | '53' | '54' | '55' | '56' | '58' | '59' | '60' | '61' | '66' | '69' | '70' | '74' | '75' | '76' | '78' | '85' | '89' | '90' | '91' | '94' | '95' | '96' | '97' | '100' | '101' | '102' | '103' | '104' | '105' | '106' | '107' | '108' | '109' | '110' | '111' | '112' | '114' | '115' | '116' | '117' | '118' | '119' | '121' | '122' | '125' | '128' | '129' | '130' | '131' | '132' | '133' | '134' | '135' | '136' | '137' | '139' | '140' | '142' | '143' | '144' | '146' | '147' | '148' | '149' | '150' | '151' | '152' | '153' | '154' | '155' | '157' | '158' | '159' | '160' | '161' | '163' | '164' | '166' | '167' | '169' | '170' | '171' | '172' | '173' | '174' | '175' | '176' | '177' | '178' | '179' | '180' | '181' | '182' | '183' | '184' | '185' | '186' | '187' | '188' | '189' | '190' | '192' | '193' | '194' | '195' | '197' | '198' | '199' | '200' | '201' | '202' | '203' | '204' | '205' | '206' | '207' | '208' | '209' | '210' | '211' | '212' | '213' | '215' | '216' | '219' | '222' | '223' | '224' | '225' | '226' | '227' | '228' | '229' | '231' | '232' | '233' | '234' | '235' | '236' | '237' | '238' | '239' | '240' | '241' | '242' | '243' | '245' | '246' | '247' | '248' | '249' | '250' | '251' | '252' | '253' | '254' | '256' | '257' | '258' | '259' | '260' | '261' | '262' | '263' | '264' | '265' | '266' | '267' | '268' | '269' | '270' | '271' | '272' | '273' | '274' | '275' | '276' | '277' | '278' | '279' | '280' | '281' | '282' | '283' | '284' | '285' | '286' | '287' | '288' | '289' | '290' | '291' | '292' | '293' | '294' | '295' | '296' | '297' | '298' | '299' | '300' | '301' | '302' | '303' | '304' | '305' | 'A0' | 'A1' | 'A5' | 'A6' | 'A8' | 'B1' | 'B4' | 'B7' | 'B8' | 'B9' | 'B10' | 'B11' | 'B12' | 'B13' | 'B14' | 'B15' | 'B16' | 'B20' | 'B22' | 'B23' | 'P1' | 'P2' | 'P3' | 'P4' | 'P5' | 'P6' | 'P7' | 'P8' | 'P9' | 'P10' | 'P11' | 'P12' | 'P13' | 'P14' | 'P15' | 'P16' | 'P17' | 'P18' | 'P19' | 'P20' | 'P21' | 'P22' | 'P23' | 'P24' | 'P25' | 'P26' | 'P27' | 'P28' | 'P29' | 'P30' | 'P31' | 'P32' | '15' | '17' | '25' | '28' | '30' | '36' | '37' | '38' | '41' | '42' | '43' | '46' | '47' | '48' | '52' | '57' | '62' | '63' | '64' | '65' | '67' | '68' | '71' | '72' | '73' | '77' | '79' | '80' | '81' | '82' | '83' | '84' | '86' | '87' | '88' | '92' | '93' | '98' | '99' | '113' | '120' | '123' | '124' | '126' | '127' | '138' | '141' | '145' | '156' | '162' | '165' | '168' | '191' | '196' | '214' | '217' | '218' | '220' | '221' | '230' | '244' | '255' | 'A2' | 'A3' | 'A4' | 'A7' | 'B2' | 'B3' | 'B5' | 'B6' | 'B17' | 'B18' | 'B19' | 'B21' | 'D1' | 'D2' | 'D3' | 'D4' | 'D5' | 'D6' | 'D7' | 'D8' | 'D9' | 'D10' | 'D11' | 'D12' | 'D14' | 'D15' | 'D16' | 'D17' | 'D18' | 'D19' | 'D20' | 'D21' | 'D22' | 'D23' | 'W1' | 'W2' | 'W3' | 'W4' | 'W5' | 'W6' | 'W7' | 'W8' | 'W9' | 'Y1' | 'Y2' | 'Y3' | 'UNKNOWN', required
          - `adjustment_amount_cents` integer
          - `adjustment_quantity` integer
        - `reverses_adjustment_id` string, uuid
        - `reverted_by_adjustment_id` string, uuid

## Other responses

- `403`: Error response with status 403
- `404`: Error response with status 404
- `422`: Error response with status 422

## Changes

- **2026-10-29** `d8b0a61873e2`: 1 breaking, 1 info
  - added `subschema #1, subschema #2` to the `items/items/` response property `oneOf` list for the response status `200`
  - removed `subschema #1, subschema #2` from the `items/items/` response property `oneOf` list for the response status `200`
- **2026-10-15** `97de8fddb088`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/joincandidhealth/apis/api-reference/changes/api/external-consolidated-remit/v1/:consolidated_remit_id/transactions/get.md)

---

[API](https://skmtc.dev/joincandidhealth/apis/api-reference.md) - [All operations](https://skmtc.dev/joincandidhealth/apis/api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/joincandidhealth/apis/api-reference/revisions/d8b0a61873e2?raw)
