# Getting the credit card status


```http
GET https://payments-api.booking.com/connectivity-payments/reservations/{reservationId}/status?type=ccstatus
```

When the credit card status is either `INVALID_CARD` or `INITIAL_CARD_CHECK_UNSUCCESSFUL`, you receive a notification. Upon receiving the `CREDIT_CARD_STATUS_UPDATE` notification, you can query the endpoint to get the current card status. Based on the status, you can take the appropriate action, such as requesting the guest to update the card or cancel the reservation.

For more information, see [Card verification flow](/connectivity/docs/credit-card-status-api/understanding-the-credit-card-status-api/#card-verification-flow).

## Path parameters

The following table describes what elements you must add as path parameters:

| Element | Description | Type | Required/Optional |
|  --- | --- | --- | --- |
| `reservation-id` | Specifies the identifier of the reservation. | string | required |


## Query parameters

The following table describes what elements you must add as query parameters:

| Element | Description | Type | Required/Optional |
|  --- | --- | --- | --- |
| `type` | Indicates that the status of the credit card used per given reservation has to be returned in the response. Currently, the only supported value for `type` is `ccstatus`. | string | optional |


## Headers

| Element | Description | Type | Required/Optional |
|  --- | --- | --- | --- |
| `accept-version` | Specifies the version of the API you want to use. | string | optional |


## Response body example

The following is a successful response body example:


```
{
    "meta": {
        "ruid": "ekjdb-vi1je-fv723b-jewklnnn"
    },
    "data": {
        "reservation_id": "res123",
        "status_type": "CREDIT_CARD_VALIDATION",
        "status_value": "INVALID_CARD"
    },
    "errors": [],
    "warnings": []
}
```

The following is an error response body example:


```
{
  "meta": {
    "ruid": "ekjdb-vi1je-fv723b-jewklnnn"
  },
  "data": null,
  "errors": [
    {
      "description": "The reservation is not on Smart Pay at Property",
      "message": "BAD_REQUEST",
      "status_code": 400,
      "debug_message": null
    }
  ],
  "warnings": []
}
```

## Response body elements

The following table describes the response elements:

| Element | Description | Type |
|  --- | --- | --- |
| `data` | Contains the response data. | object |
| **:** `reservation_id` | Specifies the identifier of the reservation. | string |
| **:** `status_type` | Specifies the type of the status being updated: `CREDIT_CARD_VALIDATION`. | string |
| **:** `status_value` | Specifies the status of the credit card: `VERIFIED`, `INITIAL_CARD_CHECK_UNSUCCESSFUL`, `INVALID_CARD`, `UNKNOWN`, or `PENDING_CARD_UPDATE`. For more information, see [Credit card statuses](#credit-card-statuses). | string |


## Credit card statuses

The only two statuses for which a notification is sent are `INITIAL_CARD_CHECK_UNSUCCESSFUL` and `INVALID_CARD`.

| Status | Description |
|  --- | --- |
| `INITIAL_CARD_CHECK_UNSUCCESSFUL` | Initial verification done at the time of booking has failed. Another verification will be performed 3 days before the free cancellation deadline. |
| `INVALID_CARD` | Card is invalid. |
| `UNKNOWN` | Card hasn't been checked yet. |
| `PENDING_CARD_UPDATE` | Guest has a 24-hour window to update their card information. |
| `VERIFIED` | Card has been verified and is considered valid until the next check is performed. |


## Response codes

This table lists and describes the response codes that the Credit Card Status API can return.

| Code | Type | Description |
|  --- | --- | --- |
| 200 | Success | Status for the credit card is fetched successfully. |
| 400 | Non-retryable failure | Request payload is invalid. |
| 401 | Non-retryable failure | Machine account is not authenticated. |
| 403 | Non-retryable failure | Machine account is not authorized to fetch the requested information. |
| 404 | Non-retryable failure | Specified reservation doesn't exist. |
| 410 | Non-retryable failure | Requested resource is outdated and no longer available to be served. |
| 429 | Retryable error | You exceeded the rate limit. |
| 500 | Retryable failure | Request failed with an internal server error. |