Skip to main content
POST
/
v1
/
businesses
/
{businessId}
/
invoices
/
{invoiceId}
/
refund
Create dedicated refund on invoice
curl --request POST \
  --url https://sandbox.layerfi.com/v1/businesses/{businessId}/invoices/{invoiceId}/refund \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "external_id": "31415926535",
  "account_identifier": {
    "type": "AccountId",
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  },
  "line_items": [
    {
      "amount": 123,
      "external_id": "<string>",
      "account_identifier": {
        "type": "AccountId",
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
      },
      "prepayment_account_identifier": {
        "type": "AccountId",
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
      },
      "tags": [
        {
          "key": "department",
          "value": "sales",
          "dimension_display_name": "Department",
          "value_display_name": "Sales Department"
        }
      ],
      "memo": "<string>",
      "metadata": {
        "custom_field": "value",
        "any valid json": "below 1kb",
        "nested": {
          "meaning of life": 42,
          "array": []
        }
      },
      "reference_number": "<string>"
    }
  ],
  "completed_at": "2023-11-07T05:31:56Z",
  "refund_processing_fee": 123,
  "processor": "<string>",
  "refunded_payment_fees": [
    {
      "account": {
        "type": "AccountId",
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
      },
      "fee_amount": 123,
      "description": "<string>"
    }
  ],
  "tags": [
    {
      "key": "department",
      "value": "sales",
      "dimension_display_name": "Department",
      "value_display_name": "Sales Department"
    }
  ],
  "memo": "<string>",
  "metadata": {
    "custom_field": "value",
    "any valid json": "below 1kb",
    "nested": {
      "meaning of life": 42,
      "array": []
    }
  },
  "reference_number": "<string>",
  "payment_clearing_account_identifier": {
    "type": "AccountId",
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  }
}
'
{
  "data": {
    "type": "Customer_Refund",
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "external_id": "31415926535",
    "refunded_amount": 123,
    "status": "PAID",
    "completed_at": "2023-11-07T05:31:56Z",
    "is_dedicated": true,
    "allocations": [
      {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "invoice_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "amount": 123,
        "account_identifier": {
          "type": "AccountId",
          "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        },
        "invoice_external_id": "<string>",
        "invoice_line_item_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "invoice_line_item_external_id": "<string>",
        "invoice_payment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "invoice_payment_external_id": "<string>",
        "customer": {
          "type": "CustomerData",
          "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
          "external_id": "31415926535",
          "individual_name": "<string>",
          "company_name": "<string>",
          "email": "<string>",
          "mobile_phone": "<string>",
          "office_phone": "<string>",
          "address_string": "<string>",
          "memo": "<string>",
          "status": "ACTIVE",
          "transaction_tags": [
            {
              "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
              "key": "ExampleTagKey",
              "value": "ExampleTagValue",
              "dimension_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
              "definition_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
              "dimension_display_name": "<string>",
              "value_display_name": "<string>",
              "archived_at": "2023-11-07T05:31:56Z"
            }
          ]
        },
        "transaction_tags": [
          {
            "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "key": "ExampleTagKey",
            "value": "ExampleTagValue",
            "dimension_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "definition_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "dimension_display_name": "<string>",
            "value_display_name": "<string>",
            "archived_at": "2023-11-07T05:31:56Z"
          }
        ],
        "memo": "<string>",
        "metadata": {
          "custom_field": "value",
          "any valid json": "below 1kb",
          "nested": {
            "meaning of life": 42,
            "array": []
          }
        },
        "reference_number": "<string>"
      }
    ],
    "payments": [
      {
        "type": "Customer_Refund_Payment",
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "external_id": "31415926535",
        "refunded_amount": 123,
        "fee": 123,
        "completed_at": "2023-11-07T05:31:56Z",
        "method": "CREDIT_CARD",
        "processor": "STRIPE",
        "payment_clearing_account": {
          "type": "Single_Chart_Account",
          "id": {
            "type": "AccountId",
            "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          },
          "name": "Current Assets",
          "account_number": "4000",
          "stable_name": {
            "type": "StableName",
            "stable_name": "CURRENT_ASSETS"
          },
          "account_type": {
            "display_name": "Asset"
          },
          "account_subtype": {
            "display_name": "Current Assets"
          }
        },
        "refunded_payment_fees": [
          {
            "account": {
              "type": "AccountId",
              "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
            },
            "description": "<string>",
            "fee_amount": 123
          }
        ],
        "transaction_tags": [
          {
            "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "key": "ExampleTagKey",
            "value": "ExampleTagValue",
            "dimension_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "definition_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "dimension_display_name": "<string>",
            "value_display_name": "<string>",
            "archived_at": "2023-11-07T05:31:56Z"
          }
        ],
        "memo": "<string>",
        "metadata": {
          "custom_field": "value",
          "any valid json": "below 1kb",
          "nested": {
            "meaning of life": 42,
            "array": []
          }
        },
        "reference_number": "<string>"
      }
    ],
    "payouts": [
      {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "external_id": "payout-1234",
        "business_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "paid_out_amount": 123,
        "fee": 123,
        "processor": "STRIPE",
        "payment_clearing_account": {
          "type": "Single_Chart_Account",
          "id": {
            "type": "AccountId",
            "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          },
          "name": "Current Assets",
          "account_number": "4000",
          "stable_name": {
            "type": "StableName",
            "stable_name": "CURRENT_ASSETS"
          },
          "account_type": {
            "display_name": "Asset"
          },
          "account_subtype": {
            "display_name": "Current Assets"
          }
        },
        "imported_at": "2023-11-07T05:31:56Z",
        "completed_at": "2023-11-07T05:31:56Z",
        "match": {
          "id": "6b0a3734-f4ef-4fb0-9fc1-3f59b0c1cf99",
          "match_type": "PAYOUT",
          "bank_transaction": {
            "type": "Bank_Transaction_Data",
            "id": "a703c8d6-cfe8-453d-a275-b92eacc6fc6e",
            "business_id": "738ec216-e8e5-48f2-b7f2-cdc89c96b3d4",
            "source": "STRIPE",
            "source_transaction_id": "trxn_1sdOeLQiFAKE2LQBkcvrJw95f",
            "source_account_id": "738ec216-e154-48f2-1111-cdc89c96b3d4",
            "imported_at": "2024-03-19T22:09:53.290591Z",
            "date": "2024-03-06T06:06:40Z",
            "direction": "CREDIT",
            "amount": 87459,
            "counterparty_name": null,
            "description": "Payout (po_1OqnTHISISFAKEiTVBkCiyAERwm).",
            "account_name": "Layer Banking",
            "categorization_status": "MATCHED"
          },
          "details": {
            "type": "Payout_Match",
            "id": "d224508b-b05e-41da-89de-0fbd8a573507",
            "amount": 87459,
            "date": "2024-03-06T00:00:00Z",
            "description": "Payout from STRIPE.",
            "adjustment": null
          }
        },
        "transaction_tags": [
          {
            "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "key": "ExampleTagKey",
            "value": "ExampleTagValue",
            "dimension_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "definition_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "dimension_display_name": "<string>",
            "value_display_name": "<string>",
            "archived_at": "2023-11-07T05:31:56Z"
          }
        ],
        "memo": "<string>",
        "metadata": {
          "custom_field": "value",
          "any valid json": "below 1kb",
          "nested": {
            "meaning of life": 42,
            "array": []
          }
        },
        "reference_number": "<string>"
      }
    ],
    "transaction_tags": [
      {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "key": "ExampleTagKey",
        "value": "ExampleTagValue",
        "dimension_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "definition_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "dimension_display_name": "<string>",
        "value_display_name": "<string>",
        "archived_at": "2023-11-07T05:31:56Z"
      }
    ],
    "memo": "<string>",
    "metadata": {
      "custom_field": "value",
      "any valid json": "below 1kb",
      "nested": {
        "meaning of life": 42,
        "array": []
      }
    },
    "reference_number": "<string>"
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

businessId
string<uuid>
required

The UUID of the business.

invoiceId
string<uuid>
required

The UUID of the invoice to refund.

Body

application/json
external_id
string

Unique ID of the refund in your system for linking purposes. Idempotency key.

Example:

"31415926535"

account_identifier
Account ID · object

Optional account identifier to override what ledger account the dedicated refund comes out of.

line_items
object[] | null

Detailed line items for the refund allocation. Use this for itemized refunds where you need to specify the exact amounts and accounts.

completed_at
string<date-time>

When the dedicated refund was given and paid.

refund_processing_fee
integer<int64>

Fee charged to the business for processing the refund.

method
enum<string>
Available options:
CASH,
CHECK,
CREDIT_CARD,
ACH,
CREDIT_BALANCE,
OTHER
processor
string | null
refunded_payment_fees
object[]

List of fees associated with the payment for this dedicated refund. These are refunded from the payment processor rather than the business.

tags
object[]

List of tags associated with this dedicated refund.

memo
string | null

Memo for any text you would like to associate with the refund (for example, to display to end users).

metadata
object

Arbitrary custom metadata in JSON format with a size limit of 1KB.

Example:
{
"custom_field": "value",
"any valid json": "below 1kb",
"nested": { "meaning of life": 42, "array": [] }
}
reference_number
string | null

Any (typically user-visible) identifier you would like to associate with the refund. Can be used to filter when listing refunds.

payment_clearing_account_identifier
Account ID · object

Optional account identifier to specify the clearing account for inferred refund payments. Only used when the system automatically generates a payment for the dedicated refund.

Response

Refund already exists (idempotent).

data
object
required

A refund represents a transaction that returns value to from a business to a customer. A specific payment can be refunded or a general refund can be applied to an invoice.