Escrow attestation
- POST
/collection/escrow/{reference}/gate/{gateReference}/request-attestationAsk a registered attestor to attest a gate - POST
/collector/{reference}/escrow/attestorRegister a third party who may attest this collector's gates - GET
/collector/{reference}/escrow/attestorsList this collector's attestors - POST
/pay/escrow/attest/{token}Attest a gate from the link
POST Ask a registered attestor to attest a gate
POST /collection/escrow/{reference}/gate/{gateReference}/request-attestation
Sends the attestor a single-use link on the contact recorded when they were enrolled. The collector cannot attest on the attestor's behalf, which is the whole point: an attestation the collector could manufacture is not evidence of anything.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
gateReference |
Example
Request body: RequestAttestationRequest · Response: GenericResponseAttestationRequestedResponse
curl -X POST "https://api.bridgemoni.com/collection/escrow/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/gate/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/request-attestation" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"attestorReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e"
}' {
"attestorReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e"
} {
"data": {
"gateReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"attestorReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"sent": true
},
"description": "Attestation requested successfully"
} Responses
| Status | When |
|---|---|
200 | Attestation requested successfully |
POST Register a third party who may attest this collector's gates
POST /collector/{reference}/escrow/attestor
An attestation carries weight only because of who gave it, so attestors are enrolled in advance rather than named at the moment of attesting. A newly registered attestor starts as COLLECTOR_AFFILIATED and earns nothing: a collector cannot certify the independence of somebody it nominated, so only an operator can move it.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
Example
Request body: RegisterAttestorRequest · Response: GenericResponseAttestorResponse
curl -X POST "https://api.bridgemoni.com/collector/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/escrow/attestor" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"displayName": "string",
"contact": "string",
"channel": "string"
}' {
"displayName": "string",
"contact": "string",
"channel": "string"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"collectorReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"displayName": "string",
"contactChannel": "string",
"affiliation": "string",
"affiliationDecidedAt": "string",
"affiliationReason": "string",
"active": true
},
"description": "Attestor registered successfully"
} Responses
| Status | When |
|---|---|
200 | Attestor registered successfully |
GET List this collector's attestors
GET /collector/{reference}/escrow/attestors
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Example
Response: GenericResponseListAttestorResponse
curl -X GET "https://api.bridgemoni.com/collector/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/escrow/attestors" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"collectorReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"displayName": "string",
"contactChannel": "string",
"affiliation": "string",
"affiliationDecidedAt": "string",
"affiliationReason": "string",
"active": true
}
],
"description": "Attestors retrieved successfully"
} Responses
| Status | When |
|---|---|
200 | Attestors retrieved successfully |
POST Attest a gate from the link
POST /pay/escrow/attest/{token}
The attestor's own act, from their own link, recorded with the affiliation they held at that moment - not the one they hold when somebody later reads the file. A gate the payer has already objected to is disputed and an attestation will not release it; the third party decides whether the condition was met, not whether the payer's objection was reasonable.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
User-Agent | |
Content-Type | application/json |
Path parameters
| Name |
|---|
token |
Example
Request body: SubmitAttestationRequest · Response: GenericResponseAttestationResponse
curl -X POST "https://api.bridgemoni.com/pay/escrow/attest/value" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"statement": "string",
"evidenceReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e"
}' {
"statement": "string",
"evidenceReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"attestationType": "IDENTITY",
"attestedResource": "PERSON",
"attestedRowReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"attestorUserReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"attestorName": {
"name": "string"
},
"attestorRole": "TRADITIONAL_RULER",
"attestorInstitution": {
"name": "string"
},
"attestorInstitutionReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"attestorIal": "1",
"statement": "string",
"expiresDateTime": "2026-09-25T10:00:00Z",
"evidenceDocumentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"signatureReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"attestedDateTime": "2026-09-25T10:00:00Z",
"withdrawnDateTime": "2026-09-25T10:00:00Z",
"withdrawalReason": "string",
"live": "true",
"assuranceGrade": "SELF"
},
"description": "Attestation recorded successfully"
} Responses
| Status | When |
|---|---|
200 | Attestation recorded successfully |
Generated from the OpenAPI document. Branch on the HTTP status: there is no machine-readable error code on the wire. Errors