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 — the network you furnish into (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_identity_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 and records:
Response
Two fields scope the furnish:
  • network_id — the network you’re furnishing into. The certificate is written straight into it.
  • application_date — when the consumer applied. Required.
See How furnishing works for every channel, and Furnishing policies for how governors map file records into the network.
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 — the JSONL format, record types, and per-record results are covered in JSONL files.

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 application_date, or leaving an identity field out of consumer_consent_event_identity.

Next steps

Query a product

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

How furnishing works

Channels, network routing, and what happens after ingest.

SFTP getting started

Automated, recurring bulk ingestion.

Why consent is needed

The permission layer behind every read.