Skip to content

Request Payment (akoya_requestpayment)

A Request Payment is a disbursement line or conditional requirement attached to a request. The same entity models both:

  • Payments — scheduled or executed grant / scholarship disbursements (check, ACH, stock, non-cash).
  • Requirements — conditional obligations the recipient must satisfy (report due, outcome submission, compliance step). Requirements don't move money; they enforce workflow.

The akoya_requirementtype choice distinguishes the two. For AP integrations, focus on records where akoya_requirementtype represents a payment.

At a glance

Display name Payment or Requirement
Logical name akoya_requestpayment
Primary ID attribute akoya_requestpaymentid
Primary name attribute akoya_paymentnum
Entity set name (Web API) akoya_requestpayments
Ownership UserOwned
Change tracking Enabled
Audit Enabled

Web API

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

Attributes

Core

Display name Logical name Type Required Description
Payment / Requirement # akoya_paymentnum String (100) Recommended Sequence or external identifier. Primary name.
Amount akoya_amount Money Recommended Payment or requirement amount.
Net Amount akoya_netamount Money None Amount after adjustments.
Payment Date akoya_paymentdate DateTime None Planned or actual payment date.
Est. Grant Pay Date akoya_estimatedgrantpaydate DateTime None Expected payment date.
Requirement Due akoya_requirementdue DateTime None Deadline for a requirement (if this is a requirement record).
Posting Date akoya_postingdate DateTime None GL posting date.
Clear Date akoya_cleardate DateTime None Bank reconciliation clear date.
Check # akoya_checknumber String (50) None Check or reference number.
Payment Sent akoya_paymentsent DateTime None Communication sent date.
Requirement Type akoya_requirementtype Choice None Payment vs. requirement flag (global option set).
Disbursement Type akoya_disbursementtype Choice None Method / category (global option set).
Anonymous akoya_anonymous Boolean None Disbursement anonymity.

Non-cash columns

Display name Logical name Type
Non Cash akoya_noncash Boolean
Non Cash Description akoya_noncashdescription String (400)
Non Cash Valuation akoya_noncashvaluation Choice

Memos

Display name Logical name Max length
GL Memo akoya_glmemo 250
Posting Description (Memo) akoya_memo 250
Payment Note akoya_paymentnote 2000

External integration columns

Display name Logical name Purpose
Bill.com Item ID akoya_billitemid External AP-system bill identifier (when synced). The display name reflects the historical integration target; the field is used by any AP integration.
Bank Account Name akoya_bankaccountname External AP-system bank account label.
Payment Status (folio) akoya_folio External payment-status code.
Payment Status Message akoya_foliogoerortext Detailed message from external sync.

Lookups — quick reference

Logical name Navigation property Target Purpose
akoya_requestlookup akoya_RequestLookup akoya_request Required. Parent request.
akoya_fund akoya_Fund akoya_fund Funding fund.
akoya_account akoya_Account akoya_account Expense GL account.
akoya_payableaccount akoya_PayableAccount akoya_account A/P (liability) GL account.
akoya_paymentaccount akoya_PaymentAccount akoya_account Bank / payment GL account.
akoya_payee akoya_Payee contact / account Recipient of the payment.
akoya_requestapplicant akoya_RequestApplicant contact Applicant (denormalized from parent request).
akoya_requestcontact akoya_RequestContact contact Contact for communications about this payment.
akoya_fundprimarydonor akoya_FundPrimaryDonor akoya_donor Primary donor on the source fund (denormalized).
akoya_function akoya_Function akoya_function Fund function / program area.
akoya_department akoya_Department akoya_department Organizational department.
akoya_paymentrequirementlettertemplate akoya_PaymentRequirementLetterTemplate (letter template) Merge template for the communication.

Relationships

Many-to-One

Target Attribute
akoya_request akoya_requestlookup (required parent)
akoya_fund akoya_fund
akoya_account akoya_account, akoya_payableaccount, akoya_paymentaccount
contact akoya_payee, akoya_requestapplicant, akoya_requestcontact

Supported messages

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

Privileges

Privilege Purpose
prvReadakoya_requestpayment Read payment / requirement records
prvCreateakoya_requestpayment Create payment / requirement records
prvWriteakoya_requestpayment Update payment / requirement records

Examples

Conventions

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

Upcoming payments for a request

GET {org}/api/data/v9.2/akoya_requestpayments?
  $select=akoya_paymentnum,akoya_amount,akoya_paymentdate,akoya_checknumber&
  $filter=_akoya_requestlookup_value eq {requestid} and akoya_paymentdate ge 2026-04-01&
  $expand=akoya_Fund($select=akoya_fundname),akoya_Account($select=akoya_accountnum)&
  $orderby=akoya_paymentdate asc
