1 ---
2 title: "ProcureNet Vector Store: Indexes and Buyer Data Flow"
3 sidebarTitle: "Vector Store"
4 description: "Understand how ProcureNet's four vector indexes power buyer resolution, contract validation, localization, and entitlements in your checkout flows."
5 ---
6
7 ProcureNet uses a local-first vector store to power AI-driven lookups for buyer profiles, contract rules, translations, and entitlements. The store operates alongside the OpenClaw agent swarm, meaning reads are low-latency and survive network interruptions. You do not write vectors yourself — the platform populates and queries the store automatically based on the data you supply to the orchestration API.
8
9 ## The Four Indexes
10
11 The vector store contains four named indexes. Each serves a distinct role in the orchestration pipeline.
12
13 <CardGroup cols={2}>
14 <Card title="wcs_profiles" icon="user">
15 **Type: `scoring`**
16
17 Stores buyer identity signals used by the Wallet Confidence Score engine to resolve sessions as `resolved`, `partial`, or `anonymous`. The richer the identity data you pass to `/api/v7/orchestrate`, the more accurately this index can identify returning buyers.
18 </Card>
19 <Card title="contract_rules" icon="file-contract">
20 **Type: `validation`**
21
22 Holds procurement contract terms and validation logic. Checked during state transitions to ensure orders comply with applicable rules before advancing to the next stage.
23 </Card>
24 <Card title="translations" icon="language">
25 **Type: `i18n`**
26
27 Contains localized strings for checkout UI flows. Enables ProcureNet to serve the correct language and locale to buyers without round-trips to a remote translation service.
28 </Card>
29 <Card title="entitlements" icon="badge-check">
30 **Type: `authorization`**
31
32 Controls which features and funding methods a buyer or account can access. Queried when you call the funding-method endpoint to verify the buyer is permitted to use the selected payment method.
33 </Card>
34 </CardGroup>
35
36 ---
37
38 ## How Each Index Affects Your Integration
39
40 The indexes work together as a pipeline. Understanding their roles helps you pass the right data at the right time.
41
42 <Steps>
43 <Step title="Buyer signals flow into wcs_profiles">
44 When you call `POST /api/v7/orchestrate`, ProcureNet uses the identity
45 signals you supply in the `hints` object — `customerId`, `email`, `phone`,
46 and `deviceId` — to query the `wcs_profiles` index and calculate the
47 Wallet Confidence Score. A richer profile means a higher score and a
48 `resolved` session mode.
49 </Step>
50 <Step title="contract_rules validates state transitions">
51 Before the state machine advances on `POST /api/v7/sessions/{id}/transition`,
52 applicable rules from `contract_rules` are retrieved and evaluated. If your
53 order violates a procurement rule, the transition is rejected with a
54 validation error.
55 </Step>
56 <Step title="translations localise the checkout flow">
57 ProcureNet resolves the buyer's locale from session context and queries the
58 `translations` index to return correctly localised strings. No action is
59 required from you — locale handling is automatic.
60 </Step>
61 <Step title="entitlements gate funding methods">
62 When you call `POST /api/v7/sessions/{id}/funding-method`, ProcureNet
63 queries the `entitlements` index against the buyer's session to confirm
64 the requested payment method is permitted. Requests for unauthorised
65 methods are rejected with a `403` response.
66 </Step>
67 </Steps>
68
69 ---
70
71 ## Vector Item Fields
72
73 Every item stored in any index shares the same shape. These fields are managed by ProcureNet — you reference them only when reading diagnostic output or support responses.
74
75 <ResponseField name="id" type="string" required>
76 A unique identifier for this vector item within its index.
77 </ResponseField>
78
79 <ResponseField name="payload" type="object" required>
80 Metadata attached to the vector item. Shape varies by index type —
81 for example, `wcs_profiles` payloads contain buyer signal fields, while
82 `contract_rules` payloads contain rule predicates.
83 </ResponseField>
84
85 <ResponseField name="updatedAt" type="string (ISO 8601)" required>
86 Timestamp of the last write to this item.
87 </ResponseField>
88
89 <ResponseField name="ttlSeconds" type="integer">
90 Optional expiry in seconds from `updatedAt`. When set, the item is
91 automatically evicted from the index once the TTL elapses. Commonly applied
92 to `wcs_profiles` items for short-lived anonymous sessions.
93 </ResponseField>
94
95 ---
96
97 <Note>
98 The vector store is managed internally by OpenClaw agents — you do not write vectors directly. Buyer data you pass to `POST /api/v7/orchestrate` is used to populate and query profiles automatically.
99 </Note>
100
101 <Tip>
102 If buyer lookups are returning `anonymous` mode unexpectedly, ensure you are passing all four identity signals — `customerId`, `email`, `phone`, and `deviceId` — in the `hints` object of your orchestration request. Missing signals reduce the Wallet Confidence Score and may drop the session below the `resolved` threshold of 100 points.
103 </Tip>