curl https://api.openfi.co/v1/debit-pulls \
-H "Authorization: Bearer $OPENFI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"session_key_id": "sk_01HZZ...",
"amount": 12.50,
"reference": "task-4471-api-lookup"
}'
{
"id": "dp_01HA0...",
"status": "settled",
"amount": 12.50,
"remaining_allowance": 37.50,
"settlement": {
"chain": "aptos",
"tx_hash": "0x71ffa..."
}
}
Agentic (recurring pulls)
Create a debit pull
Execute a single pull against an active session key.
POST
/
v1
/
debit-pulls
curl https://api.openfi.co/v1/debit-pulls \
-H "Authorization: Bearer $OPENFI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"session_key_id": "sk_01HZZ...",
"amount": 12.50,
"reference": "task-4471-api-lookup"
}'
{
"id": "dp_01HA0...",
"status": "settled",
"amount": 12.50,
"remaining_allowance": 37.50,
"settlement": {
"chain": "aptos",
"tx_hash": "0x71ffa..."
}
}
This is the endpoint an autonomous agent calls to actually move money: a single execution against an active session key, enforced against the on-chain Allowance State Machine rather than a static approval.
GBP mandates: Variable Recurring Payments are only partially supported across UK banks. A debit pull against a GBP session key may return
422 vrp_unsupported_by_bank if the payer’s bank doesn’t support VRP. In that case, fall back to a user-consented push payment. See Supported Rails.Body Parameters
string
required
The session key authorizing this pull.
number
required
Must be within the session key’s remaining allowance for the current epoch.
string
Free-text reference, useful for reconciling against agent task logs.
Response
string
Debit pull ID, prefixed
dp_.string
pending, settled, or failed.number
Remaining allowance on the session key for the current epoch, after this pull.
curl https://api.openfi.co/v1/debit-pulls \
-H "Authorization: Bearer $OPENFI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"session_key_id": "sk_01HZZ...",
"amount": 12.50,
"reference": "task-4471-api-lookup"
}'
{
"id": "dp_01HA0...",
"status": "settled",
"amount": 12.50,
"remaining_allowance": 37.50,
"settlement": {
"chain": "aptos",
"tx_hash": "0x71ffa..."
}
}
{
"error": {
"type": "invalid_request_error",
"code": "velocity_limit_exceeded",
"message": "Requested amount exceeds remaining allowance (12.00) for the current epoch."
}
}

