API template library

Fiserv EmFi BaaS mock API and live sandbox

A WireMock simulation of Fiserv's REST API — covering cardholder banking for embedded-finance programs — balances, transactions, ACH recipients and transfers, card controls, and rewards.

Vendor
Fiserv
Functionality
ACH transfers, cards, statements
Spec version
1.0
Endpoints
33
Stubs
36
Protocol
REST
Validation
AI-validated Before publication, an AI agent exercised these endpoints against the real Fiserv API through WireMock's recording proxy, and the recorded traffic was used to verify each stub's request and response shapes.

Live sandbox · no signup, no API key

Fiserv EmFi BaaS API

A running WireMock Cloud instance of this template, callable right now from a terminal, a script, or an AI agent.

Base URL
https://0535y.wiremockapi.cloud

POST Add ACH Recipient

curl -s -X POST 'https://0535y.wiremockapi.cloud/baas/users/your-payfare_id/ach-payments/recipients' \
  -H 'Content-Type: application/json' \
  -d '{}'

GET Get User Session

curl -s -X GET 'https://0535y.wiremockapi.cloud/baas/users/your-payfare_id/user-session'

PUT Set Card Status

curl -s -X PUT 'https://0535y.wiremockapi.cloud/baas/users/your-payfare_id/cards/your-card_id/status' \
  -H 'Content-Type: application/json' \
  -d '{}'
Method Path Summary
GET /baas/users/{payfare_id}/account-statements Get Account Statements
GET /baas/users/{payfare_id}/ach Get ACH Transfers
GET /baas/users/{payfare_id}/ach-payments/recipients Get ACH Recipients
POST /baas/users/{payfare_id}/ach-payments/recipients Add New ACH Recipient
GET /baas/users/{payfare_id}/ach-payments/recipients/{recipient_id} Get Specific ACH Recipient Details
POST /baas/users/{payfare_id}/ach-payments/recipients/{recipient_id} Update ACH Recipient
POST /baas/users/{payfare_id}/ach-payments/recipients/{recipient_id}/remove Delete Specific ACH Recipient
POST /baas/users/{payfare_id}/ach-payments/recipients/{recipient_id}/send Send Money ACH
POST /baas/users/{payfare_id}/ach-transfers/{ach_id}/cancel Cancel ACH
GET /baas/users/{payfare_id}/ach/{ach_id} Get Particular ACH Transfer
GET /baas/users/{payfare_id}/atm-locations ATM Finder
GET /baas/users/{payfare_id}/backup-balance Get Backup Balance
GET /baas/users/{payfare_id}/backup-balance/list List Backup Balance Users
GET /baas/users/{payfare_id}/bank-accounts Get Direct Deposit Information
GET /baas/users/{payfare_id}/card-shipping-details Get Card Shipping Status
GET /baas/users/{payfare_id}/cards/{card_id}/account-balances Get Account Balances
POST /baas/users/{payfare_id}/cards/{card_id}/account-transfer Transfer Money Between Accounts
GET /baas/users/{payfare_id}/cards/{card_id}/balance Get Card Balance
GET /baas/users/{payfare_id}/cards/{card_id}/goals/{account_id}/transactions Get Goal Transactions
GET /baas/users/{payfare_id}/cards/{card_id}/other-accounts/info Get Other Accounts Info
POST /baas/users/{payfare_id}/cards/{card_id}/reissue-card Reissue Card
GET /baas/users/{payfare_id}/cards/{card_id}/shipping-address Get Shipping Address
POST /baas/users/{payfare_id}/cards/{card_id}/shipping-address Set Shipping Address
GET /baas/users/{payfare_id}/cards/{card_id}/status Get Card Status
PUT /baas/users/{payfare_id}/cards/{card_id}/status Set Card Status
GET /baas/users/{payfare_id}/cards/{card_id}/transactions Get Transactions
GET /baas/users/{payfare_id}/direct-deposit-form Get Direct Deposit Form
GET /baas/users/{payfare_id}/primary-card Get Primary Card
GET /baas/users/{payfare_id}/rewards/balance Get Rewards Balance
POST /baas/users/{payfare_id}/rewards/redeem Redeem Rewards
GET /baas/users/{payfare_id}/rewards/transactions Get Rewards Transactions
GET /baas/users/{payfare_id}/transaction-details/{transaction_id} Get Transaction Details
GET /baas/users/{payfare_id}/user-session Get User Session

Unauthenticated WireMock Cloud demo sandbox for Fiserv — not an official Fiserv sandbox, and it returns simulated example data only.

What's inside the EmFi BaaS template

EmFi is Fiserv's embedded-finance platform (the former Payfare) for paying gig and hourly workforces onto cards, and this API is what the cardholder's app calls — all thirty-three routes hang off /baas/users/{payfare_id}. The read surface furnishes a complete banking screen: a Visa ending 0436 with 125.50 on it, a transaction feed pairing a Walmart purchase with a 500.00 payout deposit, July and August statements as S3 links, direct- deposit details, a 15.75 rewards balance, a backup-balance cash advance overdrawn to −12.32, and an ATM finder returning Allpoint machines at real Sarasota pharmacy addresses, geocoded. Around it, the write paths keep live state where it counts: the card-status store persists whatever a PUT sets, the shipping- address store echoes what a POST seeds it with, ACH recipients form a registry where creates resolve, updates fold in, and removes take effect, and send-money mints transfers the by-id read finds with your amount and same-day dates. It's the rare template where a mobile team can demo the full app — feed, card controls, move-money — without a program manager's credentials.

  • Balances and activity — card and account balances, the transaction feed with detail reads, and account statements
  • ACH money movement — the recipient registry, send-money, transfer status reads, and cancellation
  • Card controls — status get-and-set, reissue, shipping address, and card-shipping tracking
  • Goals and purses — account-to-goal transfers, goal transaction history, and secondary-purse info
  • Program perks — rewards balance, redemption, and history, backup-balance advances, the ATM finder, and the direct-deposit form

Frequently asked questions

Three of them. Card status reads back whatever the last PUT wrote (it begins as an empty string — the unseeded state), the shipping address holds the body a POST gives it, and ACH recipients run a working registry: a created recipient resolves by id, an update merges into it, and a remove ends with the read rejecting the id. The list views are the boundary — the recipient roster and transfer history always answer their built-in fixtures, so records you mint appear on by-id reads only. Test list rendering against the fixtures and record lifecycles against your own ids.

Until something is stored, that route renders a body with a bare key and no value — syntactically invalid JSON under an HTTP 200 — and any client hits the parse failure before its first POST. Treat it as a built-in resilience drill (a malformed-200 handler is worth having against production middleware too), or simply seed the address first if the flow under test reads before it writes. After one POST the route returns clean JSON from then on.

The drift is part of the fixture set, and it's a useful tripwire. The card-balance route says 125.50 while the account-balances route reports 87.00 for the same card, and transaction F2164684129 is a 45.50 Walmart purchase in the feed but a 50.00 hobby-shop charge in its detail read. Code that assumes one route mirrors another gets caught here; pin each assertion to the route it actually calls. The detail read also spells its date field tranasaction_date — the API's own typo, preserved so generated models bind against reality.

The partner integration that creates these users and funds these cards — covered by the EmFi B2B template, where the payout platform onboards workers, checks KYC, and pushes earnings. The two mocks pair naturally: drive a payout through the B2B surface, then render this side's feed and balances as the cardholder would see them, all against deterministic data.

Vendor names identify APIs represented by WireMock template sources. This page does not imply vendor endorsement, certification, partnership, or official integration status.