{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
Pledge Card Imports
Import pledge card data for review
Creates a pledge card review group from structured data. Rows enter the same donor matching and review workflow as scanned cards; this request does not create pledges.
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
{
"code": "forbidden",
"message": "You do not have access to this organization.",
"error": "You do not have access to this organization.",
"details": {
"fields": [
{
"field": "amount",
"code": "invalid_type"
}
]
}
}
Authorizations
ApiKeyAuthGrainOAuth2BearerAuth
Authorization
string
header
required
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.
Headers
X-Organization-Id
string
Required with OAuth access tokens for resource requests. Omit only for GET /api/v1/organizations. Optional with organization API keys; if supplied with an API key, it must match the key's organization.
Idempotency-Key
string
required
A unique key for this import request. Retrying the same body with the same key returns the original import without creating duplicate rows.
Required string length: 1 - 255
Body
application/json
cards
object[]
required
Required array length: 1 - 500 elements
Hide child attributes
cards.externalId
string
Maximum string length: 128
Example:
"card-1001"
cards.rockPersonId
string
Current Rock Person.Id. Exact identity routing bypasses fuzzy donor matching.
Maximum string length: 128
cards.donorFirstName
string
Maximum string length: 100
Example:
"Sarah"
cards.donorLastName
string
Maximum string length: 100
Example:
"Johnson"
cards.donorEmail
string<email>
Maximum string length: 255
Example:
"sarah@example.org"
cards.donorPhone
string
Maximum string length: 50
Example:
"+1 615 555 0100"
cards.donorAddress
string
Maximum string length: 255
Example:
"100 Church Street"
cards.donorAddress2
string
Second street-address line. Grain joins both lines with one space for donor matching while preserving both in the import artifact.
Maximum string length: 255
Example:
"Suite 200"
cards.donorCity
string
Maximum string length: 100
Example:
"Nashville"
cards.donorState
string
Maximum string length: 100
Example:
"TN"
cards.donorZip
string
Maximum string length: 20
Example:
"37201"
cards.amount
number
Required range: x >= 0
Example:
12000
cards.frequency
enum<string>
Available options:
ONE_TIME,
WEEKLY,
BIWEEKLY,
MONTHLY,
QUARTERLY,
ANNUALLY
Example:
"MONTHLY"
cards.fundId
string
Optional per-card Grain fund ID. Do not send with rockAccountId.
cards.rockAccountId
string
Exact Rock financial account ID for this card. Do not send with fundId.
Maximum string length: 128
cards.fundName
string
Informational label shown during review. It is never used for fund routing or fallback.
Maximum string length: 200
cards.campusId
string
deprecated
Legacy internal Grain campus ID. Do not send with rockCampusId.
cards.rockCampusId
string
Exact Rock campus ID resolved through the integration campus catalog. Campus does not select a financial account.
Maximum string length: 128
cards.campusName
string
Legacy campus label used by the existing review matcher. Use rockCampusId for exact routing.
Maximum string length: 200
cards.startDate
string<date>
Example:
"2027-01-01"
cards.endDate
string<date>
Example:
"2027-12-31"
cards.notes
string
Maximum string length: 2000
scanGroupId
string
Existing pledge card scan group ID. When set, cards are added as a new batch in that group. campaignId is inherited; a supplied request default fund or Rock account overrides the group's default.
name
string
Required when scanGroupId is omitted. Becomes the new scan group name.
Required string length: 1 - 100
Example:
"2027 annual pledge cards"
defaultFundId
string
Grain fund used when a card has no override. Required when scanGroupId is omitted unless defaultRockAccountId is supplied.
defaultRockAccountId
string
Exact Rock financial account used when a card has no override. Do not send with defaultFundId.
campaignId
string
Optional Grain pledge campaign ID. Ignored when scanGroupId is set; the group's campaign is used instead.
pledgeAudience
enum<string>
default:ADULT
Available options:
ADULT,
STUDENT
Response
Pledge card data imported for review
scanGroupId
string
required
batchId
string
required
reviewUrl
string<uri>
required
idempotentReplay
boolean
required
sourceFileAttachmentId
string
required
Secured audit artifact ID; not a scanned card attachment
cardsImported
integer
required
Required range: x >= 0
cardsSkipped
integer
required
Required range: x >= 0
cardsWithIssues
integer
required
Required range: x >= 0
duplicateCards
integer
required
Required range: x >= 0
items
object[]
required
Hide child attributes
items.itemId
string
items.externalId
string | null
items.rockPersonId
string | null
items.rockAccountId
string | null
items.sourceIdentityStatus
enum<string> | null
Available options:
PENDING,
MATCHED,
CONFLICT,
NOT_FOUND
items.status
enum<string>
Available options:
EXTRACTED,
SKIPPED
items.issue
string | null
items.duplicateOfId
string | null
Last modified on October 10, 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/schema.json","name":"Grain API","description":"Developer documentation for the Grain church accounting and donor management API.","colors":{"primary":"#03440c","light":"#4A806C","dark":"#3D6B5E"},"logo":{"light":"https://mintcdn.com/grainledger/Jxl-ZANCEY95i3PU/images/grain-wordmark-on-light.svg?fit=max\u0026auto=format\u0026n=Jxl-ZANCEY95i3PU\u0026q=85\u0026s=47f8188964661273a33f4901a311ba81","dark":"https://mintcdn.com/grainledger/Jxl-ZANCEY95i3PU/images/grain-wordmark-on-dark.svg?fit=max\u0026auto=format\u0026n=Jxl-ZANCEY95i3PU\u0026q=85\u0026s=b4689fb4f3c2b42f5e3e251f39b0bf76"},"favicon":"https://mintcdn.com/grainledger/Jxl-ZANCEY95i3PU/images/grain-logomark.svg?fit=max\u0026auto=format\u0026n=Jxl-ZANCEY95i3PU\u0026q=85\u0026s=e53c14afdfadd5aa05ef57a0c8f68985","api":{"openapi":["openapi.json"],"params":{"expanded":"all"},"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","javascript","python"],"prefill":true,"autogenerate":true},"url":"full"},"search":{"prompt":"Search Grain API docs..."},"seo":{"metatags":{"og:site_name":"Grain API Docs","og:image":"https://grainledger.com/og-image.jpg?v=wheat-field-20260908","og:image:width":"1200","og:image:height":"630","twitter:card":"summary_large_image","twitter:image":"https://grainledger.com/og-image.jpg?v=wheat-field-20260908"},"indexing":"navigable"},"fonts":{"heading":{"family":"DM Sans","weight":600},"body":{"family":"DM Sans","weight":400}},"styling":{"codeblocks":{"theme":{"light":"github-light","dark":"github-dark"}},"latex":false},"integrations":{"posthog":{"apiKey":"phc_nev4txvApsir3qS4dQB5T7JvI46Zl0ZXSQHXpgo6IhD","apiHost":"https://us.i.posthog.com","sessionRecording":false}},"metadata":{"timestamp":true},"navigation":{"global":{"anchors":[{"anchor":"Open app","icon":"https://mintlify.s3.us-west-1.amazonaws.com/grainledger/images/grain-logomark.svg","href":"https://app.grainledger.com"},{"anchor":"Support","icon":"circle-question","href":"https://grainledger.com/support"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"grainledger","hasAudioNarration":false,"actualSubdomain":"grainledger","customDomains":["docs.grainledger.com"],"gitSource":{"type":"github","owner":"grain-ledger","repo":"grain","deployBranch":"main","contentDirectory":"api-docs","isPrivate":true,"mountPath":"","label":"","_id":"6af23ed0ed34cff0851c7334"},"entitlements":{},"buildId":"6aca5e6adf7fb4ef9ef2ce28","clientVersion":"0.0.4138","searchFilterCounts":[{"language":"default","tag":"API Reference","count":59},{"language":"default","tag":"Transactions","count":14},{"language":"default","tag":"Getting Started","count":10},{"language":"default","tag":"Households","count":8},{"language":"default","tag":"Core concepts","count":7},{"language":"default","tag":"Bills","count":5},{"language":"default","tag":"Contributions","count":5},{"language":"default","tag":"Donors","count":5},{"language":"default","tag":"Giving Batches","count":5},{"language":"default","tag":"Pledges","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api-reference/pledge-card-imports/import-pledge-card-data-for-review","slug":"/api-reference/pledge-card-imports/import-pledge-card-data-for-review","pageMetadata":{"title":"Import pledge card data for review","description":"Creates a pledge card review group from structured data. Rows enter the same donor matching and review workflow as scanned cards; this request does not create pledges.","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/pledge-card-imports","href":"/api-reference/pledge-card-imports/import-pledge-card-data-for-review","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Creates a pledge card review group from structured data. Rows enter the same donor matching and review workflow as scanned cards; this request does not create pledges.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"github-light","dark":"github-dark"}},"config":{},"pageMetadata":{"title":"Import pledge card data for review","description":"Creates a pledge card review group from structured data. Rows enter the same donor matching and review workflow as scanned cards; this request does not create pledges.","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/pledge-card-imports","href":"/api-reference/pledge-card-imports/import-pledge-card-data-for-review","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Pledge Card Imports"],"summary":"Import pledge card data for review","description":"Creates a pledge card review group from structured data. Rows enter the same donor matching and review workflow as scanned cards; this request does not create pledges.","parameters":["0cc49759-082b-42a6-9d9d-13c034be4470","532133de-f2f2-4618-9f26-16fcb59ed640"],"requestBody":"b573c23f-7440-4ba8-8b9b-26cbf1ffed98","responses":{"201":"addc1ee3-e93d-433b-9fcf-343c3d786797","400":"a0feb378-99a0-4d46-b078-12aeeb34ab3a","401":"d5f71338-42a3-45db-96b7-d1f79b6fe371","403":"95e20587-35b9-40ec-a41b-32a83dd0b593","404":"ae7c19a9-b5d0-400f-9276-f92234fb2b6b","409":"7f98eb90-3738-49f8-830e-96aa55cc8cb2","413":"6c75a9c5-f820-40ef-9186-4853464b31ea","422":"5cf65269-2ab2-4710-b564-1812a1327345","429":"c25fb582-b204-4806-8a12-0dac74bdc4a2","500":"69e0e7c6-56c3-4048-819a-37994f8e41d2"},"method":"post","type":"path","servers":["f6713c7b-79dc-4516-9fa4-b80a2e5b565a"],"security":["b13aa5d4-77e1-4461-944f-0c8c2480e9b6","0a4ca29a-fd5e-40fa-afd3-39cd795826a4","5d65a984-a73a-4263-a6ec-edd6bb054d60"],"path":"/api/v1/pledge-card-imports","baseUrlOptions":["https://api.grainledger.com"],"title":"Import pledge card data for review","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.cards.items.0.externalId":"882145","body.cards.items.0.rockPersonId":"34567","body.cards.items.0.donorFirstName":"Sarah","body.cards.items.0.donorLastName":"Johnson","body.cards.items.0.donorEmail":"sarah@example.org","body.cards.items.0.amount":12000,"body.cards.items.0.frequency":"MONTHLY","body.cards.items.0.rockAccountId":"204","body.cards.items.0.rockCampusId":"3","body.cards.items.0.startDate":"2027-01-01","body.cards.items.0.endDate":"2027-12-31","body.scanGroupId":"CMRC90","body.defaultRockAccountId":"101"}],"urlDisplay":"full"},"dependencies":{"parameters":{"0cc49759-082b-42a6-9d9d-13c034be4470":{"name":"X-Organization-Id","in":"header","required":false,"schema":{"type":"string","isRequired":false,"description":"Required with OAuth access tokens for resource requests. Omit only for GET /api/v1/organizations. Optional with organization API keys; if supplied with an API key, it must match the key's organization.","uniqueKey":"","typeLabel":"string"},"description":"Required with OAuth access tokens for resource requests. Omit only for GET /api/v1/organizations. Optional with organization API keys; if supplied with an API key, it must match the key's organization.","example":"cm123abc456def"},"532133de-f2f2-4618-9f26-16fcb59ed640":{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":255,"isRequired":true,"description":"A unique key for this import request. Retrying the same body with the same key returns the original import without creating duplicate rows.","uniqueKey":"","typeLabel":"string"},"description":"A unique key for this import request. Retrying the same body with the same key returns the original import without creating duplicate rows.","example":"pledge-import-2027-annual-001"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["cards"],"properties":{"cards":{"type":"array","minItems":1,"maxItems":500,"items":{"type":"object","properties":{"externalId":{"type":"string","maxLength":128,"example":"card-1001","uniqueKey":"cards.items.[INDEX].externalId","typeLabel":"string"},"rockPersonId":{"type":"string","maxLength":128,"description":"Current Rock Person.Id. Exact identity routing bypasses fuzzy donor matching.","uniqueKey":"cards.items.[INDEX].rockPersonId","typeLabel":"string"},"donorFirstName":{"type":"string","maxLength":100,"example":"Sarah","uniqueKey":"cards.items.[INDEX].donorFirstName","typeLabel":"string"},"donorLastName":{"type":"string","maxLength":100,"example":"Johnson","uniqueKey":"cards.items.[INDEX].donorLastName","typeLabel":"string"},"donorEmail":{"type":"string","format":"email","maxLength":255,"example":"sarah@example.org","uniqueKey":"cards.items.[INDEX].donorEmail","typeLabel":"string\u003cemail>"},"donorPhone":{"type":"string","maxLength":50,"example":"+1 615 555 0100","uniqueKey":"cards.items.[INDEX].donorPhone","typeLabel":"string"},"donorAddress":{"type":"string","maxLength":255,"example":"100 Church Street","uniqueKey":"cards.items.[INDEX].donorAddress","typeLabel":"string"},"donorAddress2":{"type":"string","maxLength":255,"example":"Suite 200","description":"Second street-address line. Grain joins both lines with one space for donor matching while preserving both in the import artifact.","uniqueKey":"cards.items.[INDEX].donorAddress2","typeLabel":"string"},"donorCity":{"type":"string","maxLength":100,"example":"Nashville","uniqueKey":"cards.items.[INDEX].donorCity","typeLabel":"string"},"donorState":{"type":"string","maxLength":100,"example":"TN","uniqueKey":"cards.items.[INDEX].donorState","typeLabel":"string"},"donorZip":{"type":"string","maxLength":20,"example":"37201","uniqueKey":"cards.items.[INDEX].donorZip","typeLabel":"string"},"amount":{"type":"number","minimum":0,"example":12000,"uniqueKey":"cards.items.[INDEX].amount","typeLabel":"number"},"frequency":{"type":"string","enum":["ONE_TIME","WEEKLY","BIWEEKLY","MONTHLY","QUARTERLY","ANNUALLY"],"example":"MONTHLY","uniqueKey":"cards.items.[INDEX].frequency","typeLabel":"enum\u003cstring>"},"fundId":{"type":"string","description":"Optional per-card Grain fund ID. Do not send with rockAccountId.","uniqueKey":"cards.items.[INDEX].fundId","typeLabel":"string"},"rockAccountId":{"type":"string","maxLength":128,"description":"Exact Rock financial account ID for this card. Do not send with fundId.","uniqueKey":"cards.items.[INDEX].rockAccountId","typeLabel":"string"},"fundName":{"type":"string","maxLength":200,"description":"Informational label shown during review. It is never used for fund routing or fallback.","uniqueKey":"cards.items.[INDEX].fundName","typeLabel":"string"},"campusId":{"type":"string","deprecated":true,"description":"Legacy internal Grain campus ID. Do not send with rockCampusId.","uniqueKey":"cards.items.[INDEX].campusId","typeLabel":"string"},"rockCampusId":{"type":"string","maxLength":128,"description":"Exact Rock campus ID resolved through the integration campus catalog. Campus does not select a financial account.","uniqueKey":"cards.items.[INDEX].rockCampusId","typeLabel":"string"},"campusName":{"type":"string","maxLength":200,"description":"Legacy campus label used by the existing review matcher. Use rockCampusId for exact routing.","uniqueKey":"cards.items.[INDEX].campusName","typeLabel":"string"},"startDate":{"type":"string","format":"date","example":"2027-01-01","uniqueKey":"cards.items.[INDEX].startDate","typeLabel":"string\u003cdate>"},"endDate":{"type":"string","format":"date","example":"2027-12-31","uniqueKey":"cards.items.[INDEX].endDate","typeLabel":"string\u003cdate>"},"notes":{"type":"string","maxLength":2000,"uniqueKey":"cards.items.[INDEX].notes","typeLabel":"string"}},"uniqueKey":"cards.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"cards","typeLabel":"object[]"},"scanGroupId":{"type":"string","description":"Existing pledge card scan group ID. When set, cards are added as a new batch in that group. campaignId is inherited; a supplied request default fund or Rock account overrides the group's default.","uniqueKey":"scanGroupId","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":100,"example":"2027 annual pledge cards","description":"Required when scanGroupId is omitted. Becomes the new scan group name.","uniqueKey":"name","typeLabel":"string"},"defaultFundId":{"type":"string","description":"Grain fund used when a card has no override. Required when scanGroupId is omitted unless defaultRockAccountId is supplied.","uniqueKey":"defaultFundId","typeLabel":"string"},"defaultRockAccountId":{"type":"string","description":"Exact Rock financial account used when a card has no override. Do not send with defaultFundId.","uniqueKey":"defaultRockAccountId","typeLabel":"string"},"campaignId":{"type":"string","description":"Optional Grain pledge campaign ID. Ignored when scanGroupId is set; the group's campaign is used instead.","uniqueKey":"campaignId","typeLabel":"string"},"pledgeAudience":{"type":"string","enum":["ADULT","STUDENT"],"default":"ADULT","uniqueKey":"pledgeAudience","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"annualCampaign":{"title":"annualCampaign","value":{"scanGroupId":"CMRC90","defaultRockAccountId":"101","cards":[{"externalId":"882145","rockPersonId":"34567","rockAccountId":"204","rockCampusId":"3","donorFirstName":"Sarah","donorLastName":"Johnson","donorEmail":"sarah@example.org","amount":12000,"frequency":"MONTHLY","startDate":"2027-01-01","endDate":"2027-12-31"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"addc1ee3-e93d-433b-9fcf-343c3d786797":{"headers":{"X-Request-Id":{"description":"Server-generated ID linking this request to API activity and audit records.","schema":{"type":"string","format":"uuid"}}},"description":"Pledge card data imported for review","content":{"application/json":{"schema":{"type":"object","required":["scanGroupId","batchId","reviewUrl","idempotentReplay","sourceFileAttachmentId","cardsImported","cardsSkipped","cardsWithIssues","duplicateCards","items"],"properties":{"scanGroupId":{"type":"string","isRequired":true,"uniqueKey":"scanGroupId","typeLabel":"string"},"batchId":{"type":"string","isRequired":true,"uniqueKey":"batchId","typeLabel":"string"},"reviewUrl":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"reviewUrl","typeLabel":"string\u003curi>"},"idempotentReplay":{"type":"boolean","isRequired":true,"uniqueKey":"idempotentReplay","typeLabel":"boolean"},"sourceFileAttachmentId":{"type":"string","description":"Secured audit artifact ID; not a scanned card attachment","isRequired":true,"uniqueKey":"sourceFileAttachmentId","typeLabel":"string"},"cardsImported":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"cardsImported","typeLabel":"integer"},"cardsSkipped":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"cardsSkipped","typeLabel":"integer"},"cardsWithIssues":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"cardsWithIssues","typeLabel":"integer"},"duplicateCards":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"duplicateCards","typeLabel":"integer"},"items":{"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","uniqueKey":"\\items.items.[INDEX].itemId","typeLabel":"string"},"externalId":{"oneOf":[{"type":"string","uniqueKey":"\\items.items.[INDEX].externalId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"\\items.items.[INDEX].externalId.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].externalId","typeLabel":"string | null"},"rockPersonId":{"oneOf":[{"type":"string","uniqueKey":"\\items.items.[INDEX].rockPersonId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"\\items.items.[INDEX].rockPersonId.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].rockPersonId","typeLabel":"string | null"},"rockAccountId":{"oneOf":[{"type":"string","uniqueKey":"\\items.items.[INDEX].rockAccountId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"\\items.items.[INDEX].rockAccountId.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].rockAccountId","typeLabel":"string | null"},"sourceIdentityStatus":{"oneOf":[{"type":"string","enum":["PENDING","MATCHED","CONFLICT","NOT_FOUND"],"uniqueKey":"\\items.items.[INDEX].sourceIdentityStatus.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["PENDING","MATCHED","CONFLICT","NOT_FOUND"],"uniqueKey":"\\items.items.[INDEX].sourceIdentityStatus.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].sourceIdentityStatus","typeLabel":"enum\u003cstring> | null"},"status":{"type":"string","enum":["EXTRACTED","SKIPPED"],"uniqueKey":"\\items.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"issue":{"oneOf":[{"type":"string","uniqueKey":"\\items.items.[INDEX].issue.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"\\items.items.[INDEX].issue.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].issue","typeLabel":"string | null"},"duplicateOfId":{"oneOf":[{"type":"string","uniqueKey":"\\items.items.[INDEX].duplicateOfId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"\\items.items.[INDEX].duplicateOfId.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].duplicateOfId","typeLabel":"string | null"}},"uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"scanGroupId":"\u003cstring>","batchId":"\u003cstring>","reviewUrl":"\u003cstring>","idempotentReplay":true,"sourceFileAttachmentId":"\u003cstring>","cardsImported":1,"cardsSkipped":1,"cardsWithIssues":1,"duplicateCards":1,"items":[{"itemId":"\u003cstring>","externalId":"\u003cstring>","rockPersonId":"\u003cstring>","rockAccountId":"\u003cstring>","sourceIdentityStatus":"PENDING","status":"EXTRACTED","issue":"\u003cstring>","duplicateOfId":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"a0feb378-99a0-4d46-b078-12aeeb34ab3a":{"headers":{"X-Request-Id":{"description":"Server-generated ID linking this request to API activity and audit records.","schema":{"type":"string","format":"uuid"}}},"description":"Bad request (missing header or invalid input)","content":{"application/json":{"schema":{"type":"object","description":"Every error response is valid JSON with this shape. The HTTP status code carries the outcome; `code` is a stable machine-readable form of it.","required":["code","message"],"properties":{"code":{"type":"string","enum":["bad_request","unauthorized","forbidden","not_found","conflict","unprocessable_entity","payload_too_large","rate_limited","internal_server_error"],"example":"forbidden","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"You do not have access to this organization.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","deprecated":true,"description":"Deprecated alias for `message`. Read `message` instead.","example":"You do not have access to this organization.","uniqueKey":"error","typeLabel":"string"},"details":{"type":"object","description":"Present for schema validation failures. Contains safe top-level field names and validation codes, never submitted values.","properties":{"fields":{"type":"array","maxItems":20,"items":{"type":"object","required":["field","code"],"properties":{"field":{"type":"string","example":"amount","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","example":"invalid_type","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].code","typeLabel":"string"}},"uniqueKey":"details.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"details.fields","typeLabel":"object[]"}},"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"forbidden","message":"You do not have access to this organization.","error":"You do not have access to this organization.","details":{"fields":[{"field":"amount","code":"invalid_type"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"d5f71338-42a3-45db-96b7-d1f79b6fe371":{"headers":{"X-Request-Id":{"description":"Server-generated ID linking this request to API activity and audit records.","schema":{"type":"string","format":"uuid"}}},"description":"Unauthorized (missing or invalid Bearer token)","content":{"application/json":{"schema":{"type":"object","description":"Every error response is valid JSON with this shape. The HTTP status code carries the outcome; `code` is a stable machine-readable form of it.","required":["code","message"],"properties":{"code":{"type":"string","enum":["bad_request","unauthorized","forbidden","not_found","conflict","unprocessable_entity","payload_too_large","rate_limited","internal_server_error"],"example":"forbidden","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"You do not have access to this organization.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","deprecated":true,"description":"Deprecated alias for `message`. Read `message` instead.","example":"You do not have access to this organization.","uniqueKey":"error","typeLabel":"string"},"details":{"type":"object","description":"Present for schema validation failures. Contains safe top-level field names and validation codes, never submitted values.","properties":{"fields":{"type":"array","maxItems":20,"items":{"type":"object","required":["field","code"],"properties":{"field":{"type":"string","example":"amount","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","example":"invalid_type","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].code","typeLabel":"string"}},"uniqueKey":"details.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"details.fields","typeLabel":"object[]"}},"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"forbidden","message":"You do not have access to this organization.","error":"You do not have access to this organization.","details":{"fields":[{"field":"amount","code":"invalid_type"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"95e20587-35b9-40ec-a41b-32a83dd0b593":{"headers":{"X-Request-Id":{"description":"Server-generated ID linking this request to API activity and audit records.","schema":{"type":"string","format":"uuid"}}},"description":"Forbidden (no access to organization or action)","content":{"application/json":{"schema":{"type":"object","description":"Every error response is valid JSON with this shape. The HTTP status code carries the outcome; `code` is a stable machine-readable form of it.","required":["code","message"],"properties":{"code":{"type":"string","enum":["bad_request","unauthorized","forbidden","not_found","conflict","unprocessable_entity","payload_too_large","rate_limited","internal_server_error"],"example":"forbidden","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"You do not have access to this organization.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","deprecated":true,"description":"Deprecated alias for `message`. Read `message` instead.","example":"You do not have access to this organization.","uniqueKey":"error","typeLabel":"string"},"details":{"type":"object","description":"Present for schema validation failures. Contains safe top-level field names and validation codes, never submitted values.","properties":{"fields":{"type":"array","maxItems":20,"items":{"type":"object","required":["field","code"],"properties":{"field":{"type":"string","example":"amount","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","example":"invalid_type","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].code","typeLabel":"string"}},"uniqueKey":"details.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"details.fields","typeLabel":"object[]"}},"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"forbidden","message":"You do not have access to this organization.","error":"You do not have access to this organization.","details":{"fields":[{"field":"amount","code":"invalid_type"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"ae7c19a9-b5d0-400f-9276-f92234fb2b6b":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Every error response is valid JSON with this shape. The HTTP status code carries the outcome; `code` is a stable machine-readable form of it.","required":["code","message"],"properties":{"code":{"type":"string","enum":["bad_request","unauthorized","forbidden","not_found","conflict","unprocessable_entity","payload_too_large","rate_limited","internal_server_error"],"example":"forbidden","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"You do not have access to this organization.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","deprecated":true,"description":"Deprecated alias for `message`. Read `message` instead.","example":"You do not have access to this organization.","uniqueKey":"error","typeLabel":"string"},"details":{"type":"object","description":"Present for schema validation failures. Contains safe top-level field names and validation codes, never submitted values.","properties":{"fields":{"type":"array","maxItems":20,"items":{"type":"object","required":["field","code"],"properties":{"field":{"type":"string","example":"amount","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","example":"invalid_type","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].code","typeLabel":"string"}},"uniqueKey":"details.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"details.fields","typeLabel":"object[]"}},"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"forbidden","message":"You do not have access to this organization.","error":"You do not have access to this organization.","details":{"fields":[{"field":"amount","code":"invalid_type"}]}}}},"exampleType":"generated"}},"headers":{"X-Request-Id":{"description":"Server-generated ID linking this request to API activity and audit records.","schema":{"type":"string","format":"uuid"}}},"exampleType":"generated"},"7f98eb90-3738-49f8-830e-96aa55cc8cb2":{"headers":{"X-Request-Id":{"description":"Server-generated ID linking this request to API activity and audit records.","schema":{"type":"string","format":"uuid"}}},"description":"Conflict (duplicate, cross-resource ownership conflict, concurrent change, or accounting-frozen resource)","content":{"application/json":{"schema":{"type":"object","description":"Every error response is valid JSON with this shape. The HTTP status code carries the outcome; `code` is a stable machine-readable form of it.","required":["code","message"],"properties":{"code":{"type":"string","enum":["bad_request","unauthorized","forbidden","not_found","conflict","unprocessable_entity","payload_too_large","rate_limited","internal_server_error"],"example":"forbidden","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"You do not have access to this organization.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","deprecated":true,"description":"Deprecated alias for `message`. Read `message` instead.","example":"You do not have access to this organization.","uniqueKey":"error","typeLabel":"string"},"details":{"type":"object","description":"Present for schema validation failures. Contains safe top-level field names and validation codes, never submitted values.","properties":{"fields":{"type":"array","maxItems":20,"items":{"type":"object","required":["field","code"],"properties":{"field":{"type":"string","example":"amount","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","example":"invalid_type","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].code","typeLabel":"string"}},"uniqueKey":"details.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"details.fields","typeLabel":"object[]"}},"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"forbidden","message":"You do not have access to this organization.","error":"You do not have access to this organization.","details":{"fields":[{"field":"amount","code":"invalid_type"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"6c75a9c5-f820-40ef-9186-4853464b31ea":{"description":"Request body exceeds 2 MB","content":{"application/json":{"schema":{"type":"object","description":"Every error response is valid JSON with this shape. The HTTP status code carries the outcome; `code` is a stable machine-readable form of it.","required":["code","message"],"properties":{"code":{"type":"string","enum":["bad_request","unauthorized","forbidden","not_found","conflict","unprocessable_entity","payload_too_large","rate_limited","internal_server_error"],"example":"forbidden","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"You do not have access to this organization.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","deprecated":true,"description":"Deprecated alias for `message`. Read `message` instead.","example":"You do not have access to this organization.","uniqueKey":"error","typeLabel":"string"},"details":{"type":"object","description":"Present for schema validation failures. Contains safe top-level field names and validation codes, never submitted values.","properties":{"fields":{"type":"array","maxItems":20,"items":{"type":"object","required":["field","code"],"properties":{"field":{"type":"string","example":"amount","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","example":"invalid_type","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].code","typeLabel":"string"}},"uniqueKey":"details.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"details.fields","typeLabel":"object[]"}},"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"forbidden","message":"You do not have access to this organization.","error":"You do not have access to this organization.","details":{"fields":[{"field":"amount","code":"invalid_type"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"5cf65269-2ab2-4710-b564-1812a1327345":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object","description":"Every error response is valid JSON with this shape. The HTTP status code carries the outcome; `code` is a stable machine-readable form of it.","required":["code","message"],"properties":{"code":{"type":"string","enum":["bad_request","unauthorized","forbidden","not_found","conflict","unprocessable_entity","payload_too_large","rate_limited","internal_server_error"],"example":"forbidden","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"You do not have access to this organization.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","deprecated":true,"description":"Deprecated alias for `message`. Read `message` instead.","example":"You do not have access to this organization.","uniqueKey":"error","typeLabel":"string"},"details":{"type":"object","description":"Present for schema validation failures. Contains safe top-level field names and validation codes, never submitted values.","properties":{"fields":{"type":"array","maxItems":20,"items":{"type":"object","required":["field","code"],"properties":{"field":{"type":"string","example":"amount","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","example":"invalid_type","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].code","typeLabel":"string"}},"uniqueKey":"details.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"details.fields","typeLabel":"object[]"}},"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"forbidden","message":"You do not have access to this organization.","error":"You do not have access to this organization.","details":{"fields":[{"field":"amount","code":"invalid_type"}]}}}},"exampleType":"generated"}},"headers":{"X-Request-Id":{"description":"Server-generated ID linking this request to API activity and audit records.","schema":{"type":"string","format":"uuid"}}},"exampleType":"generated"},"c25fb582-b204-4806-8a12-0dac74bdc4a2":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","description":"Every error response is valid JSON with this shape. The HTTP status code carries the outcome; `code` is a stable machine-readable form of it.","required":["code","message"],"properties":{"code":{"type":"string","enum":["bad_request","unauthorized","forbidden","not_found","conflict","unprocessable_entity","payload_too_large","rate_limited","internal_server_error"],"example":"forbidden","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"You do not have access to this organization.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","deprecated":true,"description":"Deprecated alias for `message`. Read `message` instead.","example":"You do not have access to this organization.","uniqueKey":"error","typeLabel":"string"},"details":{"type":"object","description":"Present for schema validation failures. Contains safe top-level field names and validation codes, never submitted values.","properties":{"fields":{"type":"array","maxItems":20,"items":{"type":"object","required":["field","code"],"properties":{"field":{"type":"string","example":"amount","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","example":"invalid_type","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].code","typeLabel":"string"}},"uniqueKey":"details.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"details.fields","typeLabel":"object[]"}},"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"forbidden","message":"You do not have access to this organization.","error":"You do not have access to this organization.","details":{"fields":[{"field":"amount","code":"invalid_type"}]}}}},"exampleType":"generated"}},"headers":{"X-Request-Id":{"description":"Server-generated ID linking this request to API activity and audit records.","schema":{"type":"string","format":"uuid"}}},"exampleType":"generated"},"69e0e7c6-56c3-4048-819a-37994f8e41d2":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","description":"Every error response is valid JSON with this shape. The HTTP status code carries the outcome; `code` is a stable machine-readable form of it.","required":["code","message"],"properties":{"code":{"type":"string","enum":["bad_request","unauthorized","forbidden","not_found","conflict","unprocessable_entity","payload_too_large","rate_limited","internal_server_error"],"example":"forbidden","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"You do not have access to this organization.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","deprecated":true,"description":"Deprecated alias for `message`. Read `message` instead.","example":"You do not have access to this organization.","uniqueKey":"error","typeLabel":"string"},"details":{"type":"object","description":"Present for schema validation failures. Contains safe top-level field names and validation codes, never submitted values.","properties":{"fields":{"type":"array","maxItems":20,"items":{"type":"object","required":["field","code"],"properties":{"field":{"type":"string","example":"amount","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","example":"invalid_type","isRequired":true,"uniqueKey":"details.fields.items.[INDEX].code","typeLabel":"string"}},"uniqueKey":"details.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"details.fields","typeLabel":"object[]"}},"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"forbidden","message":"You do not have access to this organization.","error":"You do not have access to this organization.","details":{"fields":[{"field":"amount","code":"invalid_type"}]}}}},"exampleType":"generated"}},"headers":{"X-Request-Id":{"description":"Server-generated ID linking this request to API activity and audit records.","schema":{"type":"string","format":"uuid"}}},"exampleType":"generated"}},"security":{"b13aa5d4-77e1-4461-944f-0c8c2480e9b6":{"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.","scopes":[],"schemeName":"ApiKeyAuth"}},"0a4ca29a-fd5e-40fa-afd3-39cd795826a4":{"GrainOAuth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://auth.grainledger.com/auth/v1/oauth/authorize","tokenUrl":"https://auth.grainledger.com/auth/v1/oauth/token","scopes":{"openid":"OpenID Connect","email":"Email address","profile":"Profile information"}}},"scopes":[],"schemeName":"GrainOAuth2"}},"5d65a984-a73a-4263-a6ec-edd6bb054d60":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth access token (JWT)","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"f6713c7b-79dc-4516-9fa4-b80a2e5b565a":{"url":"https://api.grainledger.com","description":"API Server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"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.","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"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.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"ApiKeyAuth","name":"Authorization"}],"title":"ApiKeyAuth"},{"schemes":[{"scheme":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://auth.grainledger.com/auth/v1/oauth/authorize","tokenUrl":"https://auth.grainledger.com/auth/v1/oauth/token","scopes":{"openid":"OpenID Connect","email":"Email address","profile":"Profile information"}}},"scopes":[],"schemeName":"GrainOAuth2"},"schema":{"title":"OAuth2 Auth","type":"string","isRequired":true,"description":"The access token received from the authorization server in the OAuth 2.0 flow.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"GrainOAuth2","name":"Authorization"}],"title":"GrainOAuth2"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth access token (JWT)","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"OAuth access token (JWT)","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"grainledger","siteName":"Grain API","title":"Import pledge card data for review - Grain API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-10T15:49:06.246Z","originalFileLocation":"api-reference/pledge-card-imports/import-pledge-card-data-for-review.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Creates a pledge card review group from structured data. Rows enter the same donor matching and review workflow as scanned cards; this request does not create pledges.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Grain API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/grainledger/PJpRtk0ZdVq1mTks/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/grainledger/PJpRtk0ZdVq1mTks/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/grainledger/PJpRtk0ZdVq1mTks/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/grainledger/PJpRtk0ZdVq1mTks/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/grainledger/PJpRtk0ZdVq1mTks/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/grainledger/PJpRtk0ZdVq1mTks/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/grainledger/PJpRtk0ZdVq1mTks/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/grainledger/PJpRtk0ZdVq1mTks/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/grainledger/PJpRtk0ZdVq1mTks/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Import pledge card data for review - Grain API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a pledge card review group from structured data. Rows enter the same donor matching and review workflow as scanned cards; this request does not create pledges.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Grain API Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.grainledger.com/api-reference/pledge-card-imports/import-pledge-card-data-for-review\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://grainledger.com/og-image.jpg?v=wheat-field-20260908\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Import pledge card data for review - Grain API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a pledge card review group from structured data. Rows enter the same donor matching and review workflow as scanned cards; this request does not create pledges.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://grainledger.com/og-image.jpg?v=wheat-field-20260908\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/grainledger/PJpRtk0ZdVq1mTks/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Grain API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#03440c\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.grainledger.com/api-reference/pledge-card-imports/import-pledge-card-data-for-review\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/pledge-card-imports/import-pledge-card-data-for-review.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.grainledger.com/#organization\",\"name\":\"Grain API\",\"url\":\"https://docs.grainledger.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/grainledger/Jxl-ZANCEY95i3PU/images/grain-wordmark-on-light.svg?fit=max\u0026auto=format\u0026n=Jxl-ZANCEY95i3PU\u0026q=85\u0026s=47f8188964661273a33f4901a311ba81\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.grainledger.com#website\",\"name\":\"Grain API\",\"url\":\"https://docs.grainledger.com\",\"publisher\":{\"@id\":\"https://docs.grainledger.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.grainledger.com/api-reference/pledge-card-imports/import-pledge-card-data-for-review#webpage\",\"url\":\"https://docs.grainledger.com/api-reference/pledge-card-imports/import-pledge-card-data-for-review\",\"name\":\"Import pledge card data for review\",\"description\":\"Creates a pledge card review group from structured data. Rows enter the same donor matching and review workflow as scanned cards; this request does not create pledges.\",\"dateModified\":\"2026-10-10T15:49:06.246Z\",\"isPartOf\":{\"@id\":\"https://docs.grainledger.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.grainledger.com/api-reference/pledge-card-imports/import-pledge-card-data-for-review#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.grainledger.com/api-reference/pledge-card-imports/import-pledge-card-data-for-review#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Grain API\",\"item\":\"https://docs.grainledger.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Import pledge card data for review\",\"item\":\"https://docs.grainledger.com/api-reference/pledge-card-imports/import-pledge-card-data-for-review\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.grainledger.com/api-reference/pledge-card-imports/import-pledge-card-data-for-review#apireference\",\"headline\":\"Import pledge card data for review\",\"name\":\"Import pledge card data for review\",\"description\":\"Creates a pledge card review group from structured data. Rows enter the same donor matching and review workflow as scanned cards; this request does not create pledges.\",\"url\":\"https://docs.grainledger.com/api-reference/pledge-card-imports/import-pledge-card-data-for-review\",\"mainEntityOfPage\":{\"@id\":\"https://docs.grainledger.com/api-reference/pledge-card-imports/import-pledge-card-data-for-review#webpage\"},\"image\":\"https://grainledger.com/og-image.jpg?v=wheat-field-20260908\",\"dateModified\":\"2026-10-10T15:49:06.246Z\",\"publisher\":{\"@id\":\"https://docs.grainledger.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.grainledger.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Grain API\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Grain API\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/pledge-card-imports/import-pledge-card-data-for-review.md","siteName":"Grain API","nav":{"global":{"anchors":[{"anchor":"Open app","icon":"https://mintlify.s3.us-west-1.amazonaws.com/grainledger/images/grain-logomark.svg","href":"https://app.grainledger.com"},{"anchor":"Support","icon":"circle-question","href":"https://grainledger.com/support"}]},"tabs":[{"tab":"Getting Started","icon":"rocket","pages":[{"title":"Getting Started","href":"/intro"}]},{"tab":"API Reference","icon":"code","groups":[{"group":"Funds","pages":[{"title":"List funds","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/funds","href":"/api-reference/funds/list-funds"}]},{"group":"Coding Reference Data","pages":[{"title":"List accounts","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/accounts","href":"/api-reference/coding-reference-data/list-accounts"},{"title":"List dimensions","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/dimensions","href":"/api-reference/coding-reference-data/list-dimensions"},{"title":"List vendors","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/vendors","href":"/api-reference/coding-reference-data/list-vendors"}]},{"group":"Organizations","pages":[{"title":"List authorized organizations","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/organizations","href":"/api-reference/organizations/list-authorized-organizations"}]},{"group":"Transactions","pages":[{"title":"List transactions","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/transactions","href":"/api-reference/transactions/list-transactions"},{"title":"Create transaction","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/transactions","href":"/api-reference/transactions/create-transaction"},{"title":"Get transaction by ID","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/transactions/{id}","href":"/api-reference/transactions/get-transaction-by-id"},{"title":"Delete transaction","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/transactions/{id}","href":"/api-reference/transactions/delete-transaction"},{"title":"Update transaction","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/transactions/{id}","href":"/api-reference/transactions/update-transaction"},{"title":"Code or split a transaction","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/transactions/{id}/coding","href":"/api-reference/transactions/code-or-split-a-transaction"},{"title":"Uncategorize a transaction","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/transactions/{id}/coding","href":"/api-reference/transactions/uncategorize-a-transaction"},{"title":"Set transaction dimensions","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/transactions/{id}/dimensions","href":"/api-reference/transactions/set-transaction-dimensions"},{"title":"Approve a transaction","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/transactions/{id}/approve","href":"/api-reference/transactions/approve-a-transaction"},{"title":"Unapprove a transaction","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/transactions/{id}/unapprove","href":"/api-reference/transactions/unapprove-a-transaction"},{"title":"List transaction attachments","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/transactions/{id}/attachments","href":"/api-reference/transactions/list-transaction-attachments"},{"title":"Upload a receipt","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/transactions/{id}/attachments","href":"/api-reference/transactions/upload-a-receipt"},{"title":"Get an attachment download URL","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/transactions/{id}/attachments/{fileId}/download","href":"/api-reference/transactions/get-an-attachment-download-url"},{"title":"Delete an attachment","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/transactions/{id}/attachments/{fileId}","href":"/api-reference/transactions/delete-an-attachment"}]},{"group":"Bills","pages":[{"title":"List bills","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/bills","href":"/api-reference/bills/list-bills"},{"title":"Create bill","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/bills","href":"/api-reference/bills/create-bill"},{"title":"Get bill","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/bills/{id}","href":"/api-reference/bills/get-bill"},{"title":"Delete bill","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/bills/{id}","href":"/api-reference/bills/delete-bill"},{"title":"Update bill","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/bills/{id}","href":"/api-reference/bills/update-bill"}]},{"group":"Donors","pages":[{"title":"List donors","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/donors","href":"/api-reference/donors/list-donors"},{"title":"Create donor","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/donors","href":"/api-reference/donors/create-donor"},{"title":"Get donor","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/donors/{id}","href":"/api-reference/donors/get-donor"},{"title":"Delete donor","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/donors/{id}","href":"/api-reference/donors/delete-donor"},{"title":"Update donor","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/donors/{id}","href":"/api-reference/donors/update-donor"}]},{"group":"Contributions","pages":[{"title":"List contributions","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/contributions","href":"/api-reference/contributions/list-contributions"},{"title":"Create contribution","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/contributions","href":"/api-reference/contributions/create-contribution"},{"title":"Get contribution","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/contributions/{id}","href":"/api-reference/contributions/get-contribution"},{"title":"Delete contribution","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/contributions/{id}","href":"/api-reference/contributions/delete-contribution"},{"title":"Update contribution","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/contributions/{id}","href":"/api-reference/contributions/update-contribution"}]},{"group":"Settlements","pages":[{"title":"List settlements","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/settlements","href":"/api-reference/settlements/list-settlements"},{"title":"Create settlement","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/settlements","href":"/api-reference/settlements/create-settlement"},{"title":"Get settlement","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/settlements/{id}","href":"/api-reference/settlements/get-settlement"},{"title":"Delete settlement","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/settlements/{id}","href":"/api-reference/settlements/delete-settlement"},{"title":"Update settlement","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/settlements/{id}","href":"/api-reference/settlements/update-settlement"}]},{"group":"Giving Batches","pages":[{"title":"List giving batches","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/batches","href":"/api-reference/giving-batches/list-giving-batches"},{"title":"Create giving batch","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/batches","href":"/api-reference/giving-batches/create-giving-batch"},{"title":"Get giving batch","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/batches/{id}","href":"/api-reference/giving-batches/get-giving-batch"},{"title":"Delete giving batch","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/batches/{id}","href":"/api-reference/giving-batches/delete-giving-batch"},{"title":"Update giving batch","description":"Recalculates totals after amount, fee, or membership changes. SETTLED is an accounting-owned state and cannot be set here.","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/batches/{id}","href":"/api-reference/giving-batches/update-giving-batch"}]},{"group":"Pledge Card Imports","pages":[{"title":"Import pledge card data for review","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/pledge-card-imports","href":"/api-reference/pledge-card-imports/import-pledge-card-data-for-review"},{"title":"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.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/pledge-card-imports/reference-data","href":"/api-reference/pledge-card-imports/list-pledge-card-import-reference-data"}]},{"group":"Pledges","pages":[{"title":"List pledges","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/pledges","href":"/api-reference/pledges/list-pledges"},{"title":"Create pledge","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/pledges","href":"/api-reference/pledges/create-pledge"},{"title":"Get pledge","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/pledges/{id}","href":"/api-reference/pledges/get-pledge"},{"title":"Delete pledge","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/pledges/{id}","href":"/api-reference/pledges/delete-pledge"},{"title":"Update pledge","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/pledges/{id}","href":"/api-reference/pledges/update-pledge"}]},{"group":"Households","pages":[{"title":"List households","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/households","href":"/api-reference/households/list-households"},{"title":"Create household","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/households","href":"/api-reference/households/create-household"},{"title":"Get household","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/households/{id}","href":"/api-reference/households/get-household"},{"title":"Delete household","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/households/{id}","href":"/api-reference/households/delete-household"},{"title":"Update household","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/households/{id}","href":"/api-reference/households/update-household"},{"title":"Add household member","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/households/{id}/members","href":"/api-reference/households/add-household-member"},{"title":"Remove household member","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/households/{id}/members/{donorId}","href":"/api-reference/households/remove-household-member"},{"title":"Update household member","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/households/{id}/members/{donorId}","href":"/api-reference/households/update-household-member"}]}]}]},"basePath":"","title":"Import pledge card data for review - Grain API","buildId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","deploymentId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-BvKnMd7F.js","utils-BMt52org.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CGXZuDGO.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dl57XWH2.js","snippetPresets-CWd8CxSk.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BR-Wkc_D.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-YMmi08aZ.js","shallow-DBC1OB78.js","getApiPlaygroundDisplay-Be7mmEzP.js","CodeSnippet-B14o1TgQ.js","CodeSnippets-CJ2q3fTq.js","Page-Chgj7sZe.js","getPastedJson-DnpLXm8x.js","icon-BpkSFtdK.js","MethodPill-BO3zPf-g.js","DuplicateIcon-Bib3qwfw.js","createIcon-CY2noFo3.js","DynamicMarkdown-TAXIW2vN.js","SectionHeading-Dfs3Fmfw.js","axios-vUo_bRtp.js","Markdown-CGAo_eqA.js","clsx-BNa-H6W6.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-r2tNEC1n.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-B7oWe6jc.js"]}