Skip to content

Gift Payment (akoya_giftpayment)

A Gift Payment is an individual payment transaction attached to a gift — a check deposit, ACH transfer, credit-card clearing, or non-cash (stock) transfer. Each pledge gift typically has multiple payment records over time; a one-time cash gift has exactly one. Gift Payment is the primary record AP and ERP partners sync for GL posting and bank reconciliation.

At a glance

Display name Gift Payment
Logical name akoya_giftpayment
Primary ID attribute akoya_giftpaymentid
Entity set name (Web API) akoya_giftpayments
Ownership OrganizationOwned
Change tracking Enabled
Audit Enabled

Web API

GET  {org}/api/data/v9.2/akoya_giftpayments
GET  {org}/api/data/v9.2/akoya_giftpayments({paymentid})
POST {org}/api/data/v9.2/akoya_giftpayments
PATCH {org}/api/data/v9.2/akoya_giftpayments({paymentid})

Attributes

Core

Display name Logical name Type Required Description
Amount akoya_amount Money Recommended Payment amount.
Check / Reference # akoya_check String (100) None Check number or external reference.
Check Date akoya_checkdate DateTime (DateOnly) None Date printed on the check.
Payment Type akoya_paymenttype Choice None Method (check, stock, cash, CC, ACH). Global option set.
Posting Date akoya_postingdate DateTime None GL posting date.
Deposit Date akoya_depositdate DateTime None Date the payment hit the deposit.
Clear Date akoya_cleardate DateTime None Bank reconciliation clear date.
GL Memo akoya_glmemo String (250) None Internal accounting description.
Thank You Date akoya_thankyoudate DateTime None Date the acknowledgement was sent.
Pledge Paid akoya_pledgepaid Boolean None Marks whether this payment closed a pledge obligation.
Pledge Payment Applied akoya_pledgepaymentapplied DateTime None When the payment was applied to the pledge.

Fee split (4-way)

akoya_giftpayment has a static 4-way fee split — up to four fee lines can be attached to a single payment. This is a fixed pattern, not a dynamic N-way.

Display name Logical name Type Paired lookup
Fee Amount 1 akoya_feeamount Money akoya_giftfeeakoya_giftfee
Fee Amount 2 akoya_feeamount2 Money akoya_giftfee2akoya_giftfee
Fee Amount 3 akoya_feeamount3 Money akoya_giftfee3akoya_giftfee
Fee Amount 4 akoya_feeamount4 Money akoya_giftfee4akoya_giftfee

Non-cash (stock) columns

Populated when the payment is a non-cash transfer — typically stock.

Display name Logical name Type
Stock Company akoya_stockcompany String
Stock Symbol akoya_stocksymbol String
Stock Date akoya_stockdate DateTime
Stock High akoya_stockhigh Money
Stock Low akoya_stocklow Money
Stock Valuation akoya_stockvaluation Money
Noncash Description akoya_noncashdescription String (500)
Noncash Determination Method akoya_noncashdeterminationmethod String (500)

External integration status

Display name Logical name Type Purpose
Payment Status (folio) akoya_folio String (40) External payment-status code from AP / ERP sync.
Payment Status Description akoya_foliogoerortext String (2000) Detailed message from the external system.
Payment Status On Change akoya_foliochangestatus String (50) State-transition flag used by the sync pipeline.

Lookups — quick reference

Logical name Navigation property Target Purpose
akoya_giftnumber akoya_GiftNumber akoya_gift Required. Parent gift record.
akoya_donor akoya_Donor akoya_donor Donor (denormalized from the gift for reporting convenience).
akoya_fund akoya_Fund akoya_fund Receiving fund.
akoya_account akoya_Account akoya_account GL account destination (expense or asset).
akoya_depositto akoya_DepositTo akoya_account GL account the deposit clears to.
akoya_depositaccount akoya_DepositAccount akoya_account Holding account for deposits in transit.
akoya_department akoya_Department akoya_department Organizational department.
akoya_primarycontact akoya_PrimaryContact contact Primary person for the payment.
akoya_payor akoya_Payor contact Individual who tendered the payment (may differ from donor).
akoya_donorconstituent akoya_DonorConstituent contact Legacy "constituent" link.

Relationships

Many-to-One (this entity references)

Role Schema name Attribute Referenced entity
Parent gift akoya_gift_akoya_giftpayment_giftnumber akoya_giftnumber akoya_gift
Donor akoya_donor_akoya_giftpayment_donor akoya_donor akoya_donor
Fund akoya_fund_akoya_giftpayment_fund akoya_fund akoya_fund
GL account akoya_account_akoya_giftpayment_account akoya_account akoya_account

One-to-Many (child records)

None of note — gift payments are typically leaves in the hierarchy.

Supported messages

Message Supported
Create
Retrieve
RetrieveMultiple
Update
Delete
Upsert — (no alternate keys; use GET then PATCH)

Privileges

Privilege Purpose
prvReadakoya_giftpayment Read gift payment records
prvCreateakoya_giftpayment Create gift payment records
prvWriteakoya_giftpayment Update gift payment records

Examples

Conventions

Examples assume ORG (env URL), access_token (valid bearer), headers (standard Dataverse headers dict), and service (a ServiceClient instance). See Authentication.

Cleared payments for a date range

GET {org}/api/data/v9.2/akoya_giftpayments?
  $select=akoya_amount,akoya_check,akoya_checkdate,akoya_cleardate,akoya_postingdate&
  $filter=akoya_cleardate ge 2026-01-01 and akoya_cleardate le 2026-03-31&
  $expand=akoya_GiftNumber($select=akoya_giftnum),akoya_Fund($select=akoya_fundname),akoya_Account($select=akoya_accountnum,akoya_accountname)&
  $orderby=akoya_cleardate asc
