02-15-2022 07:34 AM
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 authorization, gpa.credit.authorization, gpa.credit, and 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": {
}
}
02-15-2022 07:39 AM
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.
04-20-2022 03:15 AM
@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.
04-20-2022 08:35 AM
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
04-21-2022 10:07 AM
@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.
04-22-2022 12:49 PM
Hi @ponmanikandanb unfortunately authorization.incremental is unavailable in our public sandbox.
Thank you,
Jess