---
updatedAt: 2026-10-07T20:34:56.000Z
agentTools:
  projectIndex: https://docs.checkhq.com/llms.txt
---

# The payments and payment attempts objects

Represents payments and their corresponding attempts for completion initiated by Check on behalf of a company

See the Payments [guide](https://docs.checkhq.com/docs/payments) for more information

```json Sample succeded payroll debit
{
  "id": "pyt_uzasLBvddSm6aJkHGwQw",
  "status": "paid",
  "amount": "4522.0400",
  "type": "company_cash_requirement",
  "parent_type": "payroll",
  "parent_id": "pay_aPKCtxqbi1jDNEWRrz9w",
  "payment_attempts": [
    {
      "id": "pya_LUHvXtQBhkNM22xIk8K1",
      "created_at": "2022-02-18T20:17:13.033205Z",
      "expected_completion_date": "2022-02-23",
      "status": "paid",
      "failure_code": null,
      "payment_method": "ach",
      "payment_instrument": "bnk_W7hjDGn6sU1d3U8dr9bq",
      "wire_details": null,
      "ach_details": {
        "ach_trace_id": "ABC12300080",
        "description": "PAYMENT",
        "transaction_type_code": "PCR"
      },
      "retry": null
    }
  ],
  "can_retry": false,
  "can_refund": false,
  "can_cancel": false,
  "cancel_deadline": "2022-02-19T17:00:00.000Z",
  "direction": "debit",
  "company": "com_ENA4k8LMHbgpV07GLGSv"
}
```

<Table align={["left","left"]}>
  <thead>
    <tr>
      <th>
        Attribute
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `id`  
        _string_
      </td>

      <td>
        Unique identifier for the payment.
      </td>
    </tr>

    <tr>
      <td>
        `status`  
        _string_
      </td>

      <td>
        Status of the payment in its lifecycle.  

        One of `draft`, `processing`, `paid`, `failed`, `refunded`, `refund_processing`, `refund_failed`, `reversal_processing`, `reversal_failed`, `reversed`, or`canceled`
      </td>
    </tr>

    <tr>
      <td>
        `amount`  
        _string_
      </td>

      <td>
        The amount of the payment, expressed as a decimal.
      </td>
    </tr>

    <tr>
      <td>
        `type`  
        _string_
      </td>

      <td>
        The type of payment.  

        One of `company_cash_requirement`, `employee_net_pay`, `net_pay_refund`, `collection`, or `refund`
      </td>
    </tr>

    <tr>
      <td>
        `parent_type`  
        _string_
      </td>

      <td>
        The parent type of the payment  

        One of `payroll`, `payroll_item`, `contractor_payment`, `collection`, `refund`, or `correction`. Payments that fund a correction report `correction` as the parent type.
      </td>
    </tr>

    <tr>
      <td>
        `parent_id`  
        _string_
      </td>

      <td>
        The id of the parent of the payment (refer to the `parent_type` field for the potential parents).  

        An id can be one of `pay_...`, `itm_...`, `cpa_...`, `pyt_...`, or `cor_...`. When `parent_type` is `correction`, this is the correction's id.
      </td>
    </tr>

    <tr>
      <td>
        `payment_attempts`  
        _array of objects_
      </td>

      <td>
        A list of associated attempts to fulfill the payment. Described in detail below.
      </td>
    </tr>

    <tr>
      <td>
        `can_retry`  
        _boolean_
      </td>

      <td>
        Boolean representing whether a particular payment can be retried. A payment must be in a failed state to be eligible for retry.
      </td>
    </tr>

    <tr>
      <td>
        `can_refund`  
        _boolean_
      </td>

      <td>
        Boolean representing whether a particular payment can be refunded. Only credit payments in a failed state are eligible for refunds.
      </td>
    </tr>

    <tr>
      <td>
        `can_cancel`  
        _boolean_
      </td>

      <td>
        Boolean representing whether a particular payment can be canceled. Only credit payments in a pending state are eligible for cancel.
      </td>
    </tr>

    <tr>
      <td>
        `cancel_deadline`  
        _datetime_
      </td>

      <td>
        Datetime by which the payment can be canceled by.
      </td>
    </tr>

    <tr>
      <td>
        `direction`  
        _string_
      </td>

      <td>
        String describing the direction of the payment from the caller's perspective.  

        Direction can be either `credit` or `debit`
      </td>
    </tr>

    <tr>
      <td>
        `company`  
        _string_
      </td>

      <td>
        Unique identifier for the company associated with this payment
      </td>
    </tr>
  </tbody>
</Table>

Objects in the `payment_attempts` array

<Table align={["left","left"]}>
  <thead>
    <tr>
      <th>
        Attribute
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `id`  
        _string_
      </td>

      <td>
        Id of the payment attempt
      </td>
    </tr>

    <tr>
      <td>
        `created_at`  
        _datetime_
      </td>

      <td>
        Datetime at which the payment attempt was created
      </td>
    </tr>

    <tr>
      <td>
        `expected_completion_date`  
        _date_
      </td>

      <td>
        The date on which the payment is expected to settle.
      </td>
    </tr>

    <tr>
      <td>
        `status`  
        _string_
      </td>

      <td>
        Status of the payment attempt in its lifecycle.  

        One of `draft`, `processing`, `paid`, `failed`, `refunded`, `refund_processing`, `refund_failed`, `reversal_processing`, `reversal_failed`, `reversed`, or`canceled`
      </td>
    </tr>

    <tr>
      <td>
        `failure_code`  
        _string_
      </td>

      <td>
        A code describing the reason for a payment attempt failure.  

        One of `insufficient_funds`, `account_closed`, `invalid_account_number`, `debit_not_authorized`, `declined`, `could_not_process`, `account_frozen`, or `invalid_account_holder`
      </td>
    </tr>

    <tr>
      <td>
        `payment_method`  
        _string_
      </td>

      <td>
        A field describing the method of which the payment attempt was executed.  

        One of `ach`, `wire`, `manual`, or `instant`
      </td>
    </tr>

    <tr>
      <td>
        `payment_instrument`  
        _string_
      </td>

      <td>
        If relevant, the id of the corresponding instrument used to complete a payment attempt. When payment\_method is set to `ach`, payment\_instrument will be a [bank account id](https://docs.checkhq.com/reference/the-bank-account-object)
      </td>
    </tr>

    <tr>
      <td>
        `wire_details`  
        _object_
      </td>

      <td>
        An object describing the relevant details to wire Check for a payment. Present if `payment_method` is set to `wire`
      </td>
    </tr>

    <tr>
      <td>
        `ach_details`  
        _object_
      </td>

      <td>
        An object describing the relevant details regarding an ACH payment.  Present if `payment_method` is set to `ach`
      </td>
    </tr>

    <tr>
      <td>
        `retry`
      </td>

      <td>
        Field indicating whether the PaymentAttempt is a retry. Can be one of `null`, `manual` , `automatic` .  

        `null` indicates that the payment attempt is not a retry.  

        `manual` indicates the payment attempt was initiated by a partner in console.  

        `automatic` indicates the payment attempt was initiated automatically by Check’s systems.
      </td>
    </tr>
  </tbody>
</Table>

The `wire_details` object

<Table align={["left","left"]}>
  <thead>
    <tr>
      <th>
        Attribute
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `account_number`  
        _string_
      </td>

      <td>
        Account number for a Check-controlled bank account for wiring purposes
      </td>
    </tr>

    <tr>
      <td>
        `routing_number`  
        _string_
      </td>

      <td>
        Routing number used for wiring purposes.
      </td>
    </tr>

    <tr>
      <td>
        `bank_name`  
        _string_
      </td>

      <td>
        Name of the bank used for wiring purposes.
      </td>
    </tr>

    <tr>
      <td>
        `account_name`  
        _string_
      </td>

      <td>
        Name of the bank account used for wiring purposes.
      </td>
    </tr>

    <tr>
      <td>
        `account_address`  
        _string_
      </td>

      <td>
        Address of the bank account used for wiring purposes.
      </td>
    </tr>

    <tr>
      <td>
        `amount`  
        _number_
      </td>

      <td>
        Decimal-quoted amount of money to wire Check.
      </td>
    </tr>
  </tbody>
</Table>

The `ach_details` object

<Table align={["left","left"]}>
  <thead>
    <tr>
      <th>
        Attribute
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `ach_trace_id`  
        _string_
      </td>

      <td>
        Trace ID associated with Payment Attempt.  Present after attempt is processed if `payment_method = ach`
      </td>
    </tr>

    <tr>
      <td>
        `description`  
        _string_
      </td>

      <td>
        Human-friendly description of Payment
      </td>
    </tr>

    <tr>
      <td>
        `transaction_type_code`  
        _string_
      </td>

      <td>
        Arbitrary descriptive codes that will show up alongside the transaction in the\
        receivers bank statement. Please see our [glossary of these codes](https://docs.checkhq.com/docs/glossary-of-payments) for more information.
      </td>
    </tr>
  </tbody>
</Table>