Accept: application/json
OData-Version: 4.0
OData-MaxVersion: 4.0
curl "https://{org}.crm.dynamics.com/api/data/v9.2/akoya_giftpayments?\$select=akoya_amount,akoya_check,akoya_checkdate,akoya_cleardate,akoya_postingdate&\$filter=akoya_cleardate%20ge%202026-01-01%20and%20akoya_cleardate%20le%202026-03-31&\$expand=akoya_GiftNumber(\$select=akoya_giftnum),akoya_Fund(\$select=akoya_fundname),akoya_Account(\$select=akoya_accountnum,akoya_accountname)&\$orderby=akoya_cleardate%20asc" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Accept: application/json" \
  -H "OData-Version: 4.0" \
  -H "OData-MaxVersion: 4.0"
r = requests.get(
    f"{ORG}/api/data/v9.2/akoya_giftpayments",
    params={
        "$select": "akoya_amount,akoya_check,akoya_checkdate,akoya_cleardate,akoya_postingdate",
        "$filter": "akoya_cleardate ge 2026-01-01 and akoya_cleardate le 2026-03-31",
        "$expand": "akoya_GiftNumber($select=akoya_giftnum),akoya_Fund($select=akoya_fundname),akoya_Account($select=akoya_accountnum,akoya_accountname)",
        "$orderby": "akoya_cleardate asc",
    },
    headers=headers,
)
payments = r.json()["value"]
var query = new QueryExpression("akoya_giftpayment") {
    ColumnSet = new ColumnSet("akoya_amount", "akoya_check", "akoya_checkdate", "akoya_cleardate", "akoya_postingdate"),
    Criteria = {
        Conditions = {
            new ConditionExpression("akoya_cleardate", ConditionOperator.GreaterEqual, new DateTime(2026, 1, 1)),
            new ConditionExpression("akoya_cleardate", ConditionOperator.LessEqual, new DateTime(2026, 3, 31))
        }
    },
    Orders = { new OrderExpression("akoya_cleardate", OrderType.Ascending) }
};
var payments = service.RetrieveMultiple(query);

Create a payment against a pledge

POST {org}/api/data/v9.2/akoya_giftpayments
Accept: application/json
OData-Version: 4.0
OData-MaxVersion: 4.0
Content-Type: application/json

{
  "akoya_amount": 250.00,
  "akoya_check": "1001",
  "akoya_checkdate": "2026-04-24",
  "akoya_postingdate": "2026-04-24",
  "akoya_GiftNumber@odata.bind": "/akoya_gifts({giftid})",
  "akoya_Fund@odata.bind": "/akoya_funds({fundid})",
  "akoya_Account@odata.bind": "/akoya_accounts({accountid})"
}
curl -X POST "https://{org}.crm.dynamics.com/api/data/v9.2/akoya_giftpayments" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Accept: application/json" \
  -H "OData-Version: 4.0" \
  -H "OData-MaxVersion: 4.0" \
  -H "Content-Type: application/json" \
  -d '{
    "akoya_amount": 250.00,
    "akoya_check": "1001",
    "akoya_checkdate": "2026-04-24",
    "akoya_postingdate": "2026-04-24",
    "akoya_GiftNumber@odata.bind": "/akoya_gifts({giftid})",
    "akoya_Fund@odata.bind": "/akoya_funds({fundid})",
    "akoya_Account@odata.bind": "/akoya_accounts({accountid})"
  }'
r = requests.post(
    f"{ORG}/api/data/v9.2/akoya_giftpayments",
    json={
        "akoya_amount": 250.00,
        "akoya_check": "1001",
        "akoya_checkdate": "2026-04-24",
        "akoya_postingdate": "2026-04-24",
        "akoya_GiftNumber@odata.bind": f"/akoya_gifts({gift_id})",
        "akoya_Fund@odata.bind": f"/akoya_funds({fund_id})",
        "akoya_Account@odata.bind": f"/akoya_accounts({account_id})",
    },
    headers={**headers, "Content-Type": "application/json"},
)
var payment = new Entity("akoya_giftpayment");
payment["akoya_amount"] = new Money(250.00m);
payment["akoya_check"] = "1001";
payment["akoya_checkdate"] = new DateTime(2026, 4, 24);
payment["akoya_postingdate"] = new DateTime(2026, 4, 24);
payment["akoya_giftnumber"] = new EntityReference("akoya_gift", giftId);
payment["akoya_fund"] = new EntityReference("akoya_fund", fundId);
payment["akoya_account"] = new EntityReference("akoya_account", accountId);
var paymentId = service.Create(payment);

Mark payment as cleared

PATCH {org}/api/data/v9.2/akoya_giftpayments({paymentid})
Content-Type: application/json
If-Match: *

{ "akoya_cleardate": "2026-04-28" }
curl -X PATCH "https://{org}.crm.dynamics.com/api/data/v9.2/akoya_giftpayments({paymentid})" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "If-Match: *" \
  -d '{"akoya_cleardate": "2026-04-28"}'
r = requests.patch(
    f"{ORG}/api/data/v9.2/akoya_giftpayments({payment_id})",
    json={"akoya_cleardate": "2026-04-28"},
    headers={**headers, "Content-Type": "application/json", "If-Match": "*"},
)
var payment = new Entity("akoya_giftpayment", paymentId);
payment["akoya_cleardate"] = new DateTime(2026, 4, 28);
service.Update(payment);

Change history

Schema extracted from the Akoyanet solution XML on 2026-04-24. akoya_paymenttype and akoya_reversaltype global option set values are pending the Phase 2 metadata generator.