---
title: "Get Payment Request Status"
method: GET
path: "/v5/devices/{device_id}/payment-requests/{request_id}"
tags: ["Devices"]
---

# Get Payment Request Status

`GET /v5/devices/{device_id}/payment-requests/{request_id}`

## Request

- Base URL: `https://sandbox.nmi.com/api`
- URL: `https://sandbox.nmi.com/api/v5/devices/{device_id}/payment-requests/{request_id}`
- Auth: API key in header `Authorization`

Retrieve the status of an asynchronous payment request initiated on a cloud device. The request_id is obtained from the initial payment request response (e.g., from POST /api/v5/devices/{deviceId}/payment-requests/sale). The device_id must match the device that initiated the payment request. This endpoint uses the same underlying functionality as GET /api/asyncstatus.

## Path parameters

- `device_id` string, required
- `request_id` string, required

## Response `200`

Payment request status retrieved successfully

- PaymentRequestStatusResponse: Payment request response. Returned when creating an asynchronous payment request or polling for its status.
  - `object` 'payment-request', required: Resource type identifier
  - `id` string, required: Payment request ID
  - `status` 'pending' | 'inFlight' | 'interactionComplete' | 'cancelled' | 'cancelledAtTerminal' | 'cancelledByApi' | 'cancelledByTimeout' | 'poiDeviceInUse' | 'poiDeviceDisconnected' | 'terminatedBadCardRead', required: Status of the payment request. When a payment request is first created, the status is always `pending`. When polling for status, values are more granular to show the progress of the transaction based on the device's status or customer's interaction.
  - `transaction` object: Transaction details if the payment request has been processed
    - `id` integer, nullable: Transaction ID
    - `type` string: Transaction type (e.g., 'sale', 'auth', 'credit', 'validate')
    - `success` boolean: Whether the transaction was successful
    - `condition` string: Transaction condition/status
    - `approval` string: Approval code
    - `authorized_amount` string: Authorized amount. Format: `x.xx`
    - `auth_code` string: Authorization code
    - `customer_vault_id` string: Customer vault ID associated with the transaction
    - `emv_metadata` object: EMV (chip card) metadata
      - `customer_verification_method` string: Customer verification method used
      - `application_id` string: EMV application ID
      - `application_label` string: EMV application label
      - `application_preferred_name` string: EMV application preferred name
      - `application_pan_sequence_number` string: EMV application PAN sequence number
      - `transaction_status_information` string: EMV transaction status information
      - `masked_merchant_number` string: Masked merchant number
      - `masked_terminal_number` string: Masked terminal number
    - `card_tokens` object[]: Card tokens associated with the transaction
      - `token` string: Card token
      - `type` string: Token type
  - `error` object: Error information if the payment request failed
    - `code` string: Error code
    - `ref_id` string: Error reference ID
    - `message` string: Error message

## Other responses

- `400`: Bad Request - The request was malformed or contained invalid parameters
- `401`: Unauthorized - Authentication credentials were missing or invalid
- `404`: Not Found - The requested resource could not be found
- `500`: Internal Server Error - An unexpected error occurred on the server

---

[API](https://skmtc.dev/nmi/apis/payments-api.md) - [All operations](https://skmtc.dev/nmi/apis/payments-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nmi/apis/payments-api/revisions/c03727f27e27?raw)
