Skip to main content
Furnishing contributes data about a consumer or business into a network. In this guide you’ll record a consumer’s consent, then furnish KYC certificate data for them. Furnishing is also how you earn entitlement — once you’ve contributed data about a consumer, you can read that consumer’s data back on future queries.

Prerequisites

Before you start, you need:
  • Network membership with the furnisher role — arranged with your SOLO account manager (see Joining a network).
  • A bearer token (SDK token) exported as SOLO_TOKEN. See Authentication.
  • Your network_id, plus the subnetwork name you furnish under (many setups use a single default subnetwork — ask your account manager if unsure).
1

Record the consumer's consent

Create a consent record with the consumer’s identity, attesting that you gathered their permission before contributing their data:
Response
All six identity fields are required. If you already know the consumer’s UUID (for example from an entity search), pass it as the optional consumer_id to link the consent to that existing profile.
did_gather_consent_from_consumer_prior is an attestation, not a flag. Only set it to true if you have actually obtained the consumer’s permission — the API rejects the request with a 400 otherwise.
You can re-fetch the consent at any time — the response body is identical to the create response:
2

Build your records

Each furnish record identifies one consumer by their core identity. All four fields are required:
These identifiers tell the network which consumer the data belongs to — the certificate data is associated with that identity. The network matches each record to a consumer (creating one if no match exists) and stores the data under your organization, attributed to you as the furnisher.records is a list, so batch as many consumers as you like into one call:
3

Furnish into the network

Call the product’s furnish endpoint with your network scope, subnetwork, and records:
Response
Three fields route the furnish — this is subnetwork routing:
  • network_id — the network you’re furnishing into.
  • subnetwork_name — the subnetwork (partition) within that network that separates your submissions from other furnishers’.
  • application_date — the date the data applies to.
Together they resolve the right furnishing policy automatically; you never pass a policy yourself. See How furnishing works for the resolution rules and Furnishing policies for how governors configure them.
4

Confirm the consumer is visible

The furnished consumer now appears in network-scoped entity search:
A 200 with a matching record confirms the furnish landed. You’ve also earned entitlement to this consumer’s data on future queries.

Inspect the result

Consent response (step 1): Furnish response (step 3):
Identity fields on a consent are immutable — a consent record is an audit artifact of who consented and when. To consent with different identity data, create a new consent record. scope, expires_at, and consented_fields are the only updatable attributes.
Furnishing contributes data about a person, and the consent record is the audit artifact proving they agreed: who consented, when, and through which identity. Creating it before you furnish keeps your contribution defensible, and the same consent_id is what you’ll pass when you later query this consumer back — one consent covers both sides of your participation while it remains valid. The full model, including field access grants and expiry, is covered in Consent.

Furnishing at scale

A JSON furnish accepts multiple records per call, which covers most integration patterns. For recurring volume:
  • SFTP ingestion — drop CSV files on a schedule and let the platform ingest them automatically. Start with SFTP getting started.
  • Bulk file workflows — formats, templates, and validation behavior are covered in File upload.

Troubleshooting

Your bearer token is missing, malformed, or expired. Re-export SOLO_TOKEN with a fresh token from your SOLO account manager. See Authentication.
Your token is valid and the network exists, but your membership doesn’t carry the furnisher role. Roles are arranged with your SOLO account manager — see Network roles.
A required field is missing or the wrong type. The detail string names the first failing field as location -> field: message — common culprits are omitting subnetwork_name or application_date, or leaving an identity field out of consumer_consent_identity.

Next steps

Query a product

Reuse the consent_id and read this consumer’s data back.

How furnishing works

Subnetwork routing and policy resolution in depth.

SFTP getting started

Automated, recurring bulk ingestion.

Why consent is needed

The permission layer behind every read.