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

# Create Payment Instruments

export const ParamList = ({items = [], is_child = false}) => {
  return items.map(item => {
    const field_props = {
      id: Math.random().toString(),
      body: item.name,
      name: item.name,
      type: item.type,
      required: item.required
    };
    const enums = item.enums || [];
    const items = item.items || [];
    const has_items = items?.length > 0;
    const has_enums = enums?.length > 0;
    const should_default_open = item.defaultOpen || false;
    const render_child_item = () => {
      const child_props = {
        title: has_enums ? "Possible enum values" : "properties"
      };
      if (should_default_open) child_props.defaultOpen = true;
      const has_inline_enums = has_enums && enums.every(enum_item => typeof enum_item === 'string') && enums.map((enum_item, idx) => {
        const is_last = idx === enums.length - 1;
        const is_2nd_to_last = idx === enums.length - 2;
        return <>
            <code>{enum_item}</code>
            {is_last && ''}
            {is_2nd_to_last && ' or '}
            {!is_last && !is_2nd_to_last && ', '}
          </>;
      });
      const enum_list = has_enums && !has_inline_enums && <Accordion {...child_props}>
          {enums.map((enum_item, index) => <div key={`enum-${index}`}>
              <code>{enum_item.name}</code>
              <br />
              <p>{enum_item.description}</p>
            </div>)}
        </Accordion>;
      const item_list = has_items && <Expandable {...child_props}>
          <ParamList items={items || []} is_child />
        </Expandable>;
      return <>
          <p>
            {item.description}
            {has_inline_enums && [has_inline_enums.length > 1 ? ' One of ' : ' Must be ', ...has_inline_enums]}
          </p>

          {enum_list}
          {item_list}
        </>;
    };
    return is_child ? <ResponseField {...field_props}>{render_child_item()}</ResponseField> : <ParamField {...field_props}>{render_child_item()}</ParamField>;
  });
};

Enables creation of a PaymentInstrument linked to an account, returning card credentials (e.g., card number, expiration, or network token) for use in checkout.

Operation Type: <Tooltip tip="Your request is processed immediately, and you'll receive a response before proceeding.">⚡ Synchronous</Tooltip>

## Path Parameters

<ParamList
  items={[
{
    name: 'acc_id',
    type: 'string',
    required: true,
    description: 'The ID of the Account.'
}
]}
/>

## Request Body Parameters

<ParamList
  items={[
{
    name: 'type',
    type: 'enum',
    required: true,
    description: 'The type of payment instrument to create.',
    enums: ['card', 'network_token', 'inbound_achwire_payment']
},
{
  name: 'inbound_ach_wire_payment',
  type: 'object',
  required: false,
  items: [
    {
      name: 'reversal_account',
      type: 'string | null',
      required: false,
      description: 'ID of the account that should be targeted in the event of a payment reversal.'
    }
  ]
}
]}
/>

## Returns

Returns a PaymentInstrument object.

<RequestExample>
  ```bash cURL theme={null}
  curl https://production.methodfi.com/accounts/acc_4m9amk4KFiaQX/payment_instruments \
    -X POST \
    -H "Method-Version: 2026-03-30" \
    -H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc" \
    -H "Content-Type: application/json" \
    -d '{
      "type": "card"
    }'
  ```

  ```javascript Node.js theme={null}
  const paymentInstrument = await method
    .accounts('acc_4m9amk4KFiaQX')
    .paymentInstruments
    .create({
      type: 'card'
    });
  ```

  ```python Python theme={null}
  payment_instrument = method
    .accounts('acc_4m9amk4KFiaQX')
    .payment_instruments
    .create({
      "type": "card"
    })
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "success": true,
    "data": {
      "id": "pmt_inst_pd788hPVhLT37",
      "account_id": "acc_GAzrD99cUqGEN",
      "type": "card",
      "card": {
        "number": "5555555555551580",
        "exp_month": "04",
        "exp_year": "2027",
        "billing_zip_code": "12345"
      },
      "network_token": null,
      "inbound_achwire_payment": null,
      "chargeable": true,
      "status": "completed",
      "error": null,
      "created_at": "2025-12-03T19:30:56.039Z",
      "updated_at": "2025-12-03T19:30:56.039Z"
    },
    "message": null
  }
  ```
</ResponseExample>
