Offline collections
- POST
/collection/{reference}/offline/uploadUpload a collection two devices agreed while offline - GET
/collector/{reference}/offline/ceilingRead a collector's offline ceiling and remaining headroom
POST Upload a collection two devices agreed while offline
POST /collection/{reference}/offline/upload
Both signatures are checked before anything is recorded, and the collection reference is inside the payer's signature - so a signed pair cannot be re-pointed at a different request, which is the whole risk of a rail where the platform was not present. The receipt is value-dated at the moment the payer signed, not at the moment it reached us: everything downstream - expiry, the rate card version, the settlement window, the statement period - reads that date, which is the single rule that makes this rail fair to a payer who had no connectivity. Uploading the same pair twice produces one receipt.
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: UploadOfflineCollectionRequest · Response: GenericResponseOfflineUploadResponse
curl -X POST "https://api.bridgemoni.com/collection/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/offline/upload" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"senderPayload": "string",
"senderSignature": "string",
"senderPublicKey": "string",
"senderDeviceId": "string",
"receiverPayload": "string",
"receiverSignature": "string",
"receiverPublicKey": "string",
"receiverDeviceId": "string",
"uploadedByRole": "string"
}' {
"senderPayload": "string",
"senderSignature": "string",
"senderPublicKey": "string",
"senderDeviceId": "string",
"receiverPayload": "string",
"receiverSignature": "string",
"receiverPublicKey": "string",
"receiverDeviceId": "string",
"uploadedByRole": "string"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"receiptReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"requestReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"amount": "string",
"currencyCode": "string",
"signedAt": "string",
"uploadedAt": "string",
"uploadLagSeconds": 0,
"alreadyUploaded": true
},
"description": "Offline collection uploaded successfully"
} Responses
| Status | When |
|---|---|
200 | Offline collection uploaded successfully |
GET Read a collector's offline ceiling and remaining headroom
GET /collector/{reference}/offline/ceiling
Derived from what the collector actually settles over a trailing window, never accumulated in a column - so there is nothing to drift, nothing to reconcile and nothing an attacker can corrupt by replaying an upload. Money taken offline is a liability held on a handset until somebody uploads it, and this is what bounds it. The figure is stamped with the time it was computed, so a device holding a stale one refuses new offline collections rather than trusting it.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Query parameters
| Name | Default |
|---|---|
currencyCode | Optional |
Example
Response: GenericResponseOfflineCeilingResponse
curl -X GET "https://api.bridgemoni.com/collector/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/offline/ceiling?currencyCode=value" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"collectorReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"currencyCode": "string",
"ceiling": "string",
"held": "string",
"headroom": "string",
"computedAt": "string"
},
"description": "Offline ceiling retrieved successfully"
} Responses
| Status | When |
|---|---|
200 | Offline ceiling retrieved successfully |
Generated from the OpenAPI document. Branch on the HTTP status: there is no machine-readable error code on the wire. Errors