> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cleo-pay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a payment

> GET /v1/payments/{paymentId} reads one payment: status, rail, source, hold and return reasons, expected arrival and a dashboard link.

```
GET /v1/payments/{paymentId}
```

**Scope:** `payments:read` or `payables:read`

<ParamField path="paymentId" type="string" required>
  The payment's `id`, from `POST /v1/payments`, `GET /v1/payments` or the `data.id` of a `payment.*` event.
</ParamField>

## Response

`200` with the [payment](/concepts/payments#the-payment-object).

<ResponseField name="status" type="string">
  `pending`, `scheduled`, `processing`, `held`, `completed`, `failed`, `returned`, `cancelled`, `refund_pending` or `refunded`. Accept values you do not know.
</ResponseField>

<ResponseField name="paymentRail" type="string | null">`DWOLLA` or `CLEO_PAY`. `null` for a payment recorded outside Cleo.</ResponseField>
<ResponseField name="fundingSource" type="string | null">`BALANCE` or `BANK` on Cleo Pay. `null` on Dwolla.</ResponseField>
<ResponseField name="heldReason" type="string | null">`vendor_invitation_pending` or `vendor_bank_missing`, when held.</ResponseField>
<ResponseField name="expectedArrivalDate" type="string | null">Cleo Pay only, once the payout is sent.</ResponseField>
<ResponseField name="returnReason" type="string | null">Why a bank sent the money back, in plain words.</ResponseField>
<ResponseField name="failureReason" type="string | null">Why the payment failed.</ResponseField>
<ResponseField name="dashboardUrl" type="string | null">The bill's page in the Cleo web app.</ResponseField>
<ResponseField name="amountCents" type="integer">This payment's amount.</ResponseField>
<ResponseField name="payableId" type="string | null">The bill.</ResponseField>
<ResponseField name="contactId" type="string | null">The vendor.</ResponseField>
<ResponseField name="bankAccountId" type="string | null">The payer bank the payment pulled from, when there is one.</ResponseField>
<ResponseField name="scheduledAt" type="string">When it runs or ran.</ResponseField>
<ResponseField name="processedAt" type="string | null">When it was processed.</ResponseField>

<ResponseField name="createdAt" type="string" />

<ResponseField name="updatedAt" type="string" />

A payment from another business answers `404 not_found`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.