# InStoreTransactionInput

Input · GraphQL API

Input fields for creating an in-store transaction.

## Fields

- `amount` (`Amount!`) — required: Billing amount of the request. This value must be greater than 0, and must match the currency format of the merchant account. This can only contain numbers and one decimal point (e.g. x.xx). Can't be greater than the maximum allowed by the processor.
- `merchantAccountId` (`ID`): Merchant account ID used to process the transaction. Currency is also determined by merchant account ID. If no merchant account ID is specified, we will use your default merchant account.
- `orderId` (`String`): Additional information about the transaction. On PayPal transactions, this field maps to the PayPal invoice number. PayPal invoice numbers must be unique in your PayPal business account. Maximum 255 characters or 127 for PayPal transactions.
- `customFields` (`[CustomFieldInput!]`): Collection of custom field/value pairs. You must [set up each custom field in the Control Panel](https://articles.braintreepayments.com/control-panel/custom-fields#creating-a-custom-field) prior to passing it with a request.
- `descriptor` (`TransactionDescriptorInput`): Fields used to define what will appear on a customer's bank statement for a specific purchase.
- `customerId` (`ID`): If charging a single-use payment method, optional ID of a customer to associate the transaction with. If vaulting the single-use payment method, this customer will be associated with the resulting multi-use payment method.
- `vaultPaymentMethodAfterTransacting` (`VaultInStorePaymentMethodAfterTransactingInput`): When a single-use payment method is used to create this transaction, it can be automatically stored in the vault after transacting. If this field is left blank, the single-use payment method will not be vaulted.
- `channel` (`String`): For partners and shopping carts only. If you are a shopping cart provider or other Braintree partner, pass a string identifier for your service. For PayPal transactions, this maps to paypal.bn_code.
- `purchaseOrderNumber` (`String`): A purchase order identification value you associate with this transaction. *Required for Level 2 processing*.
- `tax` (`TransactionTaxInput`): Tax information about the transaction. *Required for Level 2 processing*.
- `shipping` (`TransactionShippingInput`): Shipping information. *Required for Level 3 processing*.
- `discountAmount` (`String`): Discount amount that was included in the total transaction amount. Does not add to the total amount the payment method will be charged. This value can't be negative. Please note that this field is not used on PayPal transactions. *Required for Level 3 processing*.
- `lineItems` (`[TransactionLineItemInput!]`): Line items for this transaction. Up to 249 line items may be specified. *Required for Level 3 processing*.
- `industry` (`TransactionIndustryInput`): Industry data information. Only one of the three sub-input fields can be provided.
- `acceptPartialAuthorization` (`Boolean`): Controls whether to allow partial authorizations (or "partial approvals") for this transaction. Defaults to false.

## Used by

- [RequestChargeFromInStoreReaderInput](/braintree/graphql/reference/types/request-charge-from-in-store-reader-input) — Input; transaction

## GraphQL definition

```graphql
input InStoreTransactionInput {
  amount: Amount!
  merchantAccountId: ID
  orderId: String
  customFields: [CustomFieldInput!]
  descriptor: TransactionDescriptorInput
  customerId: ID
  vaultPaymentMethodAfterTransacting: VaultInStorePaymentMethodAfterTransactingInput
  channel: String
  purchaseOrderNumber: String
  tax: TransactionTaxInput
  shipping: TransactionShippingInput
  discountAmount: String
  lineItems: [TransactionLineItemInput!]
  industry: TransactionIndustryInput
  acceptPartialAuthorization: Boolean
}
```

---

[View the complete GraphQL schema on GitHub](https://raw.githubusercontent.com/braintree/graphql-api/refs/heads/master/schema.graphql)