Tokenizes an EBT Card via a ForagePANEditText Element.

  • On success, the object includes a ref token that represents an instance of a Forage PaymentMethod. You can store the token for future transactions, like to checkBalance or to create a Payment in Forage's database.

  • On failure, for example in the case of unsupported_bin, the response includes a list of ForageError objects that you can unpack to programmatically handle the error and display the appropriate customer-facing message based on the ForageError.code.

// Example tokenizeEBTCard call in a TokenizeViewModel.kt
class TokenizeViewModel : ViewModel() {
val merchantId = "mid/<merchant_id>"
val sessionToken = "<session_token>"

fun tokenizeEBTCard(foragePanEditText: ForagePANEditText) = viewModelScope.launch {
val response = ForageSDK().tokenizeEBTCard(
foragePanEditText = foragePanEditText,
reusable = true,
customerId = "<hash_of_customer_id>"

when (response) {
is ForageApiResponse.Success -> {
val paymentMethod = response.toPaymentMethod()
// Unpack paymentMethod.ref, paymentMethod.card, etc.
val card = paymentMethod.card
// Unpack card.last4, ...
if (card is EbtCard) {
// Unpack card.usState
is ForageApiResponse.Failure -> {
val error = response.errors[0]
// handle error.code here


A ForageApiResponse object. Use toPaymentMethod() to convert the data string to a PaymentMethod.



A TokenizeEBTCardParams model that passes a foragePanEditText instance, a customerId, and a reusable boolean that Forage uses to tokenize an EBT Card.

See also

  • SDK errors for more information on error handling.


If the ForageConfig is not set for the provided foragePanEditText.