Install
$ agentstack add skill-wirexapp-wirex-baas-agent-skills-wirex-baas-transfers ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Wirex BaaS Money Transfers
This skill covers all money transfer capabilities in the Wirex Banking-as-a-Service platform: SEPA transfers (EUR), ACH transfers (USD), Push-to-Card via Visa/Mastercard OCT rails, and recipient management.
Core Pattern: Estimate then Execute
All transfer types in Wirex BaaS follow the estimate-then-execute pattern:
- Estimate: Submit transfer details to get a cost estimate. The response includes an
id(estimation ID) andexpires_attimestamp. - Execute: Submit the transfer using the
estimation_idfrom step 1 (or specify theamountdirectly). The estimation locks in exchange rates and fees.
This two-step process ensures the user sees exact costs before committing to the transfer.
SEPA Transfers (EUR)
SEPA (Single Euro Payments Area) enables EUR bank transfers across 28 European countries.
Prerequisites
- Account must have the SepaAccount capability enabled.
- For third-party transfers: SepaOut3rdParty capability.
- For first-party transfers: SepaOut1stParty capability.
Flow
- Check capability: Verify the account has
SepaAccount(statusActive) in its capabilities list. SEPA bank accounts are auto-provisioned upon user verification — no activation call needed. - Retrieve bank details: Get the IBAN and BIC for the account.
`` GET /api/v1/bank/accounts ``
- Estimate transfer: Calculate fees and exchange rates.
`` POST /api/v2/bank/transfer/estimate ``
- Execute transfer: Send the payment.
`` POST /api/v1/bank/transfer ``
See [references/BANKING.md](references/BANKING.md) for full request/response formats.
ACH Transfers (USD)
> WARNING: ACH recipients require a legal_address field; SEPA does not.
ACH (Automated Clearing House) enables USD bank transfers across 34+ countries.
Prerequisites
- Account must have the AchAccount capability enabled.
- For third-party transfers: AchOut3rdParty capability.
- For first-party transfers: AchOut1stParty capability.
Flow
- Check capability: Verify the account has
AchAccountin its capabilities list. - Activate ACH bank details: Create ACH bank account credentials for the user.
`` POST /api/v1/bank/accounts Body: { "account_type": "Ach" } ``
- Retrieve bank details: Get the account number and routing number.
`` GET /api/v1/bank/accounts ``
- Estimate transfer: Calculate fees and exchange rates.
`` POST /api/v2/bank/transfer/estimate ``
- Execute transfer: Send the payment.
`` POST /api/v1/bank/transfer ``
See [references/BANKING.md](references/BANKING.md) for full request/response formats.
Push-to-Card Transfers
Push-to-Card allows sending funds directly to a Visa or Mastercard debit card via OCT (Original Credit Transaction) rails.
Prerequisites
- Account must have the CardTransfer capability enabled.
Flow
- Tokenize card: Submit the card details to the PCI-compliant endpoint to receive a token. Requires user-scoped token (not S2S).
`` POST {pci_url}/b2b/cards/oct?user_id={user_id} Body: { card_number, cardholder_name, card_label, is_saved, is_third_party } ` The user_id is obtained from GET /api/v2/user` response.
- Create recipient: Register the card as a recipient.
`` POST /api/v2/recipients Body: { type: "Card", card: { card_id: token, card_pan_last } } ``
- Estimate transfer: Calculate fees and amounts.
`` POST /api/v1/cards/transfer/estimate ``
- Execute transfer: Send the payment.
`` POST /api/v1/cards/transfer ``
Card validations: Luhn check, Visa/Mastercard only, expiration date verification.
See [references/PUSH-TO-CARD.md](references/PUSH-TO-CARD.md) for full details including PCI environment URLs.
Recipients
Wirex BaaS supports 6 recipient types for outgoing transfers:
| Type | Use Case | Key Fields | |-----------------|-------------------------------------|-------------------------------------------| | Card | Push-to-Card transfers | cardid (token), cardpanlast | | Sepa | SEPA EUR bank transfers | iban, bic | | Ach | ACH USD bank transfers | routingnumber, accountnumber, legaladdress | | Crypto | Crypto withdrawals | address, network | | FasterPayment | UK Faster Payments (GBP) | accountnumber, sortcode | | Swift | International wire transfers | iban, bic, legal_address |
Recipient CRUD Operations
| Operation | Endpoint | |--------------------------|-------------------------------------------------------| | List all recipients | GET /api/v1/recipients | | Get by ID | GET /api/v1/recipients/{recipientid} | | Filter by type | GET /api/v1/recipients/filter/type?type=Card | | Create recipient | POST /api/v2/recipients | | Update personal info | PUT /api/v1/recipients/{recipientid} | | Delete recipient | DELETE /api/v1/recipients/{recipient_id} |
See [references/RECIPIENTS.md](references/RECIPIENTS.md) for full CRUD reference with all fields and payment type details.
Activity Steps
All transfers progress through a series of activity steps. The exact steps vary by transfer type.
SEPA/ACH: Initiated → CryptoOut → Review → BankOut → Completed
Push-to-Card: Initiated → CryptoOut → Review → CardOut → Completed
Step Descriptions
| Step | Description | |-----------|--------------------------------------------------| | Initiated | Transfer request received and validated | | CryptoOut | WUSD/WEUR burned from the user's wallet | | Review | Compliance and risk checks in progress | | BankOut | Funds sent via SEPA/ACH to recipient bank | | CardOut | Funds sent via OCT to recipient card | | Completed | Transfer successfully delivered |
A transfer can also reach Failed or Cancelled status at any step.
Required Capabilities Summary
| Transfer Type | Required Capabilities | |----------------------|----------------------------------------| | SEPA account setup | SepaAccount | | SEPA 1st-party send | SepaOut1stParty | | SEPA 3rd-party send | SepaOut3rdParty | | ACH account setup | AchAccount | | ACH 1st-party send | AchOut1stParty | | ACH 3rd-party send | AchOut3rdParty | | Push-to-Card | CardTransfer |
Webhooks
Transfer activity is reported via webhooks:
| Webhook Endpoint | Purpose | |--------------------------|--------------------------------------| | /v2/webhooks/activities | Transfer activity step updates | | /v2/webhooks/recipients | Recipient creation/update events |
See individual reference files for webhook payload examples.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: wirexapp
- Source: wirexapp/wirex-baas-agent-skills
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.