December 12, 2024
cancel
Showing results for 
Search instead for 
Did you mean: 
Help

Can't simulate a balance inquiry with JIT Gateway

sfishman
New Contributor

I'm building a JIT Gateway POC.  I have two separate endpoints, one for notifications and one for JIT Gateway authorizations.

I am successfully able to simulate authorizations and subsequent clearings.  As expected, I receive authorization requests on my JIT Gateway and respond to them; and shortly after receive a series of notifications of types authorizationgpa.credit.authorizationgpa.creditand finally authorization.clearing.

So far so good.

However when I try to simulate a balance inquiry I don't get the expected result. According to your ledger management guide, it sounds like a balance inquiry should also generate an authorization-like request to my JIT Gateway - with the special balances  object - to which my JIT  Gateway should respond with the appropriate balances. But I am not receiving this request on my JIT Gateway.  To be clear, the simulation does go through and Postman does get a response, but this response has all zeros for balances.  

Any idea what I'm doing wrong?

Below is my setup, perhaps you can spot some misconfiguration in it...

Funding Sources Program Gateway:

 

{
  "url": "<<HIDDEN>>",
  "version": "2.0",
  "name": "Funding Source 2",
  "active": true,
  "token": "123cd67f-eb93-4296-84d2-f094ef6e126e",
  "created_time": "2021-09-28T19:40:33Z",
  "last_modified_time": "2021-09-28T19:40:33Z",
  "account": "<<HIDDEN>>",
  "basic_auth_username": "<<HIDDEN>>",
  "basic_auth_password": "<<HIDDEN>>",
  "timeout_millis": 3000,
  "custom_header": {},
  "use_mtls": false
}

 

Card Product:

 

{
  "token": "ef15b6af-b9ce-4df6-8f6e-7d1248d86934",
  "name": "Card Product 1",
  "active": true,
  "start_date": "2020-01-01",
  "config": {
    "poi": {
      "other": {
        "allow": true,
        "card_presence_required": false,
        "cardholder_presence_required": false
      },
      "ecommerce": true,
      "atm": true
    },
    "transaction_controls": {
      "accepted_countries_token": "accept_us_only",
      "always_require_pin": false,
      "always_require_icc": false,
      "allow_gpa_auth": true,
      "require_card_not_present_card_security_code": false,
      "allow_mcc_group_authorization_controls": true,
      "allow_first_pin_set_via_financial_transaction": false,
      "ignore_card_suspended_state": false,
      "allow_chip_fallback": true,
      "allow_network_load": false,
      "allow_network_load_card_activation": false,
      "allow_quasi_cash": false,
      "enable_partial_auth_approval": true,
      "address_verification": {
        "av_messages": {
          "validate": true,
          "decline_on_address_number_mismatch": false,
          "decline_on_postal_code_mismatch": true
        },
        "auth_messages": {
          "validate": true,
          "decline_on_address_number_mismatch": false,
          "decline_on_postal_code_mismatch": false
        }
      },
      "strong_customer_authentication_limits": {
      },
      "quasi_cash_exempt_mids": "984226812886,000984226812886",
      "enable_credit_service": false
    },
    "selective_auth": {
      "sa_mode": 1,
      "enable_regex_search_chain": false,
      "dmd_location_sensitivity": 0
    },
    "special": {
      "merchant_on_boarding": false
    },
    "card_life_cycle": {
      "activate_upon_issue": true,
      "expiration_offset": {
        "unit": "YEARS",
        "value": 4
      },
      "card_service_code": 101,
      "update_expiration_upon_activation": false
    },
    "clearing_and_settlement": {
      "overdraft_destination": "GPA"
    },
    "jit_funding": {
      "paymentcard_funding_source": {
        "enabled": false,
        "refunds_destination": ""
      },
      "programgateway_funding_source": {
        "enabled": true,
        "funding_source_token": "123cd67f-eb93-4296-84d2-f094ef6e126e",
        "refunds_destination": "GATEWAY",
        "always_fund": true
      },
      "program_funding_source": {
        "enabled": false,
        "funding_source_token": "",
        "refunds_destination": ""
      }
    },
    "digital_wallet_tokenization": {
      "provisioning_controls": {
        "manual_entry": {
          "enabled": false,
          "address_verification": {
            "validate": true
          }
        },
        "wallet_provider_card_on_file": {
          "enabled": false,
          "address_verification": {
            "validate": true
          }
        },
        "in_app_provisioning": {
          "enabled": false,
          "address_verification": {
            "validate": true
          }
        }
      },
      "card_art_id": ""
    },
    "fulfillment": {
      "payment_instrument": "VIRTUAL_PAN",
      "package_id": "0",
      "all_zero_card_security_code": false,
      "bin_prefix": "111111",
      "bulk_ship": false,
      "pan_length": "16",
      "fulfillment_provider": "PERFECTPLASTIC",
      "allow_card_creation": true,
      "uppercase_name_lines": true,
      "enable_offline_pin": false
    }
  },
  "created_time": "2021-09-28T19:42:40Z",
  "last_modified_time": "2021-11-13T18:45:43Z"
}

 

And a card:

 

{
  "created_time": "2022-02-15T01:16:56Z",
  "last_modified_time": "2022-02-15T01:16:56Z",
  "token": "f9bd499a-ced0-46b1-9eec-07b7d8860641",
  "user_token": "3fc7f8f0-5e07-445c-bfe9-009fa9a6df00",
  "card_product_token": "ef15b6af-b9ce-4df6-8f6e-7d1248d86934",
  "last_four": "6533",
  "pan": "111111______6533",
  "expiration": "0226",
  "expiration_time": "2026-02-28T23:59:59Z",
  "barcode": "25690615191272528618",
  "pin_is_set": false,
  "state": "ACTIVE",
  "state_reason": "New card activated",
  "fulfillment_status": "ISSUED",
  "instrument_type": "VIRTUAL_PAN",
  "expedite": false,
  "metadata": {
  }
}

 

5 REPLIES 5

jcook
Marqeta Staff
Marqeta Staff

Hi @sfishman Unfortunately "balance_inquiry" requires a feature flag on the MQ platform that isn't available in the public sandbox. We can take its unavailability back to our teams as feedback for future use. 

ponmanikandanb
New Contributor

@jcook @sfishman Then what is the exact request received for balance inquiry, As per the doc, JIT Funding requests for non-financial balance inquiries (where the method is pgfs.balanceinquiry) have no associated transaction or movement of funds and do not contain a gpa_order, gpa_order_unload, or jit_funding object. 

There is no gpa_order, gpa_order_unload, or jit_funding object.

But the Method itself available in gpa_order.jit_funding.method. Then how the Webhook end point will identify the request is for the balance inquiry. Where the method will be associated in the request for balance inquiry. Please share the sample request  for balance inquiry.

jcook
Marqeta Staff
Marqeta Staff

Hi @ponmanikandanb The event type that you will receive at your gateway when you POST/simulate/financial/balanceinquiry (or when a balance is requested at an ATM) is "pindebit.balanceinquiry". When that event type is received, you would then provide the balance associated with that card. 

Does that help?

 

Thank you-Jess

@jcook Thanks for the quick reply. I am trying to implement the authorization.incremental also, Please share the sample request for the same. Try to stimulate the same but there is no API available to stimulate the authorization.incremental event(Webhook) .

Please share the both authorize and clearing event for the authorization.incremental.

Hi @ponmanikandanb unfortunately authorization.incremental is unavailable in our public sandbox.

 

Thank you,

Jess