# ABU Pull Inquiry Model
source: https://developer.mastercard.com/automatic-billing-updater/documentation/usecases/pull-inquiry-model/index.md

## How it works: check for updated card details before charging a saved card {#how-it-works-check-for-updated-card-details-before-charging-a-saved-card}

You may make an on-demand inquiry to ABU to check for the latest account credentials for your customer's payment account stored in your system.

<br />


For optimal chances of a successful payment transaction, we recommend checking for account updates before you make the transaction if you are not already subscribed to receive automatic updates. Alternatively, you may also check for account updates if your card-not-present transaction was declined due to outdated payment account credentials.

![abu-pull-how-it-works](https://static.developer.mastercard.com/content/automatic-billing-updater/documentation/images/abu-pull-how-it-works.png)

1. Send an account inquiry request to ABU with the payment account information (account number and expiry date).
2. The account number (PAN) is queried against the ABU database to identify if there are updates immediately available (for example: account number change, expiry date change, or account closure). The API response back to you will contain the updated account credentials, if any.

ABU will respond with one of the following possible response types:

|             Account Inquiry Response Type              |        ResponseIndicator         |                                                                                               Description                                                                                                |
|--------------------------------------------------------|----------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Account is up-to-date                                  | `VALID`                          | No updates available. Submitted account number \& expiration date match information in ABU database                                                                                                      |
| Update available (information provided is not current) | `EXPIRY` or `ACCOUNT_UPDATE`     | `EXPIRY` indicates a more current expiry date is available for the PAN. `ACCOUNT_UPDATE` means the PAN and expiry date have changed. Updated account number and expiry date are provided in the response |
| Account closed                                         | `CONTACT`                        | Account has been closed and should not be used for future payment transactions                                                                                                                           |
| Account not found                                      | `UNKNOWN` or `NON_PARTICIPATING` | Account is not available in ABU                                                                                                                                                                          |

Tip: Integrate with the [ABU Push subscription model](https://developer.mastercard.com/automatic-billing-updater/documentation/usecases/push-subscription-model/index.md) if you are interested in receiving account updates from ABU automatically.

### Endpoint Structure {#endpoint-structure}


API Reference: `POST /inquiries`

### Experience design guide {#experience-design-guide}

This flow diagram illustrates a checkout experience at a merchant's website for a returning customer. When a customer checks out with a saved payment method, the merchant can make an account inquiry to check for any updates to the saved account credentials.

Depending on merchant preference, this account inquiry may happen either before the payment transaction happens, in which the merchant proactively updates the account credentials prior to making the payment transaction, or upon a transaction decline as part of their retry strategy.

<br />

### Example sequence {#example-sequence}

The following example sequence shows how you might use the account inquiry API. The expiry lifecycle event is shown in this example, but the flow is the same for any other lifecycle event.
Diagram pullrequest

1. The ABU Data Consumer sends an account inquiry request to ABU with the account number and expiry date currently on file, checking whether more current information is available.
2. At this point, ABU's records match what the ABU Data Consumer submitted (no update is available yet) so ABU returns a `VALID` response.
3. The ABU Data Consumer sends a further inquiry for the same account, for example ahead of a later transaction.
4. ABU again confirms the account is still current, returning `VALID`. This illustrates that repeated inquiries are safe to make and will simply confirm no change has occurred yet.
5. The card's issuer notifies ABU that the account's expiry date has changed. This is the lifecycle event that updates ABU's records, happening independently of the ABU Data Consumer's inquiries.
6. The ABU Data Consumer sends another inquiry for the same account. This time after the issuer's update from step 5 has been recorded by ABU.
7. Because ABU's records now reflect the issuer's update, ABU responds with `EXPIRY` and returns the new expiry date, allowing the ABU Data Consumer to update its stored credentials before the next transaction.

More details on the technical API specifications can be found in [API Reference](https://developer.mastercard.com/automatic-billing-updater/documentation/api-reference/index.md).
Note: Pull inquiry model supports both API and bulk file integration options. You must also integrate with the bulk file for batch inquiries in addition to using the API for ad-hoc queries.

Details about integrating with ABU via bulk files are available in the [ABU Reference Guide](https://trc-techresource.mastercard.com/r/bundle/m_mab_en-us/page/d/en-US) on Mastercard Connect.
