[{"data":1,"prerenderedAt":343},["ShallowReactive",2],{"navigation_docs":3,"-guides-connecting-a-rail":183,"-guides-connecting-a-rail-surround":338},[4,25,60,81,153,168],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting started",false,"\u002Fgetting-started","1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F2.quickstart","i-lucide-zap",{"title":21,"path":22,"stem":23,"icon":24},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F3.installation","i-lucide-server",{"title":26,"icon":6,"path":27,"stem":28,"children":29,"page":6},"Concepts","\u002Fconcepts","2.concepts",[30,35,40,45,50,55],{"title":31,"path":32,"stem":33,"icon":34},"How AML works","\u002Fconcepts\u002Fhow-aml-works","2.concepts\u002F1.how-aml-works","i-lucide-book-open",{"title":36,"path":37,"stem":38,"icon":39},"Events and decisions","\u002Fconcepts\u002Fevents-and-decisions","2.concepts\u002F2.events-and-decisions","i-lucide-activity",{"title":41,"path":42,"stem":43,"icon":44},"Rules","\u002Fconcepts\u002Frules","2.concepts\u002F3.rules","i-lucide-scale",{"title":46,"path":47,"stem":48,"icon":49},"Alerts, cases and reporting","\u002Fconcepts\u002Falerts-cases-reporting","2.concepts\u002F4.alerts-cases-reporting","i-lucide-folder-search",{"title":51,"path":52,"stem":53,"icon":54},"Entities and the graph","\u002Fconcepts\u002Fentities-and-graph","2.concepts\u002F5.entities-and-graph","i-lucide-network",{"title":56,"path":57,"stem":58,"icon":59},"Audit log","\u002Fconcepts\u002Faudit-log","2.concepts\u002F6.audit-log","i-lucide-scroll-text",{"title":61,"icon":6,"path":62,"stem":63,"children":64,"page":6},"Guides","\u002Fguides","3.guides",[65,70,75],{"title":66,"path":67,"stem":68,"icon":69},"Guides by role","\u002Fguides\u002Fby-role","3.guides\u002F1.by-role","i-lucide-users",{"title":71,"path":72,"stem":73,"icon":74},"Integration plan","\u002Fguides\u002Fintegration-plan","3.guides\u002F2.integration-plan","i-lucide-list-checks",{"title":76,"path":77,"stem":78,"icon":79,"badge":80},"Connecting a rail","\u002Fguides\u002Fconnecting-a-rail","3.guides\u002F3.connecting-a-rail","i-lucide-plug","Coming soon",{"title":82,"icon":6,"path":83,"stem":84,"children":85,"page":6},"API reference","\u002Fapi","4.api",[86,91,96,101,106,111,116,121,126,129,134,139,144,149],{"title":87,"path":88,"stem":89,"icon":90},"Authentication","\u002Fapi\u002Fauthentication","4.api\u002F01.authentication","i-lucide-key-round",{"title":92,"path":93,"stem":94,"icon":95},"Errors","\u002Fapi\u002Ferrors","4.api\u002F02.errors","i-lucide-circle-alert",{"title":97,"path":98,"stem":99,"icon":100},"Idempotency","\u002Fapi\u002Fidempotency","4.api\u002F03.idempotency","i-lucide-repeat",{"title":102,"path":103,"stem":104,"icon":105},"Health","\u002Fapi\u002Fhealth","4.api\u002F04.health","i-lucide-heart-pulse",{"title":107,"path":108,"stem":109,"icon":110},"Entities","\u002Fapi\u002Fentities","4.api\u002F05.entities","i-lucide-user-round",{"title":112,"path":113,"stem":114,"icon":115},"Events","\u002Fapi\u002Fevents","4.api\u002F06.events","i-lucide-send",{"title":117,"path":118,"stem":119,"icon":120},"Decisions","\u002Fapi\u002Fdecisions","4.api\u002F07.decisions","i-lucide-gavel",{"title":122,"path":123,"stem":124,"icon":125},"Alerts","\u002Fapi\u002Falerts","4.api\u002F08.alerts","i-lucide-bell",{"title":41,"path":127,"stem":128,"icon":44},"\u002Fapi\u002Frules","4.api\u002F09.rules",{"title":130,"path":131,"stem":132,"icon":133},"Screening","\u002Fapi\u002Fscreening","4.api\u002F10.screening","i-lucide-user-search",{"title":135,"path":136,"stem":137,"icon":138},"API keys","\u002Fapi\u002Fapi-keys","4.api\u002F11.api-keys","i-lucide-key",{"title":140,"path":141,"stem":142,"icon":143},"Overview","\u002Fapi\u002Foverview","4.api\u002F12.overview","i-lucide-layout-dashboard",{"title":145,"path":146,"stem":147,"icon":148,"badge":80},"Webhooks","\u002Fapi\u002Fwebhooks","4.api\u002F13.webhooks","i-lucide-webhook",{"title":80,"path":150,"stem":151,"icon":152,"badge":80},"\u002Fapi\u002Fcoming-soon","4.api\u002F14.coming-soon","i-lucide-clock",{"title":154,"icon":6,"path":155,"stem":156,"children":157,"page":6},"Security and licensing","\u002Fsecurity","5.security",[158,163],{"title":159,"path":160,"stem":161,"icon":162},"Data flows","\u002Fsecurity\u002Fdata-flows","5.security\u002F1.data-flows","i-lucide-shield-check",{"title":164,"path":165,"stem":166,"icon":167,"badge":80},"Licensing and metering","\u002Fsecurity\u002Flicensing","5.security\u002F2.licensing","i-lucide-file-badge",{"title":169,"icon":6,"path":170,"stem":171,"children":172,"page":6},"Reference","\u002Freference","6.reference",[173,178],{"title":174,"path":175,"stem":176,"icon":177},"Glossary","\u002Freference\u002Fglossary","6.reference\u002F1.glossary","i-lucide-book-a",{"title":179,"path":180,"stem":181,"icon":182},"FAQ","\u002Freference\u002Ffaq","6.reference\u002F2.faq","i-lucide-circle-help",{"id":184,"title":76,"body":185,"description":331,"extension":332,"links":333,"meta":334,"navigation":335,"path":77,"seo":336,"stem":78,"__hash__":337},"docs\u002F3.guides\u002F3.connecting-a-rail.md",{"type":186,"value":187,"toc":317},"minimark",[188,208,220,223,228,245,248,252,263,267,273,306,310],[189,190,191,195,196,199,200,207],"warning",{},[192,193,194],"strong",{},"Coming soon."," Connectors and the ",[192,197,198],{},"Connect a rail"," screen aren't built yet. This page describes the planned design. Until then, send events to ",[201,202,203],"a",{"href":113},[204,205,206],"code",{},"POST \u002Fv1\u002Fevents"," from your own services.",[209,210,211,212,215,216,219],"p",{},"A ",[192,213,214],{},"rail"," is a network money moves on: mobile money, cards, bank transfers, instant payments or stablecoins. A ",[192,217,218],{},"connector"," is a ready-made link that pulls or receives events from a rail and turns them into Sentinel events.",[209,221,222],{},"Connectors are an alternative to calling the API yourself. Many teams use both: the API for their own payment service, and connectors for rails where the operator or processor already has an API.",[224,225,227],"h2",{"id":226},"what-connectors-do","What connectors do",[229,230,231,235,238],"ul",{},[232,233,234],"li",{},"Pull or receive transactions from an operator, processor or bank switch, using credentials you hold.",[232,236,237],{},"Normalise them into Sentinel events, with the same fields and idempotency rules as events you send through the API.",[232,239,240,241,244],{},"Report their health on the ",[192,242,243],{},"Connectors"," screen.",[209,246,247],{},"Connectors run inside your install. Their traffic goes from your network to the rail's API over HTTPS. Nothing passes through Somu Labs.",[224,249,251],{"id":250},"before-you-start","Before you start",[229,253,254,257,260],{},[232,255,256],{},"An admin role in the console.",[232,258,259],{},"API credentials from the operator, processor or switch, issued to your company.",[232,261,262],{},"An outbound HTTPS route from your install to the rail's API.",[224,264,266],{"id":265},"setup","Setup",[209,268,269,270,272],{},"The ",[192,271,198],{}," screen walks through four steps.",[274,275,277,282,285,289,292,296,299,303],"steps",{"level":276},"3",[278,279,281],"h3",{"id":280},"choose","Choose",[209,283,284],{},"Pick the rail and provider from the list of available connectors.",[278,286,288],{"id":287},"credentials","Credentials",[209,290,291],{},"Enter the credentials the provider issued you. They're stored in your install and never leave it.",[278,293,295],{"id":294},"test","Test",[209,297,298],{},"Sentinel makes a test call to the provider and shows a sample of the events it would create. Check that amounts, currencies and account IDs look right.",[278,300,302],{"id":301},"go-live-in-shadow-mode-first","Go live, in shadow mode first",[209,304,305],{},"The connector starts sending events. In shadow mode, those events are scored and can raise alerts, but the decisions don't feed back into payments. Watch the alert volumes for a few days, then switch it to live.",[224,307,309],{"id":308},"matching-ids","Matching IDs",[209,311,312,313,316],{},"Rules work per source, so the IDs a connector produces need to match the entities you've sent. If your customers' wallets are identified by phone number at the operator, use the same identifier as the ",[204,314,315],{},"account_id"," when you create the wallet entity.",{"title":318,"searchDepth":319,"depth":319,"links":320},"",2,[321,322,323,330],{"id":226,"depth":319,"text":227},{"id":250,"depth":319,"text":251},{"id":265,"depth":319,"text":266,"children":324},[325,327,328,329],{"id":280,"depth":326,"text":281},3,{"id":287,"depth":326,"text":288},{"id":294,"depth":326,"text":295},{"id":301,"depth":326,"text":302},{"id":308,"depth":319,"text":309},"Use a connector to bring events from a payment rail into Sentinel without writing integration code.","md",null,{},{"icon":79,"badge":80},{"title":76,"description":331},"m0Cdj6L5G84yJixVGsYJ36904a2zoLMJYYghtLCvbYE",[339,341],{"title":71,"path":72,"stem":73,"description":340,"icon":74,"children":-1},"A typical path from a local install to production, and the checklist to finish before go-live.",{"title":87,"path":88,"stem":89,"description":342,"icon":90,"children":-1},"Base URL, API keys, and how to get the first key on a new install.",1792169658428]