Endpointtoday's app
Call GET /gateway/asset-service/api/v1/annual-action-plan-extended?ownerEntityIds=&ownerEntityType=ENTITY_TYPE.IEService 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 Header Value Notes 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 Param In Required Example Notes ownerEntityIdsquery Yes 880001A single farmer IE id (mIe.id). ownerEntityTypequery Yes ENTITY_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
}
]Field Type Required Notes [].idint Server id. 0 on POST. On GET the app keeps the row with the highest id. [].ownerEntityIdstring Farmer IE id. [].ownerEntityTypestring Always ENTITY_TYPE.IE. [].category, designation, totalLandExtentstring Farmer category (C1 to C5), role and total land, from the KAP 25-26 header. [].*202425PrePopulated*string|boolean Last season values pre-filled from the AAP2025_26 dataset, shown read-only. [].*202425Updated*string|boolean Cadre-corrected last-season values. [].*202526*string|boolean Planned 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/string Participation toggle and remarks. [].pmds201920..pmds202425, isPMDS_24_25, category_24_25, total_land_extent_24_25boolean/string PMDS history and 24-25 snapshot. [].dgcPmds, dgcKharif, dgcRabi, dgcRdss1, dgcRdss2, dgcNotParticipatingboolean DGC season participation checkboxes. [].appCreatedAtstring (epoch ms) Set to System.currentTimeMillis() when saving.
Errors Status When What the app does non-2xxServer error Resource.error(errorBody text or "some error occurred") is shown on the screen. exceptionNetwork or parse failure Generic error message. 401/400Session invalid AuthInterceptor 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