---
title: "Create a Receipt"
method: POST
path: "/receipts"
tags: ["Receipts"]
---

# Create a Receipt

`POST /receipts`

Create a `Receipt` resource to generate a receipt for a
[Transfer](#Transfers) or [Authorization](#Authorizations). Receipts are
supported for `DEBIT` and `REVERSAL` transfers, as well as `CREDIT` transfers
from [unreferenced refunds](/guides/after-the-payment/refunds#unreferenced-refunds).

Include basic details such as total amount, buyer billing information, merchant
name, and contact info.

Optionally, provide:

- an `amount_breakdown` of charges like subtotal, shipping, and surcharges
- an `items` list with product name, description, price, and quantity
- include `additional_details` as an array of key-value pairs to capture extra metadata, such as "Invoice Number" or "Service Date".

## Headers

- `Finix-Version` string
- `Content-Type` string

## Request body

- CreateReceipt
  - `additional_details` object[] — An array of key-value pairs for including any extra metadata or custom information related to the receipt. Each entry must contain a `name` and a corresponding `value`.
    - `name` string — The label or title for the additional detail being provided. This should be a short, human-readable identifier such as "Invoice Number", "VIN", "Service Date", or "Technician".
    - `value` string — The corresponding value for the detail specified in name. This can be any string that provides relevant context or information to appear on the receipt, such as an actual invoice number, vehicle identification number, or date.
  - `amount_breakdown` object — The individual charges/fees that add up to the total amount.
    - `additional_buyer_charges` AdditionalBuyerCharges, nullable — Additional charges will be incurred by the buyer. The following rules apply: - The `Merchant` must be enabled to charge these surcharges by setting the appropriate flags for each applicable surcharge to `true` using the PUT `/merchants` endpoint. - Only _one_ of the following charges can be applied during creation.
      - `convenience_amount` integer, nullable — A convenience fee to charge the buyer for the transaction. This object property is mutually exclusive.
      - `rent_surcharge_amount` integer, nullable — A rent surcharge to charge the buyer for the transaction. This object property is mutually exclusive.
      - `surcharge_amount` integer, nullable — A surcharge amount to charge the buyer for the transaction. This object property is mutually exclusive.
    - `discount_amount` integer — A reduction applied to the total amount.
    - `estimated_tax_amount` integer — The estimated amount of tax applied to the order.
    - `shipping_amount` integer — The amount charged for shipping the items in the order.
    - `subtotal_amount` integer — The subtotal amount, in cents. This value reflects the total of all line items before applying any discounts, taxes, shipping fees, or other additional charges.
    - `tip_amount` integer — The tip amount included in the order total.
  - `entity_id` string, required — The ID of the `Transfer` or `Authorization` for which the receipt must be generated.
  - `items` object[] — An itemized list of products/services.
    - `description` string — A item description.
    - `image_details` object — Product/service image locations.
      - `primary_image_url` string — The location of a item image.
      - `alternative_image_urls` string[] — The locations of backup images if there is an issue with the primary image.
    - `name` string — The item name.
    - `price_details` object — Additional details about the price.
      - `sale_amount` integer — The on-sale price of the item if it is different from the `regular_amount`.
      - `currency` 'CAD' | 'USD' — ISO 4217 3-letter currency code.
      - `price_type` 'PROMOTIONAL' | 'REGULAR' — Whether the price is on-sale (`PROMOTIONAL`) or the normal price (`REGULAR`).
      - `regular_amount` integer — The standard price of the item without any adjustments applied (e.g. discounts, taxes, sales).
      - `amount_excluding_sales_tax` integer — The amount excluding sales tax.
      - `item_discount_amount` integer — The item discount.
    - `quantity` integer — The item quantity.
  - `requested_delivery_methods` object[] — An array of delivery methods used to send the receipt.
    - `destinations` string[], required — A list of destinations to send the receipt.
    - `type` 'EMAIL' | 'PRINT' | 'SMS', required — The type of delivery method used to send the receipt.
  - `send_receipt_to_buyer` boolean, required — Whether to send a receipt to the buyer.

## Response `201`

A single Receipt

- Receipt
  - `id` string — The ID of the resource.
  - `created_at` string, date-time — Timestamp of when the object was created.
  - `updated_at` string, date-time — Timestamp of when the object was last updated.
  - `amount` integer — The total amount that will be debited in cents (e.g. 100 cents to debit $1.00).
  - `application_id` string — ID of the `Application` the resource was created under.
  - `currency` 'CAD' | 'USD' — ISO 4217 3-letter currency code.
  - `amount_breakdown` object, nullable — The individual charges/fees that add up to the total amount.
    - `subtotal_amount` integer — The subtotal amount, in cents. This value reflects the total of all line items before applying any discounts, taxes, shipping fees, or other additional charges.
    - `discount_amount` integer, nullable — A reduction applied to the total amount.
    - `shipping_amount` integer, nullable — The amount charged for shipping the items in the order.
    - `estimated_tax_amount` integer, nullable — The estimated amount of tax applied to the order.
    - `tip_amount` integer, nullable — The tip amount included in the order total.
    - `additional_buyer_charges` AdditionalBuyerCharges, nullable — Additional charges will be incurred by the buyer. The following rules apply: - The `Merchant` must be enabled to charge these surcharges by setting the appropriate flags for each applicable surcharge to `true` using the PUT `/merchants` endpoint. - Only _one_ of the following charges can be applied during creation.
      - `convenience_amount` integer, nullable — A convenience fee to charge the buyer for the transaction. This object property is mutually exclusive.
      - `rent_surcharge_amount` integer, nullable — A rent surcharge to charge the buyer for the transaction. This object property is mutually exclusive.
      - `surcharge_amount` integer, nullable — A surcharge amount to charge the buyer for the transaction. This object property is mutually exclusive.
  - `send_receipt_to_buyer` boolean — Whether to send a receipt to the buyer.
  - `device_id` string, nullable — Applies to [in-person payments](/guides/in-person-payments). The ID of the Point-of-Sale terminal used to process the payment.
  - `entity_details` object — The `Transfer` or `Authorization` details from which to generate the receipt.
    - `id` string — The ID of the `Transfer` or `Authorization`.
    - `created_at` string — The timestamp when the `Transfer` or `Authorization` was created.
    - `operation_key` 'PUSH_TO_CARD' | 'PULL_FROM_CARD' | 'CARD_PRESENT_SALE' | 'CARD_PRESENT_UNREFERENCED_REFUND' | 'SALE' | 'UNREFERENCED_REFUND' | 'MERCHANT_CREDIT_ADJUSTMENT' | 'MERCHANT_DEBIT_ADJUSTMENT', nullable — Details the operation that's performed in the transaction.
    - `type` 'TRANSFER' | 'AUTHORIZATION' — The type of transaction the receipt was created for.
  - `type` 'BUYER' | 'MERCHANT' — The type of receipt, either for the customer (`BUYER`) or the merchant (`MERCHANT`) for a CP (card-present) transaction. For a CNP transaction, the `type` will be `BUYER`.
  - `items` object[] — An itemized list of products/services.
    - `description` string — A item description.
    - `image_details` object — Product/service image locations.
      - `primary_image_url` string — The location of a item image.
      - `alternative_image_urls` string[] — The locations of backup images if there is an issue with the primary image.
    - `name` string — The item name.
    - `price_details` object — Additional details about the price.
      - `sale_amount` integer — The on-sale price of the item if it is different from the `regular_amount`.
      - `currency` 'CAD' | 'USD' — ISO 4217 3-letter currency code.
      - `price_type` 'PROMOTIONAL' | 'REGULAR' — Whether the price is on-sale (`PROMOTIONAL`) or the normal price (`REGULAR`).
      - `regular_amount` integer — The standard price of the item without any adjustments applied (e.g. discounts, taxes, sales).
      - `amount_excluding_sales_tax` integer — The amount excluding sales tax.
      - `item_discount_amount` integer — The item discount.
    - `quantity` integer — The item quantity.
  - `merchant_details` object — Object containing `Merchant` details.
    - `id` string — The ID of the `Merchant`.
    - `business_name` string, nullable — The merchant's legal business name. For a sole proprietorship, pass the owner's legal first name, last name, and middle initial.
    - `doing_business_as` string, nullable — Alternate names of the business. If there are no other names, pass the same value used for `business_name`.
    - `business_address` object, nullable — The primary address for the legal entity.
      - `city` string, nullable — City.
      - `country` 'ABW' | 'AFG' | 'AGO' | 'AIA' | 'ALA' | 'ALB' | 'AND' | 'ARE' | 'ARG' | 'ARM' | 'ASM' | 'ATA' | 'ATF' | 'ATG' | 'AUS' | 'AUT' | 'AZE' | 'BDI' | 'BEL' | 'BEN' | 'BES' | 'BFA' | 'BGD' | 'BGR' | 'BHR' | 'BHS' | 'BIH' | 'BLM' | 'BLR' | 'BLZ' | 'BMU' | 'BOL' | 'BRA' | 'BRB' | 'BRN' | 'BTN' | 'BVT' | 'BWA' | 'CAF' | 'CAN' | 'CCK' | 'CHE' | 'CHL' | 'CHN' | 'CIV' | 'CMR' | 'COD' | 'COG' | 'COK' | 'COL' | 'COM' | 'CPV' | 'CRI' | 'CUB' | 'CUW' | 'CXR' | 'CYM' | 'CYP' | 'CZE' | 'DEU' | 'DJI' | 'DMA' | 'DNK' | 'DOM' | 'DZA' | 'ECU' | 'EGY' | 'ERI' | 'ESH' | 'ESP' | 'EST' | 'ETH' | 'FIN' | 'FJI' | 'FLK' | 'FRA' | 'FRO' | 'FSM' | 'GAB' | 'GBR' | 'GEO' | 'GGY' | 'GHA' | 'GIB' | 'GIN' | 'GLP' | 'GMB' | 'GNB' | 'GNQ' | 'GRC' | 'GRD' | 'GRL' | 'GTM' | 'GUF' | 'GUM' | 'GUY' | 'HKG' | 'HMD' | 'HND' | 'HRV' | 'HTI' | 'HUN' | 'IDN' | 'IMN' | 'IND' | 'IOT' | 'IRL' | 'IRN' | 'IRQ' | 'ISL' | 'ISR' | 'ITA' | 'JAM' | 'JEY' | 'JOR' | 'JPN' | 'KAZ' | 'KEN' | 'KGZ' | 'KHM' | 'KIR' | 'KNA' | 'KOR' | 'KWT' | 'LAO' | 'LBN' | 'LBR' | 'LBY' | 'LCA' | 'LIE' | 'LKA' | 'LSO' | 'LTU' | 'LUX' | 'LVA' | 'MAC' | 'MAF' | 'MAR' | 'MCO' | 'MDA' | 'MDG' | 'MDV' | 'MEX' | 'MHL' | 'MKD' | 'MLI' | 'MLT' | 'MMR' | 'MNE' | 'MNG' | 'MNP' | 'MRT' | 'MSR' | 'MTQ' | 'MUS' | 'MWI' | 'MYS' | 'MYT' | 'NAM' | 'NCL' | 'NER' | 'NFK' | 'NGA' | 'NIC' | 'NIU' | 'NLD' | 'NOR' | 'NPL' | 'NRU' | 'NZL' | 'OMN' | 'PAK' | 'PAN' | 'PCN' | 'PER' | 'PHL' | 'PLW' | 'PNG' | 'POL' | 'PRI' | 'PRK' | 'PRT' | 'PRY' | 'PSE' | 'PYF' | 'QAT' | 'REU' | 'ROU' | 'RUS' | 'RWA' | 'SAU' | 'SDN' | 'SEN' | 'SGP' | 'SGS' | 'SHN' | 'SJM' | 'SLB' | 'SLE' | 'SLV' | 'SMR' | 'SOM' | 'SPM' | 'SRB' | 'SSD' | 'STP' | 'SUR' | 'SVK' | 'SVN' | 'SWE' | 'SWZ' | 'SXM' | 'SYC' | 'SYR' | 'TCA' | 'TCD' | 'TGO' | 'THA' | 'TJK' | 'TKL' | 'TKM' | 'TLS' | 'TON' | 'TTO' | 'TUN' | 'TUR' | 'TUV' | 'TWN' | 'TZA' | 'UGA' | 'UKR' | 'UMI' | 'URY' | 'USA' | 'UZB' | 'VAT' | 'VCT' | 'VEN' | 'VGB' | 'VIR' | 'VNM' | 'VUT' | 'WLF' | 'WSM' | 'XKX' | 'YEM' | 'ZAF' | 'ZMB' | 'ZWE', nullable
      - `line1` string, nullable — The first line of the address.
      - `line2` string, nullable — The second line of the address.
      - `postal_code` string, nullable — The zip or postal code.
      - `region` string, nullable — 2-letter state code.
  - `payment_instrument_details` object — Object containing `Payment Instrument` details.
    - `id` string — The ID of the `Payment Instrument`.
    - `type` 'PAYMENT_CARD' — The type of `Payment Instrument`.
    - `billing_address` object — The primary address associated with the `Payment Instrument`.
      - `city` string, nullable — City.
      - `country` 'ABW' | 'AFG' | 'AGO' | 'AIA' | 'ALA' | 'ALB' | 'AND' | 'ARE' | 'ARG' | 'ARM' | 'ASM' | 'ATA' | 'ATF' | 'ATG' | 'AUS' | 'AUT' | 'AZE' | 'BDI' | 'BEL' | 'BEN' | 'BES' | 'BFA' | 'BGD' | 'BGR' | 'BHR' | 'BHS' | 'BIH' | 'BLM' | 'BLR' | 'BLZ' | 'BMU' | 'BOL' | 'BRA' | 'BRB' | 'BRN' | 'BTN' | 'BVT' | 'BWA' | 'CAF' | 'CAN' | 'CCK' | 'CHE' | 'CHL' | 'CHN' | 'CIV' | 'CMR' | 'COD' | 'COG' | 'COK' | 'COL' | 'COM' | 'CPV' | 'CRI' | 'CUB' | 'CUW' | 'CXR' | 'CYM' | 'CYP' | 'CZE' | 'DEU' | 'DJI' | 'DMA' | 'DNK' | 'DOM' | 'DZA' | 'ECU' | 'EGY' | 'ERI' | 'ESH' | 'ESP' | 'EST' | 'ETH' | 'FIN' | 'FJI' | 'FLK' | 'FRA' | 'FRO' | 'FSM' | 'GAB' | 'GBR' | 'GEO' | 'GGY' | 'GHA' | 'GIB' | 'GIN' | 'GLP' | 'GMB' | 'GNB' | 'GNQ' | 'GRC' | 'GRD' | 'GRL' | 'GTM' | 'GUF' | 'GUM' | 'GUY' | 'HKG' | 'HMD' | 'HND' | 'HRV' | 'HTI' | 'HUN' | 'IDN' | 'IMN' | 'IND' | 'IOT' | 'IRL' | 'IRN' | 'IRQ' | 'ISL' | 'ISR' | 'ITA' | 'JAM' | 'JEY' | 'JOR' | 'JPN' | 'KAZ' | 'KEN' | 'KGZ' | 'KHM' | 'KIR' | 'KNA' | 'KOR' | 'KWT' | 'LAO' | 'LBN' | 'LBR' | 'LBY' | 'LCA' | 'LIE' | 'LKA' | 'LSO' | 'LTU' | 'LUX' | 'LVA' | 'MAC' | 'MAF' | 'MAR' | 'MCO' | 'MDA' | 'MDG' | 'MDV' | 'MEX' | 'MHL' | 'MKD' | 'MLI' | 'MLT' | 'MMR' | 'MNE' | 'MNG' | 'MNP' | 'MRT' | 'MSR' | 'MTQ' | 'MUS' | 'MWI' | 'MYS' | 'MYT' | 'NAM' | 'NCL' | 'NER' | 'NFK' | 'NGA' | 'NIC' | 'NIU' | 'NLD' | 'NOR' | 'NPL' | 'NRU' | 'NZL' | 'OMN' | 'PAK' | 'PAN' | 'PCN' | 'PER' | 'PHL' | 'PLW' | 'PNG' | 'POL' | 'PRI' | 'PRK' | 'PRT' | 'PRY' | 'PSE' | 'PYF' | 'QAT' | 'REU' | 'ROU' | 'RUS' | 'RWA' | 'SAU' | 'SDN' | 'SEN' | 'SGP' | 'SGS' | 'SHN' | 'SJM' | 'SLB' | 'SLE' | 'SLV' | 'SMR' | 'SOM' | 'SPM' | 'SRB' | 'SSD' | 'STP' | 'SUR' | 'SVK' | 'SVN' | 'SWE' | 'SWZ' | 'SXM' | 'SYC' | 'SYR' | 'TCA' | 'TCD' | 'TGO' | 'THA' | 'TJK' | 'TKL' | 'TKM' | 'TLS' | 'TON' | 'TTO' | 'TUN' | 'TUR' | 'TUV' | 'TWN' | 'TZA' | 'UGA' | 'UKR' | 'UMI' | 'URY' | 'USA' | 'UZB' | 'VAT' | 'VCT' | 'VEN' | 'VGB' | 'VIR' | 'VNM' | 'VUT' | 'WLF' | 'WSM' | 'XKX' | 'YEM' | 'ZAF' | 'ZMB' | 'ZWE', nullable
      - `line1` string, nullable — The first line of the address.
      - `line2` string, nullable — The second line of the address.
      - `postal_code` string, nullable — The zip or postal code.
      - `region` string, nullable — 2-letter state code.
    - `bin` string — The Bank Identification Number for the `Payment Instrument`.
    - `brand` 'UNKNOWN' | 'DINERS_CLUB_INTERNATIONAL' | 'DANKORT' | 'MIR' | 'TROY' | 'UATP' | 'CHINA_T_UNION' | 'CHINA_UNION_PAY' | 'AMERICAN_EXPRESS' | 'VERVE' | 'RUPAY' | 'DISCOVER' | 'JCB' | 'MASTERCARD' | 'INTERPAYMENT' | 'INSTAPAYMENT' | 'MAESTRO' | 'VISA' | 'LANKAPAY' | 'DINERS_CLUB' | 'INTERAC' — The `brand` of the card saved in the `Payment Instrument`.
    - `card_type` 'CREDIT' | 'DEBIT' | 'HSA_FSA' | 'NON_RELOADABLE_PREPAID' | 'RELOADABLE_PREPAID' | 'UNKNOWN' — The type of payment card saved in the `Payment Instrument`.
    - `last_four` string — The last four digits of the card or bank account number.
    - `name` string, nullable — The name of the bank account or card owner.
  - `network_details` object, nullable — An object containing EMV data.
    - `application_label` string, nullable — The EMV application label. Tag 50 from the EMVCo standard.
    - `application_identifier` string, nullable — The ID of the application used in the transaction. Tag 9F06 from the EMVCo standard.
    - `cryptogram` string, nullable — The cryptogram returned by the card. Tag 9F26 of the EMVCo standard.
    - `approval_code` string, nullable — The unique ID used to identify the approval of the `Transfer`.
  - `requested_delivery_methods` object[] — An array of delivery methods used to send the receipt.
    - `type` 'EMAIL' | 'SMS' | 'PRINT', required — The type of delivery method used to send the receipt.
    - `destinations` string[], required — A list of destinations to send the receipt.
  - `receipt_url` string — The location of the receipt on Finix's Amazon S3.
  - `_links` object — An object containing link(s) relevant to the request. You can store these links for follow-up requests.
    - `self` object
      - `href` string — The path to the new resource.

## Other responses

- `400` — Bad Request. The server cannot process the request due to malformed syntax or invalid data.
- `401` — Unauthorized. Authentication is required and has failed or has not been provided.
- `403` — Forbidden. The client is authenticated but does not have permission to access the resource.
- `406` — Not Acceptable. The server could not accept the submitted request. Confirm how the request was formatted and submitted.
- `422` — Unprocessable Entity. The syntax of the request content was correct, but the server was unable to process the contained instructions.

---

[API](https://skmtc.net/finix/apis/finix-api-reference.md) · [All operations](https://skmtc.net/finix/apis/finix-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/finix/finix-api-reference/versions/5426f6f99c52/schema)
