> ## Documentation Index
> Fetch the complete documentation index at: https://docs.grainledger.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List pledge card import reference data

> Returns valid scan groups, campaigns, active Grain funds, Rock campuses, and the complete mapped and unmapped Rock account catalog. Use exact IDs from this response when routing imports.



## OpenAPI

````yaml /openapi.json get /api/v1/pledge-card-imports/reference-data
openapi: 3.0.3
info:
  title: Grain API
  description: >-
    Church accounting and donor management API. Use an organization API key for
    server automation or OAuth 2.1 (Sign in with Grain) for applications acting
    on behalf of users. OAuth requests require X-Organization-Id; API keys infer
    it.
  version: 1.0.0
servers:
  - url: https://api.grainledger.com
    description: API Server
security:
  - ApiKeyAuth: []
  - GrainOAuth2: []
  - BearerAuth: []
tags:
  - name: Transactions
    description: Bank transactions and reconciliation
  - name: Bills
    description: Vendor bills from creation through payment
  - name: Donors
    description: Donor records and household relationships
  - name: Contributions
    description: Giving records with fund assignment and settlement
  - name: Pledges
    description: Pledge campaigns and fulfillment tracking
  - name: Pledge Card Imports
    description: Submit structured pledge card data for review
  - name: Households
    description: Household groupings and primary contacts
paths:
  /api/v1/pledge-card-imports/reference-data:
    get:
      tags:
        - Pledge Card Imports
      summary: List pledge card import reference data
      description: >-
        Returns valid scan groups, campaigns, active Grain funds, Rock campuses,
        and the complete mapped and unmapped Rock account catalog. Use exact IDs
        from this response when routing imports.
      parameters:
        - $ref: '#/components/parameters/OrganizationId'
      responses:
        '200':
          description: Pledge card import reference data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PledgeCardImportReferenceData'
        '400':
          description: Bad request (missing header or invalid input)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized (missing or invalid Bearer token)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden (no access to organization or action)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict (duplicate record)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  parameters:
    OrganizationId:
      name: X-Organization-Id
      in: header
      required: false
      schema:
        type: string
      description: >-
        Required with OAuth access tokens. Optional with organization API keys;
        if supplied, it must match the key's organization.
      example: cm123abc456def
  schemas:
    PledgeCardImportReferenceData:
      type: object
      required:
        - hasRockIntegration
        - scanGroups
        - campaigns
        - funds
        - rockCampuses
        - rockAccounts
      properties:
        hasRockIntegration:
          type: boolean
          description: Whether the organization has an active Rock RMS integration.
        scanGroups:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              campaignId:
                type: string
                nullable: true
              defaultFundId:
                type: string
              defaultSourceProvider:
                type: string
                nullable: true
              defaultSourceExternalFundId:
                type: string
                nullable: true
        campaigns:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              status:
                type: string
              fundId:
                type: string
              startDate:
                type: string
                format: date-time
              endDate:
                type: string
                format: date-time
                nullable: true
        funds:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              fundType:
                type: string
        rockCampuses:
          type: array
          items:
            type: object
            properties:
              rockCampusId:
                type: string
              grainCampusId:
                type: string
              name:
                type: string
              shortCode:
                type: string
                nullable: true
              isActive:
                type: boolean
        rockAccounts:
          type: array
          items:
            type: object
            properties:
              rockAccountId:
                type: string
              parentRockAccountId:
                type: string
                nullable: true
              name:
                type: string
              path:
                type: string
              isActive:
                type: boolean
              isMapped:
                type: boolean
              mappingState:
                type: string
                enum:
                  - MAPPED
                  - UNMAPPED
                  - INACTIVE_FUND
                  - AMBIGUOUS
                  - NOT_CATALOGED
              grainFundId:
                type: string
                nullable: true
              grainFundName:
                type: string
                nullable: true
    Error:
      type: object
      required:
        - message
      properties:
        message:
          type: string
          example: You do not have access to this organization.
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: grain_live_… or grain_test_…
      description: >-
        Organization API key created in Grain Settings → API. The key determines
        the organization and is limited to its assigned resource scopes. Write
        scopes imply the corresponding read scope.
    GrainOAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://pqnoojlycpbwbatbdgep.supabase.co/auth/v1/oauth/authorize
          tokenUrl: https://pqnoojlycpbwbatbdgep.supabase.co/auth/v1/oauth/token
          scopes:
            openid: OpenID Connect
            email: Email address
            profile: Profile information
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth access token (JWT)

````