"Transfers API skill. Use when working with Transfers for grants, transactions, transfers. Covers 9 endpoints."
Resources
1Install
npx skillscat add lap-platform/claude-marketplace/transfers-api Install via the SkillsCat registry.
SKILL.md
Transfers API
API version: 3
Auth
ApiKey X-API-Key in header | Bearer basic | ApiKey clientKey in query
Base URL
https://balanceplatform-api-test.adyen.com/btl/v3
Setup
- Set Authorization header with your Bearer token
- GET /grants -- verify access
- POST /grants -- create first grants
Endpoints
9 endpoints across 3 groups. See references/api-spec.lap for full details.
grants
| Method | Path | Description |
|---|---|---|
| GET | /grants | Get a capital account |
| POST | /grants | Request a grant payout |
| GET | /grants/{id} | Get grant reference details |
transactions
| Method | Path | Description |
|---|---|---|
| GET | /transactions | Get all transactions |
| GET | /transactions/{id} | Get a transaction |
transfers
| Method | Path | Description |
|---|---|---|
| POST | /transfers | Transfer funds |
| POST | /transfers/approve | Approve initiated transfers |
| POST | /transfers/cancel | Cancel initiated transfers |
| POST | /transfers/{transferId}/returns | Return a transfer |
Enhanced Skill Content
Question Mapping
- "How do I send money to another balance account?" -> POST /transfers
- "Show me all transactions from last week" -> GET /transactions
- "What grants are available for this account holder?" -> GET /grants
- "How do I apply for a grant?" -> POST /grants
- "What is the status of grant {id}?" -> GET /grants/{id}
- "Can I cancel a pending transfer?" -> POST /transfers/cancel
- "How do I return funds from a completed transfer?" -> POST /transfers/{transferId}/returns
- "How do I approve a transfer that requires review?" -> POST /transfers/approve
- "Show me the details of transaction {id}" -> GET /transactions/{id}
- "List all transactions for a specific balance account" -> GET /transactions (with balanceAccountId filter)
- "How do I schedule a transfer for a future date?" -> POST /transfers (with executionDate)
- "What is the repayment schedule on my grant?" -> GET /grants/{id}
- "How do I make an instant bank transfer?" -> POST /transfers (with priority: instant)
- "How do I paginate through a large transaction list?" -> GET /transactions (with cursor and limit)
Response Tips
- Grants:
POST /grantsreturns nestedbalances(fee/principal/total) andrepayment.termwith estimated vs maximum days -- always check both.GET /grantsreturns a flatgrantsarray of maps. - Transactions: Paginated via
_links.next.hrefand_links.prev.hrefcursors -- followhrefdirectly rather than constructing URLs. Theamount.valueis in minor units (cents). NotecreatedAtvscreationDateandbookingDatevsvalueDate-- they represent different stages of processing. - Transfers:
POST /transfersreturns 202 Accepted (not 200) -- the transfer is queued, not complete. Checkstatusfield for actual state. Approve/cancel endpoints return empty 200 bodies on success. - Errors: All endpoints share 401/403/500. Grants and transfers additionally return 400/404/422. A 422 typically means validation failure -- inspect the response body for field-level details.
Anomaly Flags
- 202 vs 200 on transfer creation: Surface that the transfer is asynchronous and not yet settled. Prompt the user to check status or set up a webhook.
- Grant repayment threshold: When
repayment.threshold.amountis present, flag that automatic repayment triggers exist and explain the basis points rate. - Missing Idempotency-Key on writes: If the user omits
Idempotency-Keyon POST /grants, POST /transfers, or return/approve/cancel calls, warn about potential duplicate operations on retry. - Transfer review required: When a transfer response includes
review.numberOfApprovalsRequired > 0, proactively surface that the transfer is pending approval and needs a follow-upPOST /transfers/approve. - Transaction date range required:
GET /transactionsrequires bothcreatedSinceandcreatedUntil-- flag if the user tries to list transactions without a time window. - Unexpected 403: Could indicate the API credential lacks permission for the specific balance platform or account holder -- suggest checking API credential scope in the Adyen dashboard.
Playbook
1. Send Money to a Bank Account
- Prepare the transfer payload with
amount(currency + value in minor units),category: "bank", andcounterparty.bankAccountdetails - Set an
Idempotency-Keyheader to prevent duplicates - Call
POST /transfers-- expect a 202 response - Check the
statusfield in the response (e.g.,authorised,pending) - If
review.numberOfApprovalsRequiredis present, callPOST /transfers/approvewith thetransferIdto complete the flow
2. Apply for and Monitor a Grant
- Call
GET /grantswithcounterpartyAccountHolderIdto see available grants and retrieve thegrantOfferId - Call
POST /grantswithgrantAccountIdandgrantOfferId(includeIdempotency-Key) - Note the returned
id,status, andrepaymentterms (basis points, estimated days, threshold) - Periodically call
GET /grants/{id}to monitorbalances(principal remaining, fees accrued, total outstanding)
3. Paginate Through Transaction History
- Call
GET /transactionswithcreatedSinceandcreatedUntilfor your date range, andlimitfor page size (e.g., 50) - Process the
dataarray in the response - If
_links.next.hrefexists, use its value as the URL for the next page (it includes the cursor) - Repeat until
_links.nextis absent
4. Return Funds from a Transfer
- Identify the
transferIdof the original completed transfer - Call
POST /transfers/{transferId}/returnswithamount(currency + value) -- partial returns are supported - Include a
referencefor reconciliation and anIdempotency-Keyfor safety - Check the response
statusto confirm the return was accepted
5. Bulk Approve or Cancel Pending Transfers
- Collect the
idvalues of transfers in a reviewable/pending state - To approve: call
POST /transfers/approvewithtransferIdsarray (includeIdempotency-Key) - To cancel: call
POST /transfers/cancelwithtransferIdsarray (includeIdempotency-Key) - Both endpoints return 200 on success with no body -- confirm by fetching individual transfer details if needed
Response Tips
- Check response schemas in references/api-spec.lap for field details
- List endpoints may support pagination; check for limit, offset, or cursor params
- Create/update endpoints typically return the created/updated object
References
- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas
Generated from the official API spec by LAP