Architecture
Session tokens
A session token authenticates your mobile SDK components against the Benny API. Your server creates one by callingPOST /v1/session with a secret API key, then passes the token to the mobile app. Tokens
expire after one hour.
- Node.js
- Python
- Kotlin
- Java
Payment lifecycle
The enterprise payment flow has four stages:Tokenize the EBT card
The user enters their card number in the mobile SDK’s
CardNumberInput component. The SDK
tokenizes the card securely and returns a tokenId to your app. Card data never touches your
servers.See the Payment Methods guide for details.Create a payment method
Your server sends the
tokenId and an externalUserId to the create payment method endpoint. Benny
returns a paymentMethodId that you store for future payments.See the Payment Methods guide for details.Create a payment intent and collect PIN
Your server creates a payment intent with the amount, tender type, and fulfillment details. The
mobile SDK collects the user’s PIN via the
PinInput component and submits it along with the
paymentIntentId to authorize the payment.See the Payment Intents guide for details.Handle refunds and reversals
After a payment completes, your server can issue refunds (credited to the customer’s EBT account)
or reversals (voids that don’t appear on the customer’s account).See the Refunds and Reversals guide for details.
Next steps
Payment Methods
Tokenize EBT cards and create reusable payment methods.
Payment Intents
Create, update, and authorize EBT payments.
Refunds and Reversals
Process returns and void transactions.
Android SDK
Integrate the Benny SDK into your Android app.
iOS SDK
Integrate the Benny SDK into your iOS app.
Sandbox
Test your integration without real money movement.