APIs & services / asset-service

Get 2025-26 annual action plans (extended) for farmers.

Endpointtoday's app
Call
GET /gateway/asset-service/api/v1/annual-action-plan-extended?ownerEntityIds=&ownerEntityType=ENTITY_TYPE.IE
Service
asset-service
Features
KAP / Annual Action Plan 2025-26
When
User opens endorsement / AAP review
Auth
X-SESSIONID set by CoreAPI (dooNowOrThrow)
In the App Service

Use case

Called when the KAP 25-26 screen (ActionPlanFragment2025To2026, opened from the farmer hub or endorsement) loads a farmer's saved 2025-26 annual action plan, through EndorsementRepositoryImpl.getAAP. It is online only: with no network the screen gets a "no internet" error. The app takes the row with the highest id, or an empty AnnualActionPlan2526 when the list is empty, and fills the form. On a non-2xx response the error body text is shown as the error message.

Headers

HeaderValueNotes
X-SESSIONID<session id>Passed explicitly as a @Header by the caller (AndroidSessionManager.sessionId). AuthInterceptor also fills it when missing, and on a 401 or 400 it invalidates the token, fetches a new one and retries once.

Parameters

ParamInRequiredExampleNotes
ownerEntityIdsqueryYes880001A single farmer IE id (mIe.id).
ownerEntityTypequeryYesENTITY_TYPE.IEDefault value in the Retrofit method.

Request

No body. ownerEntityIds, ownerEntityType

Response

Example response body (synthetic data)
[
  {
    "id": 7001,
    "ownerEntityId": "880001",
    "ownerEntityType": "ENTITY_TYPE.IE",
    "category": "C3",
    "designation": "Farmer",
    "totalLandExtent": "2.5",
    "agrade202425PrePopulatedData": "1",
    "agrade202425UpdatedData": "1",
    "agrade202526": "2",
    "atm202425PrePopulated": "0",
    "atm202425": "0",
    "atm202526": "1",
    "c1Extent202425PrePopulatedData": "0.5",
    "c1Extent202425UpdatedData": "0.5",
    "c1Extent202526": "1.0",
    "desiCows202425PrePopulatedData": "1",
    "desiCows202425UpdatedData": "1",
    "desiCows202526": "2",
    "dkg202425PrePopulatedSeasonal": true,
    "dkg202425UpdatedSeasonal": true,
    "dkg202526Seasonal": false,
    "dkg202425PrePopulated365": false,
    "dkg202425Updated365": false,
    "dkg202526365": true,
    "dkg202425PrePopulatedNo": false,
    "dkg202425UpdatedNo": false,
    "dkg202526No": false,
    "nfExtentInCB202425PrePopulatedData": "1.0",
    "nfExtentInCB202425UpdatedData": "1.0",
    "nfExtentInCB202526": "1.5",
    "pmdsExtent202425PrePopulatedData": "0.5",
    "pmdsExtent202425UpdatedData": "0.5",
    "pmdsExtent202526": "1.0",
    "s2sExtent202425PrePopulatedData": "0",
    "s2sExtent202425UpdatedData": "0",
    "s2sExtent202526": "0.5",
    "appCreatedAt": "1748772000000",
    "participatingInApp202526": true,
    "participationRemarksApp202526": null,
    "pmds201920": false,
    "pmds202021": false,
    "pmds202122": true,
    "pmds202223": true,
    "pmds202324": true,
    "pmds202425": true,
    "isPMDS_24_25": true,
    "category_24_25": "C3",
    "total_land_extent_24_25": "2.5",
    "dgcPmds": true,
    "dgcKharif": true,
    "dgcRabi": false,
    "dgcRdss1": false,
    "dgcRdss2": false,
    "dgcNotParticipating": false
  }
]
FieldTypeRequiredNotes
[].idintServer id. 0 on POST. On GET the app keeps the row with the highest id.
[].ownerEntityIdstringFarmer IE id.
[].ownerEntityTypestringAlways ENTITY_TYPE.IE.
[].category, designation, totalLandExtentstringFarmer category (C1 to C5), role and total land, from the KAP 25-26 header.
[].*202425PrePopulated*string|booleanLast season values pre-filled from the AAP2025_26 dataset, shown read-only.
[].*202425Updated*string|booleanCadre-corrected last-season values.
[].*202526*string|booleanPlanned 2025-26 values: A-grade crops, ATM, C1 extent, desi cows, DKG (seasonal / 365 / no), NF extent in compact block, PMDS extent, S2S extent. Numeric values are sent as strings.
[].participatingInApp202526, participationRemarksApp202526boolean/stringParticipation toggle and remarks.
[].pmds201920..pmds202425, isPMDS_24_25, category_24_25, total_land_extent_24_25boolean/stringPMDS history and 24-25 snapshot.
[].dgcPmds, dgcKharif, dgcRabi, dgcRdss1, dgcRdss2, dgcNotParticipatingbooleanDGC season participation checkboxes.
[].appCreatedAtstring (epoch ms)Set to System.currentTimeMillis() when saving.

Errors

StatusWhenWhat the app does
non-2xxServer errorResource.error(errorBody text or "some error occurred") is shown on the screen.
exceptionNetwork or parse failureGeneric error message.
401/400Session invalidAuthInterceptor re-authenticates and retries once.

Source

  • app/src/main/java/org/platformcommons/urvi/datasource/network/retrofit/APIInterface.kt
  • app/src/main/java/org/platformcommons/urvi/datasource/repository/impl/EndorsementRepositoryImpl.kt
  • app/src/main/java/org/platformcommons/urvi/view/aap_25_26/ActionPlanFragment2025To2026.kt
  • data/src/main/java/org/mindtree/app/agricultor/data/entity/AnnualActionPlan2526.kt