These providers already run tapestry for their retailers, answering the analytics and AI question their merchants keep asking, with more onboarding now.
tapestry enables retailers to unlock their data and access these benefits, we're proud to facilitate this for our customers.
Emily Adams · GM, Surefire
Why build on tapestry®
Three reasons to integrate.
Real-time POS sync
Stream transactions, returns, voids and reference data into tapestry, and Hank signals flow straight back to your POS UI. One connection, no core changes.
One connection, no core changes
Real-time or daily, your cadence
Schema versioning that won't break you
SDK in your stack
First-class SDKs for Node, Python, Go, Java and .NET, plus a hosted sandbox seeded with sample retail data, so you can build end to end before a single live store touches the network.
Five SDKs, one per stack
Hosted sandbox, seeded data
OpenAPI and Postman collection
No AI to build or run
tapestry maintains the intelligence layer. There is no model to train, no inference to run and no data science team to hire. You send data in, your retailers get analytics and Hank back, and it gets sharper as the network grows.
No model training on your side
Nothing to host or maintain
It improves as the network grows
The integration surface
Built for the surface a real POS needs.
Not just transactions. The full operating context tapestry needs to make Hank useful inside your platform, over REST, gRPC or webhooks, with idempotency and replay built in.
Transactions API
POS · returns · voids · refunds
Webhooks & streams
Hank signals · reorder cues
Reference data
SKUs · departments · stores
OAuth 2.1
PKCE · scoped tokens · key rotation
Governance
Aggregation · anonymity · audit
SDK quickstart
Your first transaction. A few lines.
One library, every stack. Authentication, retries, idempotency and batching are handled for you.
Install - a single dependency, no native bindings
Authenticate - bearer key or OAuth 2.1 client credentials
Send - one method covers single, batch and streamed transactions
Listen - subscribe to Hank signals back to your POS UI
Nodenpm i @tapestry/sdk
Pythonpip install tapestry
Gogo get tapestry.ai/sdk
Javaai.tapestry:sdk
.NETdotnet add tapestry.Sdk
Authorisation key supplied upon request.
import { tapestry } from'@tapestry/sdk';
const tap = new tapestry({ apiKey: process.env.TAPESTRY_KEY });
await tap.transactions.send({
storeId:'rdg-brighton-001',
txTs:new Date(),
lines: [{ sku:'WSTAR-BTRPATS-500', qty:1, net:12.49 }],
tender:'EFTPOS'
});
// Listen for Hank signals to surface in your POS UI
tap.hank.on('signal', (s) => ui.notify(s.title, s.detail));
from tapestry import tapestry
tap = tapestry(api_key=os.environ["TAPESTRY_KEY"])
tap.transactions.send(
store_id="rdg-brighton-001",
tx_ts=datetime.utcnow(),
lines=[{"sku":"WSTAR-BTRPATS-500", "qty":1, "net":12.49}],
tender="EFTPOS",
)
# Listen for Hank signalsfor signal in tap.hank.stream():
ui.notify(signal.title, signal.detail)
tap := tapestry.New(os.Getenv("TAPESTRY_KEY"))
_, err := tap.Transactions.Send(ctx, &tapestry.Transaction{
StoreID:"rdg-brighton-001",
TxTs: time.Now(),
Lines: []tapestry.Line{{SKU:"WSTAR-BTRPATS-500", Qty:1, Net:12.49}},
Tender:"EFTPOS",
})
for sig :=range tap.Hank.Stream(ctx) {
ui.Notify(sig.Title, sig.Detail)
}
var tap = new tapestry(Environment.GetEnvironmentVariable("TAPESTRY_KEY"));
await tap.Transactions.SendAsync(new Transaction {
StoreId = "rdg-brighton-001",
TxTs = DateTime.UtcNow,
Lines = new[] { new Line("WSTAR-BTRPATS-500", 1, 12.49m) },
Tender = "EFTPOS"
});
await foreach (var sig in tap.Hank.StreamAsync())
ui.Notify(sig.Title, sig.Detail);
Integration path
From application to live store.
A focused onboarding designed with partners who have shipped this before.
01
Apply
Submit your POS profile. We set you up with sandbox credentials and a kickoff call.
02
Integrate
Build against the sandbox with the SDK in your language. Our solutions team pairs with yours on tricky cases.
03
Certify
Pass the certification suite: schema, performance, idempotency and replay. Land in the partner directory.
04
Go live
Pilot with one retailer, switch on revenue share, then scale across your network at your pace.
Commercials
A model that pays you to grow the network.
Revenue share on retailer subscriptions
A recurring share of every retailer subscription sold through your network. Paid quarterly, no clawbacks, attribution down to the retailer.
Revenue share on supplier data sales
A second share when suppliers buy access to data that originates on your network.
Pooled co-marketing
A co-marketing budget per certified partner for joint events, content, enablement and case studies. A quarterly plan you sign off.
Named technical PM
A named contact through certification and after go-live.
No exclusivity
You keep your retailers and your data, and can integrate with anyone else. We earn our place quarter on quarter.
No setup fee
We invest in certification, you invest engineering time, both sides earn from live retailers.
Join us on a partnership call and we'll walk you through the full commercial structure.
Trust and security
Built for the people who sign off the integration.
We take data in, we never write back, and nothing leaves the tenant without consent.