Accept: application/json
OData-Version: 4.0
OData-MaxVersion: 4.0
curl "https://{org}.crm.dynamics.com/api/data/v9.2/akoya_requestpayments?\$select=akoya_paymentnum,akoya_amount,akoya_paymentdate,akoya_checknumber&\$filter=_akoya_requestlookup_value%20eq%20{requestid}%20and%20akoya_paymentdate%20ge%202026-04-01&\$expand=akoya_Fund(\$select=akoya_fundname),akoya_Account(\$select=akoya_accountnum)&\$orderby=akoya_paymentdate%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_requestpayments",
    params={
        "$select": "akoya_paymentnum,akoya_amount,akoya_paymentdate,akoya_checknumber",
        "$filter": f"_akoya_requestlookup_value eq {request_id} and akoya_paymentdate ge 2026-04-01",
        "$expand": "akoya_Fund($select=akoya_fundname),akoya_Account($select=akoya_accountnum)",
        "$orderby": "akoya_paymentdate asc",
    },
    headers=headers,
)
upcoming = r.json()["value"]
var query = new QueryExpression("akoya_requestpayment") {
    ColumnSet = new ColumnSet("akoya_paymentnum", "akoya_amount", "akoya_paymentdate", "akoya_checknumber"),
    Criteria = {
        Conditions = {
            new ConditionExpression("akoya_requestlookup", ConditionOperator.Equal, requestId),
            new ConditionExpression("akoya_paymentdate", ConditionOperator.GreaterEqual, new DateTime(2026, 4, 1))
        }
    },
    Orders = { new OrderExpression("akoya_paymentdate", OrderType.Ascending) }
};
var upcoming = service.RetrieveMultiple(query);

Unsynced payments awaiting AP integration

Payments not yet given an external AP-system bill ID (akoya_billitemid).

GET {org}/api/data/v9.2/akoya_requestpayments?
  $select=akoya_requestpaymentid,akoya_amount,akoya_paymentdate,akoya_billitemid,akoya_folio&
  $filter=akoya_billitemid eq null and akoya_paymentdate ne null and statecode eq 0
Accept: application/json
OData-Version: 4.0
OData-MaxVersion: 4.0
curl "https://{org}.crm.dynamics.com/api/data/v9.2/akoya_requestpayments?\$select=akoya_requestpaymentid,akoya_amount,akoya_paymentdate,akoya_billitemid,akoya_folio&\$filter=akoya_billitemid%20eq%20null%20and%20akoya_paymentdate%20ne%20null%20and%20statecode%20eq%200" \
  -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_requestpayments",
    params={
        "$select": "akoya_requestpaymentid,akoya_amount,akoya_paymentdate,akoya_billitemid,akoya_folio",
        "$filter": "akoya_billitemid eq null and akoya_paymentdate ne null and statecode eq 0",
    },
    headers=headers,
)
unsynced = r.json()["value"]
var query = new QueryExpression("akoya_requestpayment") {
    ColumnSet = new ColumnSet("akoya_amount", "akoya_paymentdate", "akoya_billitemid", "akoya_folio"),
    Criteria = {
        Conditions = {
            new ConditionExpression("akoya_billitemid", ConditionOperator.Null),
            new ConditionExpression("akoya_paymentdate", ConditionOperator.NotNull),
            new ConditionExpression("statecode", ConditionOperator.Equal, 0)
        }
    }
};
var unsynced = service.RetrieveMultiple(query);

Mark payment as sent

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

{
  "akoya_paymentsent": "2026-04-24T12:00:00Z",
  "akoya_checknumber": "5001",
  "akoya_billitemid": "bill_abc123"
}
curl -X PATCH "https://{org}.crm.dynamics.com/api/data/v9.2/akoya_requestpayments({paymentid})" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "If-Match: *" \
  -d '{
    "akoya_paymentsent": "2026-04-24T12:00:00Z",
    "akoya_checknumber": "5001",
    "akoya_billitemid": "bill_abc123"
  }'
r = requests.patch(
    f"{ORG}/api/data/v9.2/akoya_requestpayments({payment_id})",
    json={
        "akoya_paymentsent": "2026-04-24T12:00:00Z",
        "akoya_checknumber": "5001",
        "akoya_billitemid": "bill_abc123",
    },
    headers={**headers, "Content-Type": "application/json", "If-Match": "*"},
)
var payment = new Entity("akoya_requestpayment", paymentId);
payment["akoya_paymentsent"] = new DateTime(2026, 4, 24, 12, 0, 0, DateTimeKind.Utc);
payment["akoya_checknumber"] = "5001";
payment["akoya_billitemid"] = "bill_abc123";
service.Update(payment);

Change history

Schema extracted from the Akoyanet solution XML on 2026-04-24. Global option set values (akoya_requirementtype, akoya_disbursementtype, akoya_noncashvaluation) will be rendered by the Phase 2 metadata generator.