curl --request POST \
--url https://aropay.aro.media/api/v1/transfer/letter/sweep \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://aropay.aro.media/api/v1/transfer/letter/sweep', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://aropay.aro.media/api/v1/transfer/letter/sweep"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text){
"ok": true,
"data": {
"scanned": 7,
"expired": 2,
"refundsSubmitted": 2,
"refundsFailed": 0,
"remaining": 0,
"vault": {
"balance": "12500.00",
"inFlight": "4350.00",
"solvent": true
}
}
}{
"ok": false,
"error": {
"code": "unauthorized",
"message": "Invalid sweep credentials."
}
}{
"ok": false,
"error": {
"code": "not_found",
"message": "Resource not found."
}
}{
"ok": false,
"error": {
"code": "sweep_in_progress",
"message": "A sweep is already in progress."
}
}{
"ok": false,
"error": {
"code": "internal_error",
"message": "An unexpected error occurred."
}
}Sweep expired letters
Operator-only. Expiry and refund sweep for schedulers, meant to run
every 5 minutes: expires claimable letters whose expiresAt has
passed, submits their refunds, retries refunds that failed, and probes
stale receipts. Also reports vault solvency
(vault.balance vs. vault.inFlight); vault.balance and
vault.solvent are null when the relayer could not decrypt the
operator balance during the run.
Authenticated only by Authorization: Bearer <AROPAY_MAIL_SWEEP_SECRET>;
API keys and sessions are never accepted. When the deployment has no
sweep secret (or one shorter than 32 characters) the route answers
404 not_found; a wrong secret is 401 unauthorized. Overlapping runs
return 409 sweep_in_progress.
curl -X POST "$BASE/transfer/letter/sweep" \
-H "Authorization: Bearer $AROPAY_MAIL_SWEEP_SECRET"
curl --request POST \
--url https://aropay.aro.media/api/v1/transfer/letter/sweep \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://aropay.aro.media/api/v1/transfer/letter/sweep', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://aropay.aro.media/api/v1/transfer/letter/sweep"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text){
"ok": true,
"data": {
"scanned": 7,
"expired": 2,
"refundsSubmitted": 2,
"refundsFailed": 0,
"remaining": 0,
"vault": {
"balance": "12500.00",
"inFlight": "4350.00",
"solvent": true
}
}
}{
"ok": false,
"error": {
"code": "unauthorized",
"message": "Invalid sweep credentials."
}
}{
"ok": false,
"error": {
"code": "not_found",
"message": "Resource not found."
}
}{
"ok": false,
"error": {
"code": "sweep_in_progress",
"message": "A sweep is already in progress."
}
}{
"ok": false,
"error": {
"code": "internal_error",
"message": "An unexpected error occurred."
}
}Authorizations
Operator-only shared secret (AROPAY_MAIL_SWEEP_SECRET, at least 32
characters) presented as Authorization: Bearer <secret> by the
scheduler that runs POST /transfer/letter/sweep. Not a user
credential: API keys and sessions are never accepted there.