{
	"info": {
		"name": "Kamoa Identity API (stub)",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"description": "Resolves a Congolese MSISDN to the identity attributes the mobile operator holds, so a platform can prefill an onboarding form instead of asking the citizen to key in and prove every attribute.\n\nTwo endpoints. `/v1/identity/lookup` returns the attributes themselves; `/v1/identity/match-score` returns how confidently the number maps to a real, stable identity, without disclosing the record. Score first when you only need to decide whether to trust the number — it discloses no personal data.\n\n**This is a stub.** Responses come from a fixed catalogue of reserved test numbers, not from live operator data — the contract, the authentication, the validation and the error catalogue are real; the identities are fictional. Every reserved number and what it returns is on the test-numbers page.\n\nOne folder per endpoint, one request per reserved test number, targeting the `{{baseUrl}}` variable. Import the environment file for your target stage (`internal.postman_environment.json`) and set `token` to the bearer token issued to you. `openapi.json` stays the authoritative spec; this collection mirrors it as something you can actually run.\n\nIngress uses standard TLS (HTTPS) — no client certificate is needed or accepted."
	},
	"auth": {
		"type": "bearer",
		"bearer": [
			{
				"key": "token",
				"value": "{{token}}",
				"type": "string"
			}
		]
	},
	"item": [
		{
			"name": "Identity lookup",
			"description": "Resolves an MSISDN to the KYC attributes the operator holds.",
			"item": [
				{
					"name": "242000000101 — Recent SIM, exact match, stable behaviour",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/lookup",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"lookup"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000101\",\n  \"consentReference\": \"otp-example-reference\"\n}"
						},
						"description": "The straightforward case: a recently registered SIM whose record matches on every attribute, used on one device and resident where you would expect. Use it as your baseline for a confident response."
					}
				},
				{
					"name": "242000000202 — Five-year-old SIM, equally exact match — LEGACY_KYC",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/lookup",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"lookup"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000202\",\n  \"consentReference\": \"otp-example-reference\"\n}"
						},
						"description": "Scores identically to 242000000101, but the line was originally registered to a weaker verification standard. Use the pair to check your logic reads onboarding_verification and not the score alone."
					}
				},
				{
					"name": "242000000203 — Same-day SIM — record pending sync",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/lookup",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"lookup"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000203\",\n  \"consentReference\": \"otp-example-reference\"\n}"
						},
						"description": "A line registered too recently to have reached us yet. Tier 2 rather than 3: the record is missing, not contradicted. Returns RECORD_PENDING_SYNC."
					}
				},
				{
					"name": "242000000204 — Genuinely absent from the base",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/lookup",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"lookup"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000204\",\n  \"consentReference\": \"otp-example-reference\"\n}"
						},
						"description": "No operator record exists for this number at all — distinct from one that is merely pending. Worth handling carefully: operator coverage is not universal, so a real deployment meets this often."
					}
				},
				{
					"name": "242000000205 — Name inversion — partial match, mid score",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/lookup",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"lookup"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000205\",\n  \"consentReference\": \"otp-example-reference\"\n}"
						},
						"description": "First and last name supplied the wrong way round. The record still resolves, and name_inversion_detected reports that it happened, so you can accept the match without treating it as exact."
					}
				},
				{
					"name": "242000000206 — DOB mismatch — low score",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/lookup",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"lookup"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000206\",\n  \"consentReference\": \"otp-example-reference\"\n}"
						},
						"description": "Names match, date of birth does not. Use it to check that your thresholds separate a partial match from a confident one."
					}
				},
				{
					"name": "242000000207 — Shared universal ID, high device sharing — tier 3 anomaly",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/lookup",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"lookup"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000207\",\n  \"consentReference\": \"otp-example-reference\"\n}"
						},
						"description": "One identity document associated with several lines, on a heavily shared device. Tier 3 is reserved for anomalies actually observed, like this one — never for evidence that is simply absent."
					}
				},
				{
					"name": "242000000208 — Declared district conflicts with estimated residence",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/lookup",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"lookup"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000208\",\n  \"consentReference\": \"otp-example-reference\"\n}"
						},
						"description": "The district supplied in the request conflicts with where the line is resident overnight. Omit the district and the location fields come back null rather than false — absent, not contradicted."
					}
				},
				{
					"name": "242000000209 — Diaspora shape — location block null, score reduced",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/lookup",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"lookup"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000209\",\n  \"consentReference\": \"otp-example-reference\"\n}"
						},
						"description": "A Congolese number in prolonged use abroad. There is no home tower to compare against, so location_info is null as a whole block and the score is reduced rather than penalised. Check your client reads a null block as unscored rather than as a failure."
					}
				},
				{
					"name": "242000000210 — Large shared-ID cluster — top of the risk curve",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/lookup",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"lookup"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000210\",\n  \"consentReference\": \"otp-example-reference\"\n}"
						},
						"description": "The strongest warning in the catalogue: one identity document behind a large cluster of lines, with device and location evidence all disagreeing. Score 8, tier 3. If any single response should stop your flow, it is this one."
					}
				},
				{
					"name": "242000000211 — PARTIAL — record found, mandatory attributes missing",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/lookup",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"lookup"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000211\",\n  \"consentReference\": \"otp-example-reference\"\n}"
						},
						"description": "A record exists but is incomplete — date of birth and ID document are both absent. Every attribute is nullable for exactly this reason, so treat nulls as expected rather than exceptional."
					}
				},
				{
					"name": "242000000212 — Airtel record — exercises the operator enum",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/lookup",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"lookup"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000212\",\n  \"consentReference\": \"otp-example-reference\"\n}"
						},
						"description": "Returns AIRTEL in the operator field, so you can exercise both values of the enum rather than only the one most fixtures use."
					}
				},
				{
					"name": "242000000429 — Forced 429 — rate limited",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/lookup",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"lookup"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000429\",\n  \"consentReference\": \"otp-example-reference\"\n}"
						},
						"description": "Always returns 429 with a Retry-After header, so you can exercise your retry and backoff path on demand instead of waiting to be rate limited for real."
					}
				},
				{
					"name": "242000000500 — Forced 500 — error-path test",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/lookup",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"lookup"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000500\",\n  \"consentReference\": \"otp-example-reference\"\n}"
						},
						"description": "Always returns 500. Use it to confirm your error handling, and to see the error shape every failure on this API uses."
					}
				},
				{
					"name": "242000000503 — Forced 503 — upstream unavailable",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/lookup",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"lookup"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000503\",\n  \"consentReference\": \"otp-example-reference\"\n}"
						},
						"description": "Always returns 503 UPSTREAM_UNAVAILABLE. It is in the published error catalogue, so it is triggerable on demand rather than only during a real outage."
					}
				},
				{
					"name": "242000000504 — Slow response past the partner timeout",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/lookup",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"lookup"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000504\",\n  \"consentReference\": \"otp-example-reference\"\n}"
						},
						"description": "Deliberately does not respond for about 30 seconds, so your own client timeout fires and your fallback path runs. The point is the timeout, not the body."
					}
				}
			]
		},
		{
			"name": "Match score",
			"description": "Scores how confidently an MSISDN maps to a real, stable identity.",
			"item": [
				{
					"name": "242000000101 — Recent SIM, exact match, stable behaviour",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/match-score",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"match-score"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000101\",\n  \"consentObtained\": true\n}"
						},
						"description": "The straightforward case: a recently registered SIM whose record matches on every attribute, used on one device and resident where you would expect. Use it as your baseline for a confident response."
					}
				},
				{
					"name": "242000000202 — Five-year-old SIM, equally exact match — LEGACY_KYC",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/match-score",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"match-score"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000202\",\n  \"consentObtained\": true\n}"
						},
						"description": "Scores identically to 242000000101, but the line was originally registered to a weaker verification standard. Use the pair to check your logic reads onboarding_verification and not the score alone."
					}
				},
				{
					"name": "242000000203 — Same-day SIM — record pending sync",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/match-score",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"match-score"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000203\",\n  \"consentObtained\": true\n}"
						},
						"description": "A line registered too recently to have reached us yet. Tier 2 rather than 3: the record is missing, not contradicted. Returns RECORD_PENDING_SYNC."
					}
				},
				{
					"name": "242000000204 — Genuinely absent from the base",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/match-score",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"match-score"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000204\",\n  \"consentObtained\": true\n}"
						},
						"description": "No operator record exists for this number at all — distinct from one that is merely pending. Worth handling carefully: operator coverage is not universal, so a real deployment meets this often."
					}
				},
				{
					"name": "242000000205 — Name inversion — partial match, mid score",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/match-score",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"match-score"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000205\",\n  \"consentObtained\": true\n}"
						},
						"description": "First and last name supplied the wrong way round. The record still resolves, and name_inversion_detected reports that it happened, so you can accept the match without treating it as exact."
					}
				},
				{
					"name": "242000000206 — DOB mismatch — low score",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/match-score",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"match-score"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000206\",\n  \"consentObtained\": true\n}"
						},
						"description": "Names match, date of birth does not. Use it to check that your thresholds separate a partial match from a confident one."
					}
				},
				{
					"name": "242000000207 — Shared universal ID, high device sharing — tier 3 anomaly",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/match-score",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"match-score"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000207\",\n  \"consentObtained\": true\n}"
						},
						"description": "One identity document associated with several lines, on a heavily shared device. Tier 3 is reserved for anomalies actually observed, like this one — never for evidence that is simply absent."
					}
				},
				{
					"name": "242000000208 — Declared district conflicts with estimated residence",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/match-score",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"match-score"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000208\",\n  \"consentObtained\": true\n}"
						},
						"description": "The district supplied in the request conflicts with where the line is resident overnight. Omit the district and the location fields come back null rather than false — absent, not contradicted."
					}
				},
				{
					"name": "242000000209 — Diaspora shape — location block null, score reduced",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/match-score",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"match-score"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000209\",\n  \"consentObtained\": true\n}"
						},
						"description": "A Congolese number in prolonged use abroad. There is no home tower to compare against, so location_info is null as a whole block and the score is reduced rather than penalised. Check your client reads a null block as unscored rather than as a failure."
					}
				},
				{
					"name": "242000000210 — Large shared-ID cluster — top of the risk curve",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/match-score",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"match-score"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000210\",\n  \"consentObtained\": true\n}"
						},
						"description": "The strongest warning in the catalogue: one identity document behind a large cluster of lines, with device and location evidence all disagreeing. Score 8, tier 3. If any single response should stop your flow, it is this one."
					}
				},
				{
					"name": "242000000429 — Forced 429 — rate limited",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/match-score",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"match-score"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000429\",\n  \"consentObtained\": true\n}"
						},
						"description": "Always returns 429 with a Retry-After header, so you can exercise your retry and backoff path on demand instead of waiting to be rate limited for real."
					}
				},
				{
					"name": "242000000500 — Forced 500 — error-path test",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/match-score",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"match-score"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000500\",\n  \"consentObtained\": true\n}"
						},
						"description": "Always returns 500. Use it to confirm your error handling, and to see the error shape every failure on this API uses."
					}
				},
				{
					"name": "242000000503 — Forced 503 — upstream unavailable",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/match-score",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"match-score"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000503\",\n  \"consentObtained\": true\n}"
						},
						"description": "Always returns 503 UPSTREAM_UNAVAILABLE. It is in the published error catalogue, so it is triggerable on demand rather than only during a real outage."
					}
				},
				{
					"name": "242000000504 — Slow response past the partner timeout",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/v1/identity/match-score",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"v1",
								"identity",
								"match-score"
							]
						},
						"body": {
							"mode": "raw",
							"options": {
								"raw": {
									"language": "json"
								}
							},
							"raw": "{\n  \"msisdn\": \"+242000000504\",\n  \"consentObtained\": true\n}"
						},
						"description": "Deliberately does not respond for about 30 seconds, so your own client timeout fires and your fallback path runs. The point is the timeout, not the body."
					}
				}
			]
		}
	]
}
