Agrofin

Catalog — programs, legal documents, FAQ

On this page 17

Catalog

Everything the public site renders: financing programmes and their terms, the register of legal acts, the FAQ base, the citizens' reception schedule and the org chart.

All catalog endpoints are public — no authentication, no bearer token. They return only rows whose status is active. Anonymous traffic is capped by the api rate limiter (see Getting started).

Translatable fields (title, summary, body, question, answer, label, note, position, address, name, duties) resolve to the locale negotiated from Accept-Language. Send Accept-Language: uz (or ru / uz_cyrl) — the default when nothing is sent is uz.

uz_cyrl is the Cyrillic script of Uzbek. Case and separator do not matter (uz-Cyrl, UZ_CYRL all resolve) — the SetLocale middleware normalises whatever the client sends back to the exact tag in config('app.supported_locales').


Programmes

GET /api/v1/programs

Paginated list. Follows the list contract.

Filter Values Notes
filter[sector] cotton, wheat, seed_wheat, commodity_wheat, machinery, fruit, potato, greenhouse, oilseed, livestock, fishery exact match
filter[kind] credit, leasing, subsidy exact match
filter[search] free text matches title in the current locale

filter[search] ignores apostrophes on both sides of the comparison, so jamg'arma, jamg‘arma, jamgʻarma and jamgarma all return the same rows. Type whichever your keyboard produces.

sort: sort_order (default), id. Prefix with - to reverse.

Each item embeds terms[] and legal_document.

GET /api/v1/programs/{slug}

One programme with terms[], legal_document and its faqs[]. 404 when the slug is unknown or the programme is inactive.

GET /api/v1/programs/match

Backs the "find the financing that fits you" wizard. All three parameters are optional; each one narrows the result.

Parameter Values
borrower_type one or a comma-separated list of farmer, seed_farm, cluster, textile_enterprise, grain_receiver, leasing_organization, entrepreneur
sector one or a comma-separated list of the sector values above
kind credit, leasing, subsidy

A list matches programmes open to ANY of the values (borrower_type=farmer,seed_farm is how the site maps the answer "fermer"). When borrower_type is given, the embedded terms[] are narrowed to those borrowers — so the client can render the applicable rate directly. Programmes without any term for the given borrowers are left out. An unknown value returns 422 with the field in errors.

Returns an unpaginated array (the wizard shows a handful of results).

Term object

The calculator reads its inputs from here — never hardcode a rate on the client. Rates are what the borrower pays; the bank margin is already inside annual_rate.

Field Meaning
borrower_type who this term applies to
label human description of the borrower
share_percent maximum share of the crop/asset value that can be financed
annual_rate annual rate the borrower pays, in percent
bank_margin the bank's share of annual_rate
rate_discount_a / rate_discount_b reduction for stability-rating class A / B
term_months total term
grace_months grace period before principal repayment starts
note conditions that do not fit a number

null means the source act does not fix that value — for example the seed-wheat programme, whose rate tracks the Central Bank base rate. Render the note in that case rather than a blank field.


GET /api/v1/legal-documents

Filter Values
filter[doc_type] presidential_decree, presidential_resolution, cabinet_resolution, ministry_order, charter, internal
filter[relevance] direct_primary, direct, related
filter[state] in_force, amended, repealed
filter[year] four-digit year of adoption
filter[direction] exact direction label in the current locale (values from /legal-documents/directions)
filter[search] free text over title, direction and number, in every locale and both Uzbek scripts — see Search

sort: adopted_on (default -adopted_on), number, id.

GET /api/v1/legal-documents/directions

Distinct direction labels of active documents in the current locale, sorted — the values the site's direction filter offers.

json
{ "data": ["Chorvachilik", "Lizing", "Paxtachilik"] }

Each item carries revisions_count so a list can badge amended acts without a second request.

GET /api/v1/legal-documents/{id}

The list item plus revisions[] (each with changed_on, summary and the amending_document), content — the full text of the act in the current locale when the Fund published it (null otherwise) — and files[], the downloadable copies:

json
"files": [
  { "id": 12, "locale": "uz_cyrl", "format": "doc", "name": "PF-5095-uz_cyrl.doc", "size": 34147, "url": "http://…/storage/12/PF-5095-uz_cyrl.doc" }
]

One file per locale at most; locale tells which script/language the copy is in. Seeded copies come from the old agrofin.uz register.

GET /api/v1/legal-documents/changes

Acts that were actually amended, most recently changed first. Backs the "latest legislative changes" block. Unpaginated, capped at 10.


FAQ

GET /api/v1/faqs

Filter Values
filter[faq_category_id] category id
filter[program_id] programme id
filter[search] free text over question and answer, in every locale and both Uzbek scripts

Default page size is 50, maximum 100. The base is larger than one page — walk meta.pagination.last_page to show everything (the site does).

Categories: one general category (jamgarma-haqida, whose first five questions are the canonical "term / rate / who / documents / banks" ones), one per financing direction, and the subsidies split by subsidy type (subsidiyalar, subsidiya-ehf, subsidiya-foiz, subsidiya-klaster-foiz, subsidiya-klaster-xarid) so that the same question text ("Subsidiya miqdori qancha?") never repeats inside one category.

GET /api/v1/faq-categories

Categories with faqs_count — active questions only.


Reception schedule

GET /api/v1/reception-slots

The citizens' reception timetable: who receives, in what capacity, on which weekday and between which hours. starts_at / ends_at are HH:MM. weekday is mondayfriday — there is no weekend reception.

Unpaginated; there are seven officials.


Org chart

GET /api/v1/staff-units

A tree: root units, each with nested children[] two levels deep. head_name is the person heading that unit. Backs the interactive organogram.