"""Exposes a URL that specifies the behaviour of this scalar.""" directive @specifiedBy( """The URL that specifies the behaviour of this scalar.""" url: String! ) on SCALAR """Indicates an Input Object is a OneOf Input Object.""" directive @oneOf on INPUT_OBJECT """Top-level input fields for accepting a dispute.""" input AcceptDisputeInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The ID of the dispute to be accepted.""" disputeId: ID! } """Top-level field returned when accepting a dispute.""" type AcceptDisputePayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Information about the dispute that was accepted.""" dispute: Dispute } """An OAuth access token.""" type AccessToken { """The access token.""" accessToken: String """The refresh token for getting a new access token.""" refreshToken: String """The type of token.""" tokenType: OAuthTokenType """Expiration in ISO time format.""" expiresAt: String } """The status of the business account creation request.""" enum AccountCreationStatus { COMPLETED DECLINED IN_SETUP IN_VETTING SUBMITTED } """ Input fields for searching for BusinessAccountCreationRequests by their `AccountCreationStatus`. """ input AccountCreationStatusSearchInput { """The creation status is exactly this value.""" is: AccountCreationStatus """The creation status is one of these values.""" in: [AccountCreationStatus!] } """An enumeration controlling the account information inquiry service.""" enum AccountInformationInquiry { """Sends AII data to the processor.""" SEND_DATA } """ A NACHA standard entry class (SEC) code, which designates how an ACH transaction was authorized. """ enum ACHStandardEntryClassCode { """Corporate credit or debit.""" CCD """Prearranged payment and deposit.""" PPD """Telephone-initiated.""" TEL """Internet-initiated/mobile.""" WEB } """ The type of ACH transaction, indicating whether it is processed through the standard or same-day ACH network. """ enum ACHType { """Same-day ACH processing.""" SAME_DAY """Standard ACH processing.""" STANDARD } """ The authentication context class reference that indcates how a universal access token can be used. """ enum ACRType { CLIENT SERVER } """Representation of an address.""" type Address { """Company name.""" company: String """The street address.""" streetAddress: String @deprecated(reason: "Use `addressLine1` instead.") """ The first line of the street address, such as street number, street name. """ addressLine1: String """Extended address information, such as an apartment or suite number.""" extendedAddress: String @deprecated(reason: "Use `addressLine2` instead.") """ Extended address information, such as an apartment number or suite number. """ addressLine2: String """First name.""" firstName: String @deprecated(reason: "Use `fullName` instead.") """Last name.""" lastName: String @deprecated(reason: "Use `fullName` instead.") """Full name.""" fullName: String """Locality/city.""" locality: String @deprecated(reason: "Use `adminArea2` instead.") """A city, town, or village.""" adminArea2: String """State or province.""" region: String @deprecated(reason: "Use `adminArea1` instead.") """ Highest level subdivision, such as state, province, or ISO-3166-2 subdivison. """ adminArea1: String """ Postal code, otherwise known as CAP, CEP, Eircode, NPA, PIN, PLZ, or ZIP code. """ postalCode: String """Country code for the address.""" countryCode: CountryCode """Phone number.""" phoneNumber: String @deprecated(reason: "Use `phone` instead") """Phone number.""" phone: Phone } """Input fields for an Address.""" input AddressInput { """Company name. 255 character maximum.""" company: String """The street address. 255 character maximum.""" streetAddress: String """ The first line of the street address, such as street number, street name. 255 character maximum. """ addressLine1: String """ Extended address information, such as an apartment or suite number. 255 character maximum. """ extendedAddress: String """ Extended address information, such as apartment number or suite number. 255 character maximum. """ addressLine2: String """First name. 255 character maximum.""" firstName: String """Last name. 255 character maximum.""" lastName: String """Locality/city. 255 character maximum.""" locality: String """A city, town or village. 255 character maximum.""" adminArea2: String """State or province. 255 character maximum.""" region: String """ Highest level subdivision, such as state, province or ISO-3166-2 subdivision. 255 character maximum. """ adminArea1: String """ Postal code in any country's format, otherwise known as CAP, CEP, Eircode, NPA, PIN, PLZ, or ZIP code. Nine alphanumeric characters maximum, may also contain spaces and hyphens. *Required in the shipping address for Level 3 processing*. """ postalCode: String """ Country code for the address. *Required in the shipping address for Level 3 processing*. """ countryCode: CountryCode """Phone associated with the address.""" phone: PhoneInput } """ A monetary amount, either a whole number or a number with exactly two or three decimal places. """ scalar Amount """ Response codes for name verification if the processor supports the account information inquiry. """ enum AniNameResponseCode { MATCH NOT_SUPPORTED NOT_VERIFIED NO_INPUT NO_MATCH PARTIAL_MATCH RETRY } """Configuration for Apple Pay on iOS.""" type ApplePayConfiguration { """The environment being used for Apple Pay.""" status: ApplePayStatus """ The country code of the acquiring bank where the transaction is likely to be processed. """ countryCode: CountryCodeAlpha2 """The merchant's Apple Pay currency code.""" currencyCode: CurrencyCodeAlpha """ The merchant identifier that must be supplied when making an Apple Pay request. """ merchantIdentifier: String """A list of card brands supported by the merchant for Apple Pay.""" supportedCardBrands: [CreditCardBrandCode!] } """Apple Pay payment token details.""" input ApplePaymentTokenInput { """The base64-encoded Apple Pay payment token data.""" paymentData: String! """The name of the card as it appears in the Apple Pay Wallet.""" paymentInstrumentName: String """The payment Network for the card.""" paymentNetwork: String! """A unique transaction identifier provided by Apple.""" transactionIdentifier: String } """Additional information about the payment method specific to Apple Pay.""" type ApplePayOriginDetails { """ A human-readable description of the Apple Pay payment method. This usually consists of the Apple Pay card type and its last four digits. If there is no underlying credit card, this will describe the customer's payment method and the parent CreditCardDetail object's last4 field will be null. """ paymentInstrumentName: String """ The first 6 digits of the credit card, known as the Bank Identification Number. This BIN may differ from the BIN of the customer's actual card. """ bin: String """ The Merchant Payment Account Number (MPAN), a unique identifier for the customer's card. """ merchantTokenIdentifier: String """The last two digits of the device primary account number.""" dpanLastTwo: String """Indicates whether this is a device token.""" isDeviceToken: Boolean """ The last four digits of the card number. For network tokenized payments, this is the last four digits of the source card(FPAN).For other payment methods, this is the last four digits of the virtual card(DPAN). """ last4: String """ The payment account reference (PAR) value, a non-financial reference number for the card. """ paymentAccountReference: String } """ Top-level fields returned when retrieving Apple Pay registered domains. """ type ApplePayRegisteredDomainsPayload { """A list of domains that have been registered with Apple for Apple Pay.""" registeredDomains: [String!] } """The environment being used for Apple Pay.""" enum ApplePayStatus { MOCK OFF PRODUCTION mock off production } """Configuration for Apple Pay on web.""" type ApplePayWebConfiguration { """The merchant's Apple Pay country code.""" countryCode: CountryCodeAlpha2 """The merchant's Apple Pay currency code.""" currencyCode: CurrencyCodeAlpha """ The merchant identifier that must be supplied when making an Apple Pay request. """ merchantIdentifier: String """A list of card brands supported by the merchant for Apple Pay.""" supportedCardBrands: [CreditCardBrandCode!] } """ Information about the [customer authentication regulation environment](https://developer.paypal.com/braintree/docs/guides/3d-secure/authentication-insight/javascript/v3) that applies to the payment method when processed with the provided merchant account. """ type AuthenticationInsight { """The merchant account used to determine authentication insight.""" merchantAccountId: String """ The customer authentication regulation environment that applies when transacting with this payment method and merchant account. """ customerAuthenticationRegulationEnvironment: CustomerAuthenticationRegulationEnvironment """A value indicating when to perform further customer authentication.""" customerAuthenticationIndicator: CustomerAuthenticationIndicator } """ Input fields when requesting authentication insight for a payment method. """ input AuthenticationInsightInput { """ ID of the merchant account that will be used when charging this payment method. """ merchantAccountId: ID! """ The intended transaction amount to be authorized on this payment method. """ amount: Amount """ A flag indicating whether the customer has consented to further recurring transactions. """ recurringCustomerConsent: Boolean """ The maximum amount permitted for recurring transactions set by the customer. """ recurringMaxAmount: Amount } """ Records of authorization adjustments performed when a transaction is captured for less or more than its original authorization amount. """ type AuthorizationAdjustment { """ Difference between the authorized amount and the amount captured. Negative values indicate the authorized amount was adjusted down. """ amount: MonetaryAmount """Indicates if the adjustment was successful or not.""" successful: Boolean """Date and time when this adjustment was performed.""" timestamp: Timestamp """Processor response from this adjustment.""" processorResponse: TransactionAuthorizationAdjustmentProcessorResponse } """Accompanying information for an authorization expired transaction.""" type AuthorizationExpiredEvent implements PaymentStatusEvent { """The new status of the transaction.""" status: PaymentStatus """ Date and time when the authorization for this transaction was marked expired. """ timestamp: Timestamp """The amount of the transaction for this status event.""" amount: MonetaryAmount """The source for the transaction change to the new status.""" source: PaymentSource """Whether or not this is the final state for the transaction.""" terminal: Boolean } """ Top-level input fields for creating a transaction by authorizing a credit card. """ input AuthorizeCreditCardInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a transaction being created (in any status), then the same transaction in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no transaction is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """ID of a credit card payment method to be authorized.""" paymentMethodId: ID! """Input fields related to the credit card being authorized.""" options: CreditCardTransactionOptionsInput """ Input fields for the authorization, with details that will define the resulting transaction. """ transaction: TransactionInput! } """Accompanying information for an authorized transaction.""" type AuthorizedEvent implements PaymentStatusEvent { """The new status of the transaction.""" status: PaymentStatus """Date and time when the transaction was authorized.""" timestamp: Timestamp """ The amount the transaction was authorized for. This will match the amount on the transaction itself. In most cases, you can't request to settle more than this amount. """ amount: MonetaryAmount """The source for the transaction change to the new status.""" source: PaymentSource """ Fields describing the payment processor response to the authorization request. """ processorResponse: TransactionAuthorizationProcessorResponse """Fields describing the network response to the authorization request.""" networkResponse: PaymentNetworkResponse """Risk decision for this transaction.""" riskDecision: RiskDecision """Whether or not this is the final state for the transaction.""" terminal: Boolean """ The date/time the transaction will expire if it has the authorized status. For more details on authorization expiration timeframes, see the [Statuses reference](https://developers.braintreepayments.com/reference/general/statuses#authorization-expired). """ authorizationExpiresAt: Timestamp """ User name of the person who performed an action that triggered the status change of the transaction. """ userName: String } """ Top-level input fields for creating an in-store transaction by authorizing a credit card. """ input AuthorizeInStoreCreditCardInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a transaction being created (in any status), then the same transaction in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no transaction is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """ID of a credit card payment method to be authorized.""" paymentMethodId: ID! """Input fields related to the in-store credit card being authorized.""" options: InStoreCreditCardTransactionOptionsInput """ Input fields for the authorization, with details that will define the resulting transaction. """ transaction: TransactionInput! } """ Top-level input fields for creating a transaction by authorizing a payment method. """ input AuthorizePaymentMethodInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a transaction being created (in any status), then the same transaction in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no transaction is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """ID of a payment method to be authorized.""" paymentMethodId: ID! """ Input fields for the authorization, with details that will define the resulting transaction. """ transaction: TransactionInput! } """ Top-level input fields for creating a transaction by authorizing a PayPal account. """ input AuthorizePayPalAccountInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a transaction being created (in any status), then the same transaction in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no transaction is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """ID of a PayPal payment method to be authorized.""" paymentMethodId: ID! """Input fields related to the PayPal account being authorized.""" options: AuthorizePayPalAccountOptionsInput """ Input fields for the authorization, with details that will define the resulting transaction. """ transaction: TransactionInput! } """Input fields for authorizing a PayPal account.""" input AuthorizePayPalAccountOptionsInput { """ Variable passed directly to PayPal for your own tracking purposes. Customers do not see this value. """ customField: String """ Description of the transaction that is displayed to customers in PayPal email receipts. """ description: String } """ Top-level input fields for creating a transaction by authorizing a Venmo account. """ input AuthorizeVenmoAccountInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a transaction being created (in any status), then the same transaction in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no transaction is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """ID of a Venmo payment method to be authorized.""" paymentMethodId: ID! """Input fields related to the Venmo account being authorized.""" options: AuthorizeVenmoAccountOptionsInput """ Input fields for the authorization, with details that will define the resulting transaction. """ transaction: TransactionInput! } """Input fields for authorizing a Venmo account.""" input AuthorizeVenmoAccountOptionsInput { """Specifies which Venmo business profile to use for the transaction.""" profileId: String } """ Response codes from the processing bank's Address Verification System (AVS) and CVV verification. """ enum AvsCvvResponseCode { """AVS or CVV checks were skipped via the API.""" BYPASS DOES_NOT_MATCH ISSUER_DOES_NOT_PARTICIPATE MATCHES NOT_APPLICABLE NOT_PROVIDED NOT_VERIFIED SYSTEM_ERROR } """Information about the credit card based on its BIN.""" type BinRecord { """Whether or not the card is prepaid, such as a gift card.""" prepaid: BinRecordValue """ Whether the card is designated only to be used for healthcare expenses. """ healthcare: BinRecordValue """Whether or not the card is a debit card.""" debit: BinRecordValue """ Whether the card is regulated by the Durbin Amendment due to the bank's assets, and therefore has a maximum interchange rate. """ durbinRegulated: BinRecordValue """ Whether or not the card is a commercial card and capable of processing Level 2 transactions. """ commercial: BinRecordValue """Whether or not the card is designated for employee wages.""" payroll: BinRecordValue """The name of the bank that issued the card.""" issuingBank: String """The country code of the country that issued the card.""" countryOfIssuance: CountryCode """ A code representing any special program from the card issuer the card is part of. """ productId: String """Whether or not the prepaid card is reloadable.""" prepaidReloadable: BinRecordValue """Whether or not the card is business.""" business: BinRecordValue """Whether or not the card is consumer.""" consumer: BinRecordValue """Whether or not the card is corporate.""" corporate: BinRecordValue """Whether or not the card is purchase.""" purchase: BinRecordValue } """ A boolean-like value that includes `UNKNOWN` in the case where the information isn't available. """ enum BinRecordValue { NO UNKNOWN YES No Unknown Yes } """Configuration for payment methods in legacy clients.""" type BraintreeApiConfiguration { """The URL for tokenizing payment methods.""" url: String """The authentication for tokenizing payment methods.""" accessToken: String } """Record of onboarding request.""" type BusinessAccountCreationRequest implements Node { """Unique identifier generated by PayPal for the onboarding request.""" id: ID! """ Information about the merchant account that is being created as a result of the request. """ merchantAccount: MerchantAccount """The account creation status for this account.""" creationStatus: AccountCreationStatus """The completion date and time of the merchant account application.""" completedAt: Timestamp """The submitted date and time of the merchant account application.""" submittedAt: Timestamp } """A paginated list of BusinessAccountCreationRequests.""" type BusinessAccountCreationRequestConnection { """A list of BusinessAccountCreationRequests.""" edges: [BusinessAccountCreationRequestConnectionEdge] """ Information about the page of BusinessAccountCreationRequests contained in `edges`. """ pageInfo: PageInfo! } """ A BusinessAccountCreationRequest within a BusinessAccountCreationRequestConnection. """ type BusinessAccountCreationRequestConnectionEdge { """ This BusinessAccountCreationRequest's location within the BusinessAccountCreationRequestConnection. Used for requesting additional pages. """ cursor: String """The business account creation request.""" node: BusinessAccountCreationRequest } """Input fields for searching for BusinessAccountCreationRequests.""" input BusinessAccountCreationRequestSearchInput { """Find BusinessAccountCreationRequests with an ID or IDs.""" id: SearchValueInput """Find BusinessAccountCreationRequests by their external ID or IDs.""" externalId: SearchValueInput """Find BusinessAccountCreationRequests by their creation status.""" status: AccountCreationStatusSearchInput } """The type of the business.""" enum BusinessType { GOVERNMENT_AGENCY LIMITED_LIABILITY_CORPORATION NONPROFIT PARTNERSHIP PARTNERSHIP_LLP @deprecated(reason: "No longer applicable, use PARTNERSHIP instead.") PRIVATE_CORPORATION PUBLIC_CORPORATION SOLE_PROPRIETORSHIP TAX_EXEMPT @deprecated(reason: "No longer applicable, use NONPROFIT instead.") } """Top-level input fields for capturing an authorized transaction.""" input CaptureTransactionInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a transaction being created (in any status), then the same transaction in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no transaction is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """ID of the transaction to be captured.""" transactionId: ID! """ Input fields for the capture, with details that will define the resulting transaction. """ transaction: CaptureTransactionOptionsInput } """ Input fields for a capture, with details that will define the resulting transaction. """ input CaptureTransactionOptionsInput { """ The amount to capture on the transaction. Must be greater than 0. You can't capture more than the authorized amount unless your industry and processor support settlement adjustment (capturing a certain percentage over the authorized amount); [contact us for assistance](https://help.braintreepayments.com?issue=TransactionProcessingQuestion). If you capture an amount that is less than what was authorized, the transaction object will return the amount captured. """ amount: Amount """ Fields used to define what will appear on a customer's bank statement for a specific purchase. If specified, this will update the existing descriptor on the transaction. """ descriptor: TransactionDescriptorInput """ 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*. """ discountAmount: String """ Line items for this transaction. Up to 249 line items may be specified. *Required for Level 3 processing*. """ lineItems: [TransactionLineItemInput!] """ 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. If specified, this will update the existing order ID on the transaction. """ orderId: String """ A purchase order identification value you associate with this transaction. *Required for Level 2 processing*. """ purchaseOrderNumber: String """ Shipping information. *Required for Level 3 processing*. """ shipping: TransactionShippingInput """ Tax information about the transaction. *Required for Level 2 processing*. """ tax: TransactionTaxInput """ Industry data information. Only one of the three sub-input fields can be provided. """ industry: TransactionIndustryInput } """The type of account to be used when transacting with a combo card.""" enum CardAccountType { CREDIT DEBIT } """ Additional information about a card present payment method supplied by an in-store payment reader. """ type CardPresentOriginDetails implements InStoreReaderOriginDetails { """ The authorization mode used to perform the transaction on the payment reader. """ authorizationMode: InStoreReaderAuthorizationMode """An indicator for whether the transaction was verified via pin.""" pinVerified: Boolean """ The input mode used on the payment reader to facilitate an in-store transaction. """ inputMode: PaymentReaderInputMode """The ID of the terminal that was processed this transaction.""" terminalId: String """The ID of the payment reader that processed this transaction.""" readerId: String """The ID of the store where this transaction was processed.""" storeId: String } """ A list of challenges that are required by the current merchant to process a given credit card. """ enum Challenge { CVV POSTAL_CODE cvv postal_code } """ The chargeback protection level indicates the transaction or dispute's protection status. """ enum ChargebackProtectionLevel { """ The transaction or dispute is protected by the effortless chargeback protection product. """ EFFORTLESS """ The merchant has not enrolled any chargeback protection products, or the merchant is registered, but the transaction or dispute is not protected. """ NOT_PROTECTED """ The transaction or dispute is protected by the standard chargeback protection product. """ STANDARD } """ Top-level input fields for creating a transaction by charging a credit card. """ input ChargeCreditCardInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a transaction being created (in any status), then the same transaction in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no transaction is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """ID of a credit card payment method to be charged.""" paymentMethodId: ID! """Input fields for creating a credit card transaction.""" options: CreditCardTransactionOptionsInput """ Input fields for the charge, with details that will define the resulting transaction. """ transaction: TransactionInput! } """ Top-level input fields for creating an in-store transaction by charging a credit card. """ input ChargeInStoreCreditCardInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a transaction being created (in any status), then the same transaction in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no transaction is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """ID of a credit card payment method to be charged.""" paymentMethodId: ID! """Input fields for creating an in-store credit card transaction.""" options: InStoreCreditCardTransactionOptionsInput """ Input fields for the charge, with details that will define the resulting transaction. """ transaction: TransactionInput! } """ Top-level input fields for creating a transaction by charging a payment method. """ input ChargePaymentMethodInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a transaction being created (in any status), then the same transaction in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no transaction is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """ID of a payment method to be charged.""" paymentMethodId: ID! """ Input fields for the charge, with details that will define the resulting transaction. """ transaction: TransactionInput! } """ Top-level input fields for creating a transaction by charging a PayPal account. """ input ChargePayPalAccountInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a transaction being created (in any status), then the same transaction in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no transaction is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """The ID of an existing PayPal account.""" paymentMethodId: ID! """Input fields related to the PayPal account being charged.""" options: ChargePayPalAccountOptionsInput """ Input fields for the charge, with details that will define the resulting transaction. """ transaction: TransactionInput! } """Input fields for creating a transaction with a PayPal account.""" input ChargePayPalAccountOptionsInput { """ Variable passed directly to PayPal for your own tracking purposes. Customers do not see this value. """ customField: String """ Description of the transaction that is displayed to customers in PayPal email receipts. """ description: String } """ Top-level input fields for creating a transaction by charging a US bank account. """ input ChargeUsBankAccountInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a transaction being created (in any status), then the same transaction in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no transaction is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """The ID of an existing US bank account.""" paymentMethodId: ID! """The requested type of ACH transaction.""" achType: ACHType """Input fields related to the US bank account being charged.""" options: ChargeUsBankAccountOptionsInput """ Input fields for the charge, with details that will define the resulting transaction. """ transaction: TransactionInput! } """Input fields for creating a transaction with a US bank account.""" input ChargeUsBankAccountOptionsInput { """ A NACHA standard entry class (SEC) code, which designates how the transaction was authorized. Most internet-based sales should use the `WEB` code. """ standardEntryClassCode: ACHStandardEntryClassCode """ Language used to prove that you have the customer's explicit permission to debit their bank account. """ achMandate: String """The date and time when the ACH mandate was accepted by the customer.""" achMandateAcceptedAt: Timestamp } """ Top-level input fields for creating a transaction by charging a Venmo account. """ input ChargeVenmoAccountInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a transaction being created (in any status), then the same transaction in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no transaction is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """The ID of an existing Venmo account.""" paymentMethodId: ID! """Input fields for creating a Pay with Venmo transaction.""" options: ChargeVenmoAccountOptionsInput """ Input fields for the charge, with details that will define the resulting transaction. """ transaction: TransactionInput! } """Input fields for creating a Pay with Venmo transaction.""" input ChargeVenmoAccountOptionsInput { """Specifies which Venmo business profile to use for the transaction.""" profileId: String } """ A partial capture's relationship to its original authorization transaction. """ type ChildCapture { """The original authorization whose funds have been partially captured.""" parentAuthorization: Transaction } """Top-level fields returned from the client configuration query.""" type ClientConfiguration { """URL to send analytics.""" analyticsUrl: String @deprecated(reason: "This field is included for supporting SDKs that send analytics.") """Configuration for Apple Pay on iOS.""" applePay: ApplePayConfiguration """Configuration for Apple Pay on the web.""" applePayWeb: ApplePayWebConfiguration """ A URL pointing to the base path of Braintree's web pages used for various browser switches and popups. """ assetsUrl: String """A URL pointing to the base path of Braintree's client API.""" clientApiUrl: String @deprecated(reason: "This field is included for supporting legacy clients.") """A list of client features the merchant supports.""" supportedFeatures: [ClientFeature!] @deprecated(reason: "This field is included for supporting legacy clients.") """Configuration for payment methods in legacy clients.""" braintreeApi: BraintreeApiConfiguration @deprecated(reason: "This field is included for supporting legacy clients.") """Configuration for credit card tokenization.""" creditCard: CreditCardConfiguration """The enum of the current environment.""" environment: ClientConfigurationEnvironment """Configuration for PayPal Fastlane.""" fastlane: FastlaneConfiguration """Configuration for fraud protection provider.""" fraudProvider: FraudProviderConfiguration """Configuration for Google Pay on Android and the web.""" googlePay: GooglePayConfiguration """Deprecated, this field will always be null.""" ideal: IDealConfiguration @deprecated(reason: "This field is included for supporting legacy clients.") """ Deprecated, formerly configuration for Kount fraud tools, now this configuration lives under fraudProvider. """ kount: KountConfiguration @deprecated(reason: "This field is included for supporting legacy clients.") """Configuration for Masterpass.""" masterpass: MasterpassConfiguration """The merchant ID.""" merchantId: String """Configuration for PayPal.""" paypal: PayPalConfiguration """ Deprecated: Samsung pay is no longer supported. Configuration for Samsung Pay. """ samsungPay: SamsungPayConfiguration @deprecated(reason: "Samsung pay is no longer supported.") """Configuration for UnionPay cards.""" unionPay: UnionPayConfiguration """Configuration for US bank account processing.""" usBankAccount: UsBankAccountConfiguration """Configuration for Pay with Venmo.""" venmo: VenmoConfiguration """ Deprecated: Visa Checkout is no longer supported. Configuration for Visa Checkout. """ visaCheckout: VisaCheckoutConfiguration @deprecated(reason: "Visa Checkout is no longer supported.") """Configuration for Meta Checkout.""" metaCheckout: MetaCheckoutConfiguration """ A list of challenges that are required by the current merchant to process a given credit card. """ challenges: [Challenge!] """Configuration for Open Banking.""" openBanking: OpenBankingConfiguration } """The client configuration environment being used.""" enum ClientConfigurationEnvironment { DEVELOPMENT PRODUCTION QA SANDBOX TEST development production qa sandbox test } """ A value used by Braintree client SDKs to determine what operations are supported through this GraphQL API. """ enum ClientFeature { TOKENIZE_CREDIT_CARDS tokenize_credit_cards } """Analytics data provided by a client SDK.""" type ClientSDKMetadata { """Name of the platform.""" platform: String """Session ID on the device.""" sessionId: String """Version of the client SDK.""" version: String """Name of the client SDK integration type (e.g. dropin or custom).""" integration: String } """Input fields for creating a client token.""" input ClientTokenInput { """ The merchant account ID used to create the client token. Defaults to your default merchant account ID. """ merchantAccountId: ID """ The ID of an existing customer. Including this will allow your customer to vault and manage their payment methods. """ customerId: ID """ The version of the client token to generate. The default value is 2. Current supported versions are 1, 2, and 3. Please check your client-side SDKs in use before changing this value. """ version: Int """ Some services require a list of domains that are allowed to use this token. Must be domain names as defined by the Domain Name System (DNS), e.g. "example.com". """ domains: [String!] """ Flag that prevents the same payment method from being stored multiple times for the same customer. """ failOnDuplicatePaymentMethodForCustomer: Boolean } """Top-level input field for confirming micro-transfer values.""" input ConfirmMicroTransferAmountsInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The ID of the verification from vaulting the bank account.""" verificationId: ID! """ The amounts, in cents, of two deposits made into the customer's bank account after initiating a MICRO_TRANSFERS verification. These values should be collected from your customer. """ amountsInCents: [Int!]! } """ Top-level output field from confirming micro-transfer amounts on bank account. """ type ConfirmMicroTransferAmountsPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The verification that was run on the payment method prior to vaulting.""" verification: Verification """The status of the micro-transfer amounts confirmation.""" status: ConfirmMicroTransferAmountsStatus } """The status of a micro-transfer amount confirmation.""" enum ConfirmMicroTransferAmountsStatus { AMOUNTS_DO_NOT_MATCH CONFIRMED TOO_MANY_ATTEMPTS } """ An [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code. Braintree only accepts [specific alpha-2 values](https://developers.braintreepayments.com/reference/general/countries#list-of-countries). Clients using a Braintree version prior to 2021-02-01 should use an [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code. """ scalar CountryCode """ An [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code. Braintree only accepts [specific alpha-2 values](https://developers.braintreepayments.com/reference/general/countries#list-of-countries). """ scalar CountryCodeAlpha2 """Input fields for creating an Apple Pay web session.""" input CreateApplePayWebSessionInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The domain name requesting the Apple Pay session.""" domainName: String! """The display name to show in the Apple Pay sheet.""" displayName: String! """The validation URL from Apple Pay.""" validationUrl: String! } """Payload returned when creating an Apple Pay web session.""" type CreateApplePayWebSessionPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The Apple Pay session identifier.""" merchantSessionIdentifier: String } """Top-level input field for generating a client token.""" input CreateClientTokenInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Input fields for creating a client token.""" clientToken: ClientTokenInput } """Top-level fields returned when creating a client token.""" type CreateClientTokenPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """A Base64 encoded string used to initialize client SDKs.""" clientToken: String } """Top-level field for creating a customer.""" input CreateCustomerInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Input fields for creating a customer.""" customer: CustomerInput } """Top-level fields returned when creating a customer.""" type CreateCustomerPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ Information about the customer that was created. Can be used when vaulting payment methods or creating transactions to associate those objects. """ customer: Customer } """Top-level input fields for adding file evidence to a dispute.""" input CreateDisputeFileEvidenceInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The ID of the dispute to be accepted.""" disputeId: ID! """The category for the evidence file.""" category: DisputeFileEvidenceCategory } """Top-level field returned when creating file evidence for a dispute.""" type CreateDisputeFileEvidencePayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The evidence object created.""" evidence: DisputeFileEvidence """Information about the dispute the evidence is attached to.""" dispute: Dispute } """Top-level input fields for creating text evidence for a dispute.""" input CreateDisputeTextEvidenceInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The ID of the dispute to create the evidence for.""" disputeId: ID! """The category of the text evidence.""" category: DisputeTextEvidenceCategory """The content of the text evidence.""" content: String! } """Top-level field returned when creating text evidence for a dispute.""" type CreateDisputeTextEvidencePayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The evidence object created.""" evidence: DisputeTextEvidence } """Input fields for creating an in store location.""" input CreateInStoreLocationInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Input fields to create an in-store Location.""" location: InStoreLocationInput! } """Top-level fields returned when creating an in-store location.""" type CreateInStoreLocationPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The in-store location.""" location: InStoreLocation } """Top-level input fields for creating a local payment context.""" input CreateLocalPaymentContextInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Input fields for creating a local payment context.""" paymentContext: LocalPaymentContextInput! } """The result of a request to make a local payment context.""" type CreateLocalPaymentContextPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Details about the local payment context.""" paymentContext: LocalPaymentContext } """ Top-level input fields for creating a non-instant local payment context. """ input CreateNonInstantLocalPaymentContextInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Input fields for creating a non-instant local payment context.""" paymentContext: NonInstantLocalPaymentContextInput! } """The result of a request to make a non-instant local payment context.""" type CreateNonInstantLocalPaymentContextPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Details about the local payment context.""" paymentContext: LocalPaymentContext } """Input fields for creating a new OAuth client secret.""" input CreateOAuthClientSecretInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String } """Details about OAuth client secret created for merchant.""" type CreateOAuthClientSecretPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The client secret value.""" secret: String } """ Top-level input fields for creating a transaction in declined state if the transaction was already declined offline by an EMV chip card. """ input CreateOfflineDeclinedTransactionInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of a payment method to be charged.""" paymentMethodId: ID! """ Input fields for the transaction, with details that will define the resulting declined transaction. """ transaction: TransactionInput! } """Top-level input field for creating a PayPal Billing Agreement Token.""" input CreatePayPalBillingAgreementInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ Braintree merchant account ID associated with the PayPal account to be used for the Billing Agreement creation. """ merchantAccountId: ID """ URL for redirect back to merchant app on the client indicating successful approval. """ returnUrl: URL! """ URL for redirect back to merchant app on the client indicating unsuccessful approval. """ cancelUrl: URL! """ Description of the PayPal Billing Agreement, displayed to the PayPal user on paypal.com and other PayPal user experiences. """ description: String """ Email of the payer (if known). This will prepopulate the input field in the PayPal approval page. """ email: EmailAddress """ Indicates whether PayPal Credit should be offered in the PayPal approval flow. """ offerPayPalCredit: Boolean """Billing plan for recurring payments.""" recurringBillingPlan: PayPalRecurringBillingPlanInput """PayPal Risk correlation ID (also known as the Client Metadata ID).""" paypalRiskCorrelationId: ID """ Defines the experience profile used to render the billing agreement approval flow. """ paypalExperienceProfile: PayPalBillingAgreementExperienceProfileInput """ Merchant-provided shipping address. Fields addressLine1, adminArea2, and countryCode are required for Billing Agreements. """ shippingAddress: AddressInput """Product attributes input for PayPal billing agreement.""" paypalProductAttributes: PayPalProductAttributesInput """ A unique identifier which can be used to manage shopper context across merchant's shopping pages. """ customerSessionId: String """ Context information for enabling App Switch to the PayPal app during checkout. """ appSwitchContext: PayPalAppSwitchContextInput } """ Top-level fields returned from setting up a PayPal Billing Agreement Token. """ type CreatePayPalBillingAgreementPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The Billing Agreement token.""" billingAgreementToken: ID """The URL for getting user approval of the PayPal Billing Agreement.""" approvalUrl: URL """Indicates app switch eligibility.""" launchPayPalApp: Boolean } """Top-level input field for creating a PayPal One-Time Payment.""" input CreatePayPalOneTimePaymentInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ Braintree merchant account ID associated with the PayPal account to be used for the One-Time payment creation. """ merchantAccountId: ID """Total amount for payment to be charged to consumer.""" amount: MonetaryAmountInput! """ URL for redirect back to merchant app on the client indicating unsuccessful approval. """ cancelUrl: URL! """The payment intent.""" intent: PayPalIntent! """The line items for this transaction. Maximum 249 line items.""" lineItems: [PayPalLineItemInput!] """ Indicates whether PayPal Pay Later should be offered in the PayPal approval flow. """ offerPayLater: Boolean """ Indicates whether PayPal Credit should be offered in the PayPal approval flow. """ offerPayPalCredit: Boolean """ Email of the payer. This will prepopulate the input field in the PayPal approval login page. """ payerEmail: EmailAddress """PayPal Risk correlation ID (also known as the Client Metadata ID).""" paypalRiskCorrelationId: ID """Defines the experience profile used to render the approval flow.""" paypalExperienceProfile: PayPalExperienceProfileInput """ Indicates whether this payment uses the [Billing Agreement with Purchase flow](https://developers.braintreepayments.com/guides/paypal/checkout-with-paypal/javascript/v3#checkout-using-paypal-billing-agreement-with-purchase-flow). This will request Billing Agreement approval from the customer, and a multi-use PayPal payment method will be created alongside the transaction. """ requestBillingAgreement: Boolean """ A description of the Billing Agreement being requested. This is displayed to the customer on paypal.com when `requestBillingAgreement` is true. Maximum 127 characters. """ billingAgreementDescription: String """ Recipient email address. This field is used when the buyer is different from the recipient of the product. """ recipientEmail: EmailAddress """ URL for redirect back to merchant app on the client indicating successful approval. """ returnUrl: URL! """ Merchant-provided shipping address. If passing a shipping address, fields addressLine1, adminArea2, and countryCode are required. """ shippingAddress: AddressInput """ List of shipping options offered by the payee or merchant to the payer to ship or pick up their items. **Note:** `shippingOptions` may not be passed with intent `ORDER` payments. """ shippingOptions: [PayPalShippingOptionInput!] """ URL for redirecting back to the merchant app to update a customer shipping address. """ shippingCallbackUrl: URL """ A unique identifier which can be used to manage shopper context across merchant's shopping pages. """ customerSessionId: String """ Context information for enabling app switch to the PayPal app during checkout. """ appSwitchContext: PayPalAppSwitchContextInput """The amount breakdown for this transaction.""" amountBreakDown: PayPalAmountBreakDownInput """Billing plan for recurring payments.""" recurringBillingPlan: PayPalRecurringBillingPlanInput } """Top-level fields returned from setting up a PayPal One-Time Payment.""" type CreatePayPalOneTimePaymentPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The URL for getting user approval of the PayPal payment.""" approvalUrl: URL """The PayPal payment ID / order ID.""" paymentId: String """Indicates app switch eligibility.""" launchPayPalApp: Boolean } """ Input for adding an add-on when creating a recurring billing subscription plan. """ input CreateRecurringBillingSubscriptionPlanAddOnInput { """The ID of the add-on template to add to the plan.""" addOnId: ID! """The amount for this add-on.""" amount: Amount """The name of the add-on.""" name: String """A description of the add-on.""" description: String """ The number of times the billing cycle will be executed. Omit to inherit from the add-on template. """ numberOfBillingCycles: Int } """ Input for adding a discount when creating a recurring billing subscription plan. """ input CreateRecurringBillingSubscriptionPlanDiscountInput { """The ID of the discount template to add to the plan.""" discountId: ID! """The amount for this discount.""" amount: Amount """The name of the discount.""" name: String """A description of the discount.""" description: String """ The number of times the billing cycle will be executed. Omit to inherit from the discount template. """ numberOfBillingCycles: Int } """ Top-level input fields for creating a recurring billing subscription plan. """ input CreateRecurringBillingSubscriptionPlanInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The name of the plan.""" name: String! """A description of the plan.""" description: String """The base price and currency for the plan.""" monetaryAmount: MonetaryAmountInput! """Specifies the billing interval of the plan.""" billingFrequency: Int! """ The day of the month subscriptions to this plan are billed. If not specified, subscriptions will be billed on the day they are created. For example, a subscription created on the 15th will bill on the 15th of each cycle. Valid values are 1-28 and 31 (last day of month). Values 29 and 30 are not allowed; use 31 instead. """ billingDayOfMonth: Int """ The number of times the billing cycle will be executed. Use 0 to indicate the plan never expires. """ numberOfBillingCycles: Int! """Trial period configuration for the plan.""" trial: RecurringBillingSubscriptionTrialInput """ The collection of add-on and discount IDs to associate with this plan. These reference existing add-on and discount templates. Ignored if either add-ons or discounts are provided. """ modificationIds: [ID!] """ Operations for managing add-ons on this plan. Takes precedence over modificationIds. """ addOns: [CreateRecurringBillingSubscriptionPlanAddOnInput!] """ Operations for managing discounts on this plan. Takes precedence over modificationIds. """ discounts: [CreateRecurringBillingSubscriptionPlanDiscountInput!] } """ Input fields for creating an individual package tracker for a PayPal transaction. """ input CreateTransactionPackageTrackingInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ The ID of the transaction to create the tracker for. The transaction be must be submitted for settlement before adding trackers. If this is a partial settlement transaction, provide the child transaction ID. """ transactionId: ID! """Tracking number for this package. 64 characters maximum.""" trackingNumber: String! """ Shipping carrier. In order to provide customer with convenient tracking updates, refer to [PayPal Add Tracking API Carriers](https://developer.paypal.com/docs/tracking/reference/carriers/), and use the middle column of screaming snake case values for the carrier of the shipment. If the carrier cannot be found in this list, use the carrier's name. 64 characters maximum. """ carrier: String! """ Indicator of whether or not to send customer notifications of shipment. Defaults to false. """ notifyPayer: Boolean """Line items for this shipment. Up to 249 line items may be specified.""" lineItems: [TransactionPackageTrackingLineItemInput!] } """Top-level output field from creating a transaction package tracker.""" type CreateTransactionPackageTrackingPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The package tracker created during the request.""" packageTracker: TransactionPackageTracker """The representing of the transaction for which the tracker was added.""" transaction: Transaction } """Top-level input fields for creating a transaction risk context.""" input CreateTransactionRiskContextInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ PayPal Risk correlation ID (also known as the Client Metadata ID). If this is not passed, one is generated downstream and is returned in the response. """ paypalRiskCorrelationId: ID """ Input fields setting the transaction context for risk assessment purposes. """ riskContext: PayPalTransactionRiskContextInput! } """Top-level input field for generating a PayPal access token.""" input CreateUniversalAccessTokenInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ The ID of an existing customer. Including this will allow the access token to interact with this customer's data. """ customerId: ID """Authentication context class reference for the universal access token.""" type: ACRType! } """Top-level fields returned when creating a universal access token.""" type CreateUniversalAccessTokenPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The created universal access token.""" accessToken: AccessToken } """Fields that are provided when creating a Venmo context.""" input CreateVenmoPaymentContextInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Complete the transaction from merchant site or Venmo App.""" intent: VenmoIntent! """ Whether the resulting payment method may be used to make a one time payment (`SINGLE_USE`) or to create a vaulted multi-use payment token (`MULTI_USE`). """ paymentMethodUsage: PaymentMethodUsage! """Client the customer used to initiate the transaction.""" customerClient: CustomerClient! """ An identifier representing the profile of the merchant used to initiate the transaction. """ merchantProfileId: ID """ The sub-merchant display name shown on the Venmo app consent screen. This field will only be present for PayFast channel partner merchants. """ displayName: String """Details about the information to be displayed on the Venmo Paysheet.""" paysheetDetails: VenmoPaysheetDetailsInput """Indicates whether the purchase amount is the final amount.""" isFinalAmount: Boolean """URL for redirecting back to merchant app or website on the client.""" returnUrl: URL """Venmo Risk correlation ID (also known as the Client Metadata ID).""" venmoRiskCorrelationId: ID """Venmo app switch context information.""" appSwitchContext: VenmoAppSwitchContextInput } """A code identifying the card brand.""" enum CreditCardBrandCode { AMERICAN_EXPRESS CITI DINERS DISCOVER ELO HIPER HIPERCARD INTERNATIONAL_MAESTRO JCB MASTERCARD SOLO SWITCH UK_MAESTRO UNION_PAY UNKNOWN VISA american_express citi diners discover elo hiper hipercard international_maestro jcb mastercard solo switch uk_maestro union_pay unknown visa } """Configuration for credit card tokenization.""" type CreditCardConfiguration { """ A list of card brands supported by the merchant for credit card processing. """ supportedCardBrands: [CreditCardBrandCode!] """ A list of challenges that are required by the merchant to process a given credit card. """ challenges: [Challenge!] """Whether or not the merchant supports 3D Secure.""" threeDSecureEnabled: Boolean @deprecated(reason: "Use `threeDSecure` instead.") """Configuration for 3D Secure.""" threeDSecure: ThreeDSecureConfiguration """Whether or not fraud data collection is enabled for the merchant.""" fraudDataCollectionEnabled: Boolean } """The location of customer in the transaction.""" enum CreditCardCustomerLocation { INTERNATIONAL US } """Input fields related to credit card detached refund processing.""" input CreditCardDetachedRefundOptionsInput { """ Merchant Category Code (MCC) used to classify the type of business associated with this transaction. Defaults to merchant account's configured MCC unless explicitly overridden during transaction creation. """ merchantCategoryCode: MerchantCategoryCode } """Details about a credit card.""" type CreditCardDetails { """A static code identifying the card brand.""" brandCode: CreditCardBrandCode """The last four digits of the card number.""" last4: String """ The first 6 digits of the credit card number, known as the Bank Identification Number. If this card originates from a third party such as a wallet provider, this BIN may not be present and the PaymentMethodOriginDetails will contain a BIN instead. """ bin: String """Information about the card based on its BIN.""" binData: BinRecord """The month of the expiration date, formatted MM.""" expirationMonth: String """The year of the expiration date, formatted YYYY.""" expirationYear: String """The cardholder's name.""" cardholderName: String """ An identifier that uniquely represents any credit card number, for cards stored in a merchant's vault. If the same credit card is added to a merchant's vault multiple times, each will have the same identifier. This identifier will only be returned if the field "origin" is null. """ uniqueNumberIdentifier: String """ Additional information if the credit card was provided from a third-party origin, such as Apple Pay, Google Pay, or another digital wallet. """ origin: PaymentMethodOrigin """The billing address associated with the credit card.""" billingAddress: Address """3D Secure information for the payment method.""" threeDSecure: ThreeDSecureDetails """A URL to an image logo representing the card brand.""" imageUrl: String @deprecated(reason: "This field is included for supporting legacy clients.") """The display name of the card brand, e.g. "Visa" or "American Express".""" brand: String @deprecated(reason: "Use `brandCode` instead.") """Indicates whether the card on file is network tokenized.""" cardOnFileNetworkTokenized: Boolean """ The payment account reference (PAR) value, a non-financial reference number for the card. """ paymentAccountReference: String } """ Input fields that allow you to skip certain fraud checks. These will override Control Panel settings. """ input CreditCardFraudToolsOptionsInput { """ Skip CVV checks. Will result in a `cvvResponse` of `BYPASS` in the response from the processor. This only applies to chargeCreditCard and authorizeCreditCard; you cannot use these fields for vaultCreditCard and verifyCreditCard. """ skipCvv: Boolean """ Skip AVS checks. Will result in an `avsPostalCodeResponse` of `BYPASS` in the response from the processor. This only applies to chargeCreditCard and authorizeCreditCard; you cannot use these fields for vaultCreditCard and verifyCreditCard. """ skipAvs: Boolean """ Skip [advanced fraud checks](https://developer.paypal.com/braintree/docs/guides/premium-fraud-management-tools/overview/). """ skipAdvancedFraudChecking: Boolean } """Input fields for a credit card.""" input CreditCardInput { """ The 12-to-19-digit value that uniquely identifies this credit card, also known as the primary account number or PAN. """ number: String """ The two- or four-digit year associated with a credit card, formatted `YYYY` or `YY`. """ expirationYear: String """The expiration month of a credit card, formatted `MM`.""" expirationMonth: String """ A three- or four-digit card verification value assigned to credit cards. The CVV will never be stored, but it can be provided with one-time requests to verify the card. """ cvv: String """ When supplied, the cardholder name that will be tokenized with the contents of the fields. """ cardholderName: String """The billing address for the credit card.""" billingAddress: AddressInput } """A four-digit string.""" scalar CreditCardLast4 """A number that passes Luhn validation.""" scalar CreditCardNumber """Credit card specific details on a transaction or verification.""" type CreditCardTransactionDetails { """The details of the credit card itself.""" creditCard: CreditCardDetails """ The network transaction identifier provided by the payment network. If this transaction was created in order to verify a payment method before storing it in an external vault, then this value can be pased when creating subsequent transactions with the same payment method. """ networkTransactionId: String """ For combo cards, what account type was used for this specific transaction. """ accountType: CardAccountType """ Reference value assigned to a card transaction once it has been processed. """ acquirerReferenceNumber: String """ Indicates whether the transaction was processed with a card on file network token. """ processedWithCardOnFileNetworkToken: Boolean """ The remaining balance in the account after this transaction. This field is only returned for payment methods such as prepaid cards. """ accountBalance: MonetaryAmount } """ Input fields for creating a transaction by authorizing or charging a credit card. """ input CreditCardTransactionOptionsInput { """ Details about this transaction if it's being created from a credit card that is or will be stored in an non-Braintree vault. """ externalVault: TransactionExternalVaultOptionsInput """ A billing address to use for the transaction. If a billing address was provided when tokenizing or is present on the vaulted credit card, it will be *merged* with this input value, with priority given to this input value. """ billingAddress: AddressInput """The type of account to be used when transacting with a combo card.""" accountType: CardAccountType """ The CVV for the credit card to be used when creating this transction, securely tokenized with the `tokenizeCvv` mutation. """ tokenizedCvv: ID """ Control which fraud tools will be applied to this transaction. Fraud tools cannot be retroactively applied to a transaction if skipped. """ fraudTools: CreditCardFraudToolsOptionsInput """ 3D Secure authentication information performed for this transaction. Only use these fields if you are charging or authorizing a single-use payment method ID that was *not* generated by a 3DS flow on on the client. """ threeDSecureAuthentication: ThreeDSecureAuthenticationInput """The type of Strong Customer Authentication Exemption requested.""" scaExemption: ScaExemptionType """Number of monthly installments (can be anywhere between 2 and 48).""" installmentCount: Int } """Information specific to verifications of credit card payment methods.""" type CreditCardVerificationDetails { """The amount used when performing the verification. May be 0.""" amount: MonetaryAmount } """Input fields that specify options for verifying the credit card.""" input CreditCardVerificationOptionsInput { """The type of account to be used when verifying a combo card.""" accountType: CardAccountType """ Customer device information, which is sent directly to supported processors for fraud analysis. """ riskData: RiskDataInput """ Control which fraud tools will be applied to this verification. Fraud tools cannot be retroactively applied to a verification if skipped. """ fraudTools: CreditCardFraudToolsOptionsInput """ The CVV for the credit card to be used when verifying the credit card, securely tokenized with the `tokenizeCvv` mutation. """ tokenizedCvv: ID """The amount to use to verify the credit card.""" amount: Amount """ Whether to opt out of verifying the credit card. Defaults to `false`. Clients should only pass `true` in the uncommon scenario that the credit card has been verified externally to Braintree. """ skip: Boolean } """ An [ISO 4217 alpha](https://en.wikipedia.org/wiki/ISO_4217) currency code. Braintree only accepts [specific alpha values](https://developers.braintreepayments.com/reference/general/currencies). """ scalar CurrencyCodeAlpha """Top-level fields returned from a Custom Actions payment context.""" type CustomActionsPaymentContext implements Node & PaymentContext { """The identifier of the payment context.""" id: ID! """Date and time when the payment context was created.""" createdAt: Timestamp! """Date and time when the payment context was updated.""" updatedAt: Timestamp! """ A list of fields stored on a PaymentContext during execution of a Custom Actions handler (Five (5) entries maximum). """ customFields: [CustomActionsPaymentContextField!] } """ Fields returned by the createPaymentContext custom actions event handler. """ type CustomActionsPaymentContextField { """ An alphanumeric string used as a key to lookup a CustomField value (255 characters maximum). """ name: String! """ An alphanumeric string used to store a CustomField value (7168 characters maximum). """ value: String! } """Fields that are provided when creating the payment context.""" input CustomActionsPaymentContextFieldInput { """ An alphanumeric string used as a key to lookup a CustomField value (255 characters maximum). """ name: String! """ An alphanumeric string used to store a CustomField value (7168 characters maximum). """ value: String! } """Details about a custom actions payment method.""" type CustomActionsPaymentMethodDetails { """The action to be invoked when using the payment method.""" actionName: String """Fields that your action requires.""" fields: [CustomActionsPaymentMethodField!] } """ Fields that are provided during tokenization and are presented to the invoked action to be consumed. """ type CustomActionsPaymentMethodField { """The name of this field, e.g. "accountNumber".""" name: String """The value displayed in the Control Panel or API, e.g. "*****6789".""" displayValue: String } """ Fields that are provided during tokenization and are presented to the invoked action to be consumed. """ input CustomActionsPaymentMethodFieldInput { """The name of this field. e.g. "accountNumber".""" name: String! """The value of this field. e.g. "123456789".""" value: String! """The value displayed in the Control Panel or API. e.g. "*****6789".""" displayValue: String! } """Input fields for a Custom Actions payment method.""" input CustomActionsPaymentMethodInput { """The action you wish to invoke when using the tokenized payment method.""" actionName: String! """Fields that your action requires.""" fields: [CustomActionsPaymentMethodFieldInput!]! } """ Information about a customer and their associated payment methods and transactions. """ type Customer implements Node { """Unique identifier.""" id: ID! """Legacy unique identifier.""" legacyId: ID! """Company or business name associated with this customer.""" company: String """Date and time at which the customer was created.""" createdAt: Timestamp """ Collection of custom field/value pairs. Custom fields are [defined in the Control Panel](https://articles.braintreepayments.com/control-panel/custom-fields#store-and-pass-back-fields). """ customFields: [CustomField!] """Customer's default payment method.""" defaultPaymentMethod: PaymentMethod """Email address for this customer.""" email: String """Customer's first name.""" firstName: String """Customer's last name.""" lastName: String """The phone number for this customer.""" phoneNumber: String """Customer's fax.""" fax: String """Customer's website.""" website: String """Payment methods belonging to this customer.""" paymentMethods(first: Int, after: String): PaymentMethodConnection """ Transactions associated with this customer. This includes transactions created by charging a vaulted payment method that belongs or belonged to the customer, or by passing a customer ID when charging a single-use payment method. """ transactions(first: Int, after: String): TransactionConnection } """A value indicating when to perform further customer authentication.""" enum CustomerAuthenticationIndicator { """Indicates further authentication is optional.""" OPTIONAL """Indicates further authentication should be performed.""" REQUIRED """ Customer authentication indicator information is unavailable at this time. """ UNAVAILABLE } """ The customer authentication regulation environment that applies to the transaction, such as [PSD2](https://www.braintreepayments.com/blog/understanding-and-preparing-for-psd2-strong-customer-authentication/). """ enum CustomerAuthenticationRegulationEnvironment { """ EU Regulation [PSD2 Strong Customer Authentication](https://www.braintreepayments.com/blog/understanding-and-preparing-for-psd2-strong-customer-authentication/) applies to this transaction. """ PSDTWO """Reserve Bank of India regulations apply to this transactions.""" RBI """ Customer authentication regulation environment information is unavailable for this transaction at this time. """ UNAVAILABLE """No customer authentication regulations apply to this transaction.""" UNREGULATED } """Client the customer used to initiate the transaction.""" enum CustomerClient { DESKTOP MOBILE_APP MOBILE_WEB NATIVE_WEB } """A paginated list of customers.""" type CustomerConnection { """A list of customers.""" edges: [CustomerConnectionEdge] """Information about the page of customers contained in `edges`.""" pageInfo: PageInfo! } """A customer within a CustomerConnection.""" type CustomerConnectionEdge { """ This customer's location within the CustomerConnection. Used for requesting additional pages. """ cursor: String """The customer.""" node: Customer } """ Input fields for creating or updating a customer. On update, omitted fields will not be updated. Passing a null value will assign null to that field. """ input CustomerInput { """Company or business name associated with the customer.""" company: String """ 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. """ customFields: [CustomFieldInput!] """Email address for the customer.""" email: String """Customer's first name.""" firstName: String """Customer's last name.""" lastName: String """The customer's phone number.""" phoneNumber: String """The customer's fax.""" fax: String """The customer's website.""" website: URL """ A set of country code ID pairs, analogous to Social Security numbers in the United States. A customer may have multiple tax identifiers, but only one per tax jurisdiction. The values provided for an update will be stored and previous entries will be updated. **Note:** You will only need to use these fields for processing in certain countries. """ taxIdentifiers: [CustomerTaxIdentifierInput!] } """Input fields for searching for customers.""" input CustomerSearchInput { """Find customers with an id or ids.""" id: SearchValueInput """Find customers with a given company or business name.""" company: SearchTextInput """Find customers with a given created at time.""" createdAt: SearchTimestampInput """Find customers with a given email address.""" email: SearchTextInput """Find customers with a given first name.""" firstName: SearchTextInput """Find customers with a given last name.""" lastName: SearchTextInput """Find customers with a given phone number.""" phoneNumber: SearchTextInput } """The customer's tax identifer for a given tax jurisdiction.""" input CustomerTaxIdentifierInput { """ The identifier provided in the format required for the given tax jurisdiction. """ identifier: String! """The country code of the tax jurisdiction for this tax identifier.""" countryCode: CountryCode! } """A merchant-defined custom field to store additional information.""" type CustomField { """The name of the custom field.""" name: String """The value of the custom field.""" value: String } """ Custom field name/value pairs. Maximum 255 characters. 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. """ input CustomFieldInput { """Name of the custom field as defined in the Control Panel.""" name: CustomFieldName! """ Value for the named custom field. A null value will ignore (on create) or remove (on update) the custom field. """ value: String } """ A string representing a custom field value. Contains letters, numbers, and underscores. """ scalar CustomFieldName """ A three- or four-digit string CVV (card verification value), otherwise known as CSC or CVC. """ scalar CVV """A date in the format YYYY-MM-DD.""" scalar Date """The allowed digits to the right of the decimal point.""" enum DecimalPlaces { THREE TWO ZERO } """Top-level input fields for deleting a customer.""" input DeleteCustomerInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The ID of the customer to be deleted.""" customerId: ID! } """Top-level output field from deleting a customer.""" type DeleteCustomerPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String } """Input fields for deleting dispute evidence.""" input DeleteDisputeEvidenceInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The ID of the evidence to be deleted.""" evidenceId: ID! """The ID of the dispute that the evidence belongs to.""" disputeId: ID! } """Top-level field returned when deleting evidence from a dispute.""" type DeleteDisputeEvidencePayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String } """Top-level input fields for deleting an in-store location.""" input DeleteInStoreLocationInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the location to be deleted.""" locationId: ID! } """Top-level fields returned when deleting an in-store location.""" type DeleteInStoreLocationPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String } """Input fields for deleting an OAuth client secret.""" input DeleteOAuthClientSecretInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The secret value to be deleted.""" secret: String! } """Details about OAuth client secret delete operation.""" type DeleteOAuthClientSecretPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String } """ Top-level input fields for deleting a payment method referenced by a single-use token. """ input DeletePaymentMethodFromSingleUseTokenInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """A single-use token ID referencing a payment method.""" singleUseTokenId: ID! } """ Top-level output field from deleting a payment method referenced by a single-use token. """ type DeletePaymentMethodFromSingleUseTokenPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String } """ Top-level input fields for deleting a multi-use payment method from the vault. """ input DeletePaymentMethodFromVaultInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The ID of the multi-use payment method to be deleted.""" paymentMethodId: ID! } """Top-level output field from deleting a multi-use payment method.""" type DeletePaymentMethodFromVaultPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String } """Specific input fields for describing a detached refund.""" input DetachedRefundInput { """The amount to refund.""" amount: Amount! """The refund's order ID.""" orderId: String """ ID of the merchant account that will be used when performing the refund. """ merchantAccountId: ID """ 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. """ customFields: [CustomFieldInput!] """ Fields used to define what will appear on a customer's statement (for instance, credit card or bank statement) for this refund. This should match the original transaction if possible. """ descriptor: TransactionDescriptorInput } """Input fields for disabling an OAuth client secret.""" input DisableOAuthClientSecretInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The secret value to be disabled.""" secret: String! } """Details about OAuth client secret disable operation.""" type DisableOAuthClientSecretPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """OAuth Client Secret details.""" oauthClientSecret: OAuthClientSecret } """Details about the disbursement bank account.""" type DisbursementBankAccount { """The last four digits of the bank account number.""" last4: String """The routing number of the bank.""" routingNumber: String } """ Disbursement details contain information about how and when the transaction was disbursed, including timing and currency information. This field is only available if you have an eligible merchant account. """ type DisbursementDetails { """ The date that the funds associated with this transaction were disbursed. """ date: Date """ Amount of money disbursed in the settlement currency, which may be different than the transaction's [presentment currency](https://articles.braintreepayments.com/get-started/currencies). """ amount: MonetaryAmount """ The exchange rate from the presentment currency to the settlement currency. If the currencies are the same, this will be 1. """ exchangeRate: String """ Indicates whether funds have been withheld from a disbursement to the merchant's account. """ fundsHeld: Boolean } """The display item type to be displayed on the in-store reader.""" enum DisplayItemType { CHARGE DISCOUNT LINE_BREAK TEXT } """ [A case raised by a customer to either request information about or to challenge a charge](https://articles.braintreepayments.com/risk-and-security/chargebacks-retrievals/overview). These are initiated via a customer's payment provider, such as their bank, and require a merchant to provide evidence or further information. """ type Dispute implements Node { """Unique identifier.""" id: ID! """Legacy unique identifier.""" legacyId: ID! """ The amount of money from the original charge that the customer is disputing. Can be 0. This amount is debited from a merchant's account and held in a third-party account until the dispute is resolved, at which time it is sent to either the merchant or customer. """ amountDisputed: MonetaryAmount """ If an amount was disputed, the amount of money awarded back to the merchant if the dispute was reversed. """ amountWon: MonetaryAmount """The case number for the dispute.""" caseNumber: String """Date and time at which the dispute was created.""" createdAt: Timestamp """Date the dispute was received by the merchant.""" receivedDate: Date """The transaction reference number for the dispute.""" referenceNumber: String """The deadline for the merchant to submit a response to the dispute.""" responseDeadline: Timestamp """ The reply by date for the merchant to submit a response to the dispute. """ replyByDate: Date """The type of dispute.""" type: DisputeType """Evidence records submitted by the merchant for the dispute.""" evidence: [DisputeEvidence!] """ If this dispute is a follow-up to a previous chargeback or retrieval, the original dispute. """ originalDispute: Dispute """Additional information from the payment processor.""" processorResponse: DisputeProcessorResponse """The status of the dispute.""" status: DisputeStatus """ A log of history events containing status changes by date for this dispute. """ statusHistory: [DisputeStatusEvent!] """ The disputed transaction which the customer is either requesting further information on or challenging. """ transaction: Transaction """The chargeback protection status of the dispute.""" chargebackProtectionLevel: ChargebackProtectionLevel @deprecated(reason: "Use `protectionLevel` instead.") """The protection level of the dispute.""" protectionLevel: DisputeProtectionLevel """ Indicates whether or not the merchant can upload evidence for this dispute based on its current status. """ evidenceSubmittable: Boolean @deprecated(reason: "This field is redundant to `OPEN` status which represents disputes with allowed evidence submission. For all other statuses it is not possible to submit evidence.") """The pre-dispute program of the dispute.""" preDisputeProgram: PreDisputeProgram """ The remaining storage available for file evidence on a dispute in bytes. """ remainingFileEvidenceStorage: Int } """A paginated list of disputes.""" type DisputeConnection { """A list of disputes.""" edges: [DisputeConnectionEdge] """Information about the page of disputes contained in `edges`.""" pageInfo: PageInfo! } """A dispute within a DisputeConnection.""" type DisputeConnectionEdge { """ This dispute's location within the DisputeConnection. Used for requesting additional pages. """ cursor: String """The dispute.""" node: Dispute } """Evidence provided by a merchant to respond to a dispute.""" interface DisputeEvidence { """Unique identifier.""" id: ID! """Legacy unique identifier.""" legacyId: ID! """Date and time when the evidence was created with Braintree.""" createdAt: Timestamp """Date and time when the evidence was sent to the processor.""" sentToProcessorAt: Timestamp """The evidence category.""" category: DisputeEvidenceCategory } """The evidence category that specifies which requirement it satisfies.""" enum DisputeEvidenceCategory { AVS_RESPONSE @deprecated(reason: "AVS_RESPONSE from the original transaction is provided on your behalf when submitting a dispute.") CARRIER_NAME CARRIER_NAME_OTHER CREDIT_ISSUED_AMOUNT CREDIT_ISSUED_ARN CREDIT_ISSUED_DATE_TIME DEVICE_ID DEVICE_NAME DOWNLOAD_DATE_TIME EVIDENCE_TYPE GENERAL GEOGRAPHICAL_LOCATION LEGIT_PAYMENTS_FOR_SAME_MERCHANDISE MERCHANT_WEBSITE_OR_APP_ACCESS PRIOR_DIGITAL_GOODS_TRANSACTION_ARN PRIOR_DIGITAL_GOODS_TRANSACTION_DATE_TIME PRIOR_DIGITAL_GOODS_TRANSACTION_ID PRIOR_NON_DISPUTED_TRANSACTION_ARN PRIOR_NON_DISPUTED_TRANSACTION_DATE_TIME PRIOR_NON_DISPUTED_TRANSACTION_EMAIL_ADDRESS PRIOR_NON_DISPUTED_TRANSACTION_ID PRIOR_NON_DISPUTED_TRANSACTION_IP_ADDRESS PRIOR_NON_DISPUTED_TRANSACTION_PHONE_NUMBER PRIOR_NON_DISPUTED_TRANSACTION_PHYSICAL_ADDRESS PROFILE_SETUP_OR_APP_ACCESS PROOF_OF_3D_SECURE PROOF_OF_AUTHORIZED_SIGNER PROOF_OF_DELIVERY PROOF_OF_DELIVERY_EMP_ADDRESS PROOF_OF_POSSESSION_OR_USAGE PURCHASER_EMAIL_ADDRESS PURCHASER_IP_ADDRESS PURCHASER_NAME RECURRING_TRANSACTION_ARN RECURRING_TRANSACTION_DATE_TIME RECURRING_TRANSACTION_ID REFUND_ID SIGNED_DELIVERY_FORM SIGNED_ORDER_FORM TICKET_PROOF TRACKING_NUMBER TRACKING_URL } """Images, files, or other evidence supporting a dispute case.""" type DisputeFileEvidence implements DisputeEvidence { """Unique identifier.""" id: ID! """Legacy unique identifier.""" legacyId: ID! """Date and time at which the evidence was created with Braintree.""" createdAt: Timestamp """Date and time at which the evidence was sent to the processor.""" sentToProcessorAt: Timestamp """A URL where you can retrieve the dispute evidence.""" url: String """The evidence category.""" category: DisputeEvidenceCategory } """ For file evidence: the evidence category that specifies which requirement it satisfies. """ enum DisputeFileEvidenceCategory { GENERAL LEGIT_PAYMENTS_FOR_SAME_MERCHANDISE MERCHANT_WEBSITE_OR_APP_ACCESS PROFILE_SETUP_OR_APP_ACCESS PROOF_OF_3D_SECURE PROOF_OF_AUTHORIZED_SIGNER PROOF_OF_DELIVERY PROOF_OF_DELIVERY_EMP_ADDRESS PROOF_OF_POSSESSION_OR_USAGE SIGNED_DELIVERY_FORM SIGNED_ORDER_FORM TICKET_PROOF } """Information about the dispute provided by the processor.""" type DisputeProcessorResponse { """Additional comments forwarded by the processor.""" processorComments: String """The reason the dispute was created.""" reason: DisputeReason """The reason code provided by the processor.""" reasonCode: String """The reason code description based on the `reasonCode`.""" reasonDescription: String """Date the dispute was received by the merchant.""" receivedDate: Date """ The string value representing the reference number provided by the processor (if any). """ referenceNumber: String } """ The Protection level indicates if dispute is eligible for protection through any feature enabled on your account. """ enum DisputeProtectionLevel { """ The dispute is protected by the standard chargeback protection product. """ CHARGEBACK_PROTECTION_TOOL """ The dispute is protected by the effortless chargeback protection product. """ EFFORTLESS_CHARGEBACK_PROTECTION_TOOL """ The merchant has not enrolled in any chargeback protection products, or the merchant is enrolled, but the dispute is not protected. """ NO_PROTECTION } """ The reason a customer opened a chargeback, pre-arbitration, or retrieval. """ enum DisputeReason { CANCELLED_RECURRING_TRANSACTION CREDIT_NOT_PROCESSED DUPLICATE FRAUD GENERAL INVALID_ACCOUNT NOT_RECOGNIZED PRODUCT_NOT_RECEIVED PRODUCT_UNSATISFACTORY RETRIEVAL TRANSACTION_AMOUNT_DIFFERS } """Input fields for searching for Disputes.""" input DisputeSearchInput { """Find disputes with an id or ids.""" id: SearchValueInput """Find disputes with a given status.""" status: SearchDisputeStatusInput """Find disputes with a given type.""" type: SearchDisputeTypeInput """Find disputes with a given reason description.""" reason: SearchDisputeReasonInput """Find disputes with a given processor's caseNumber.""" caseNumber: SearchTextInput """Find disputes with a given transaction referenceNumber.""" referenceNumber: SearchTextInput """Find disputes for a given amount or currency.""" amountDisputed: MonetaryAmountSearchInput """Find disputes by the amount won.""" amountWon: MonetaryAmountSearchInput """Find disputes by the date received.""" receivedDate: SearchDateInput """Find disputes by the reply by date.""" replyByDate: SearchDateInput """Find disputes by the date a status change history event took effect.""" effectiveDate: SearchDateInput """Find disputes based on a set of transaction criteria.""" transaction: DisputeTransactionSearchInput """Find disputes with a given protection level.""" protectionLevel: SearchDisputeProtectionLevelInput """Find disputes with a given pre-dispute program.""" preDisputeProgram: SearchPreDisputeProgramInput } """The status of the dispute.""" enum DisputeStatus { ACCEPTED AUTO_ACCEPTED DISPUTED EXPIRED LOST OPEN UNDER_REVIEW WON } """A record of a status the dispute has passed through.""" type DisputeStatusEvent { """The date any funds associated with this event were disbursed.""" disbursementDate: Date """The status of the dispute.""" status: DisputeStatus """Date and time when the status event occurred.""" timestamp: Timestamp """The date the status event took effect.""" effectiveDate: Date } """Text evidence supporting a dispute case.""" type DisputeTextEvidence implements DisputeEvidence { """Unique identifier.""" id: ID! """Legacy unique identifier.""" legacyId: ID! """Date and time at which the evidence was created with Braintree.""" createdAt: Timestamp """Date and time at which the evidence was sent to the processor.""" sentToProcessorAt: Timestamp """The body for text evidence.""" comment: String @deprecated(reason: "Use `content` for name instead.") """The body for text evidence.""" content: String """The evidence category.""" category: DisputeEvidenceCategory } """ For text evidence: the evidence category that specifies which requirement it satisfies. """ enum DisputeTextEvidenceCategory { AVS_RESPONSE @deprecated(reason: "AVS_RESPONSE from the original transaction is provided on your behalf when submitting a dispute.") CARRIER_NAME CREDIT_ISSUED_AMOUNT CREDIT_ISSUED_ARN CREDIT_ISSUED_DATE_TIME DEVICE_ID DEVICE_NAME DOWNLOAD_DATE_TIME GENERAL GEOGRAPHICAL_LOCATION PRIOR_DIGITAL_GOODS_TRANSACTION_ARN PRIOR_DIGITAL_GOODS_TRANSACTION_DATE_TIME PRIOR_DIGITAL_GOODS_TRANSACTION_ID PRIOR_NON_DISPUTED_TRANSACTION_ARN PRIOR_NON_DISPUTED_TRANSACTION_DATE_TIME PRIOR_NON_DISPUTED_TRANSACTION_EMAIL_ADDRESS PRIOR_NON_DISPUTED_TRANSACTION_ID PRIOR_NON_DISPUTED_TRANSACTION_IP_ADDRESS PRIOR_NON_DISPUTED_TRANSACTION_PHONE_NUMBER PRIOR_NON_DISPUTED_TRANSACTION_PHYSICAL_ADDRESS PURCHASER_EMAIL_ADDRESS PURCHASER_IP_ADDRESS PURCHASER_NAME RECURRING_TRANSACTION_ARN RECURRING_TRANSACTION_DATE_TIME RECURRING_TRANSACTION_ID REFUND_ID TRACKING_NUMBER } """Transaction input fields for searching for disputes.""" input DisputeTransactionSearchInput { """Find disputes for a transaction id or ids.""" transactionId: SearchValueInput """Find disputes for a customer id or ids.""" customerId: SearchValueInput """Find disputes with a given transaction source.""" transactionSource: SearchTransactionSourceInput """ Find disputes on transactions charging payment methods of the given type. """ paymentMethodSnapshotType: SearchPaymentMethodSnapshotTypeInput """ Find disputes on transactions created by a third party via the Grant API using a given OAuth application client ID. """ facilitatorOAuthApplicationClientId: SearchValueInput """Find disputes by the transaction's disbursement date.""" disbursementDate: SearchDateInput """ Find disputes on transactions associated with a merchant account ID or IDs. """ merchantAccountId: SearchDisputeMerchantAccountIdInput } """Type of dispute.""" enum DisputeType { CHARGEBACK """ A [second challenge to a charge](https://articles.braintreepayments.com/risk-and-security/chargebacks-retrievals/overview#pre-arbitrations), in the case that you have won an initial chargeback. """ PRE_ARBITRATION RETRIEVAL } """ A card brand-specific two-digit string describing the mode of the transaction. """ scalar ECommerceIndicator """ The internationalized email address. **Note:** Up to 64 characters are allowed before and 255 characters are allowed after the `@` sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted `@` sign exists. minLength: 3 maxLength: 254 pattern: `^.+@[^\"\\-].+$`. """ scalar EmailAddress """Input fields for an EMV card.""" input EmvCardInput { """EMV data.""" emvData: String } """ Additional information about an integrated circuit card (ICC) payment method supplied by an in-store payment reader. """ type EmvCardOriginDetails implements InStoreReaderOriginDetails { """ The authorization mode used to perform the transaction on the payment reader. """ authorizationMode: InStoreReaderAuthorizationMode """An indicator for whether the transaction was verified via pin.""" pinVerified: Boolean """ The input mode used on the payment reader to facilitate an in-store transaction. """ inputMode: PaymentReaderInputMode """The ID of the terminal that was processed this transaction.""" terminalId: String """ The preferred name associated with the application used to process an EMV transaction. """ applicationPreferredName: String """ The identifier specifying which EMV application was used to process the transaction. """ applicationIdentifier: String """ A status code representing the result of a series of validations performed against an EMV enabled credit card. """ terminalVerificationResult: String """A unique identifier for credit cards that share the same PAN.""" cardSequenceNumber: String """ An indicator of the credit card's capabilities within the processing application. """ applicationInterchangeProfile: String """ The local date that the transaction requested authorization from the payment reader, formatted YYMMDD. """ terminalTransactionDate: String """ An indicator of the type of transaction specified during authorization processing. """ terminalTransactionType: String """ An additional amount associated with the transaction that represents the cashback amount requested by the cardholder. """ cashbackAmount: String """ An indicator used to specify an issuer's restrictions for processing in a geographic region. """ applicationUsageControl: String """ The country code indicated by the payment reader to process the transaction with. """ terminalCountryCode: String """ The cryptogram provided by an integrated circuit card (ICC) used for processing the transaction. """ applicationCryptogram: String """ An indicator for the type of application cryptogram provided by an integrated circuit card (ICC) to process the transaction. """ cryptogramInformationData: String """ An indicator of the cardholder verification method and if it was successful or unsuccessful. """ cardholderVerificationMethodResults: String """ A counter managed by an integrated circuit card (ICC) that provides a reference to each transaction using that card. """ applicationTransactionCounter: String """ A value used to uniquely differentiate an application cryptogram used during authorization processing. """ unpredictableNumber: String """ An indicator of the conditions that caused a transaction to be offline declined by the issuer, in a scenario where the transaction may have authorized if the payment reader made a processor request but was unable to. """ issuerActionCodeDefault: String """ An indicator of the conditions that caused a transaction to be offline declined by the issuer, in a scenario where the payment reader did not attempt to make a processor request. """ issuerActionCodeDenial: String """ An indicator of the conditions that caused the payment reader to attempt to make a processor request. """ issuerActionCodeOnline: String """The ID of the payment reader that processed this transaction.""" readerId: String """The ID of the store where this transaction was processed.""" storeId: String } """Top-level input fields used for risk evaluation of a transaction.""" input EvaluateTransactionRiskInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of a credit card payment method to be authorized.""" paymentMethodId: ID! """Input fields used to define a transaction for risk evaluation.""" transaction: TransactionRiskEvaluateInput! } """ A value with more than one decimal place, representing an exchange rate between currencies. For example, `0.93014065558374`. minLength: 3 pattern: `^\\d+[.]\\d+$` """ scalar ExchangeRate """Details of the generated exchange rate quote.""" type ExchangeRateQuote { """ Unique identifier, which must be passed in the payment request in order to honor the exchange rate during settlement. """ id: ID! """ The amount in the `baseCurrency` to be converted to the `quoteCurrency`. If no amount was provided, then this amount is 1 unit of `baseCurrency`. """ baseAmount: MonetaryAmount """ The amount in the `quoteCurrency` converted from the `baseCurrency`. If no amount was provided, then this amount is converted from 1 unit of `baseCurrency`, which will be the same as `exchangeRate` after rounding-off. """ quoteAmount: MonetaryAmount """ This much of `quoteCurrency` is required to buy 1 unit of `baseCurrency`. This includes merchant `markupPercentage` if any. If a `markupPercentage` is specified, this field will be the sum of that percentage and the `tradeRate`. """ exchangeRate: ExchangeRate """This is the rate at which PayPal will settle with the merchant.""" tradeRate: ExchangeRate """When the exchange rate quote represents expires.""" expiresAt: Timestamp """When the exchange rate quote represents will be refreshed.""" refreshesAt: Timestamp } """Input to generate the exchange rate quote.""" input ExchangeRateQuoteInput { """ The currency code from which the exchange rate will be used to convert to the `quoteCurrency`. """ baseCurrency: CurrencyCodeAlpha! """ The currency code to which the exchange rate will be used to convert from `baseCurrency`. """ quoteCurrency: CurrencyCodeAlpha! """ The amount in the `baseCurrency` to be converted to the `quoteCurrency`. If this is provided, the result will include the converted amount properly rounded. """ baseAmount: Amount """ A percentage added into the exchange rate. This allows the merchant to settle for more than the quoted `tradeRate`. """ markup: Percentage } """Exchange rate quotes for a specific customer.""" type ExchangeRateQuotePayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ Exchange rate quote details for each base and quote currency combination. """ quotes: [ExchangeRateQuote!] } """Input fields for external Payment status.""" input ExternalPaymentResponseInput { """Status of the payment.""" status: ExternalPaymentStatus! """Reason for the status of this payment.""" reason: String } """The type of payment status returned by external processors.""" enum ExternalPaymentStatus { AUTHORIZED DECLINED FAILED PENDING REFUNDED REJECTED SETTLED SUCCESS UNKNOWN VOIDED } """The name of the payment service provider processing the transaction.""" enum ExternalProcessor { ADYEN AMAZON_PAY AUTHORIZE_NET CHASE FISERV NUVEI SQUARE STRIPE WORLDPAY } """Input fields for external processor response.""" input ExternalProcessorResponseInput { """AVS verification response code.""" avsResponseCode: AvsCvvResponseCode """CVV verification response code.""" cvvResponseCode: AvsCvvResponseCode } """A credit card's assocation with an external vault.""" enum ExternalVaultStatus { """ The payment method for this transaction has been vaulted in an external vault. """ VAULTED """ The payment method has not been vaulted in an exernal vault, but it will be if this transaction is successfully processed. """ WILL_VAULT } """ Fields capturing information about a third party that provided payment information for this transaction via the Grant API, Shared Vault, or Google Pay. """ type FacilitatorDetails { """ The OAuth application that owns the payment information used to create the transaction. """ oauthApplication: OAuthApplication } """ Accompanying information for a transaction that failed because it could not be successfully sent to the processor. """ type FailedEvent implements PaymentStatusEvent { """The new status of the transaction.""" status: PaymentStatus """Date and time when the transaction failed.""" timestamp: Timestamp """The amount of the transaction for this status event.""" amount: MonetaryAmount """The source for the transaction change to the new status.""" source: PaymentSource """ Fields describing the payment processor response, or an explanation for the lack thereof. """ processorResponse: TransactionAuthorizationProcessorResponse """Fields describing the network response to the authorization request.""" networkResponse: PaymentNetworkResponse """ Fields describing the merchant advice code response to the authorization request. """ merchantAdviceCodeResponse: MerchantAdviceCodeResponse """Risk decision for this transaction.""" riskDecision: RiskDecision """Whether or not this is the final state for the transaction.""" terminal: Boolean """ User name of the person who performed an action that triggered the status change of the transaction. """ userName: String } """Configuration for PayPal Fastlane.""" type FastlaneConfiguration { """Whether or not Fastlane is enabled for the merchant.""" enabled: Boolean """Configuration for Tokens on Demand.""" tokensOnDemand: TokensOnDemandConfiguration } """Top-level input fields for finalizing a dispute.""" input FinalizeDisputeInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The ID of the dispute to be finalized.""" disputeId: ID! } """Top-level field returned when finalizing a dispute.""" type FinalizeDisputePayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Information about the dispute that was finalized.""" dispute: Dispute } """Configuration for fraud protection provider.""" type FraudProviderConfiguration { """ The merchant ID used by the fraud protection provider to identify the fraud data collection request. """ merchantId: String """The name of the fraud provider.""" name: String } """The fraud service provider used to generate the risk decision.""" enum FraudServiceProvider { CHARGEBACK_PROTECTION EFFORTLESS_CHARGEBACK_PROTECTION FRAUD_PROTECTION FRAUD_PROTECTION_ADVANCED FRAUD_PROTECTION_ENTERPRISE FRAUD_PROTECTION_EXTERNAL FRAUD_PROTECTION_LITE KOUNT } """ The unit of time for the interval which the payment is charged in a recurring billing plan. """ enum FrequencyUnit { DAY MONTH WEEK YEAR } """Accompanying information for a gateway rejected transaction.""" type GatewayRejectedEvent implements PaymentStatusEvent { """The new status of the transaction.""" status: PaymentStatus """Date and time when the transaction was rejected by the gateway.""" timestamp: Timestamp """The amount of the transaction for this status event.""" amount: MonetaryAmount """The source for the transaction change to the new status.""" source: PaymentSource """ The reason the transaction was rejected, based on your gateway settings. """ gatewayRejectionReason: GatewayRejectionReason """ Fields describing the payment processor response. Depending on your gateway settings, the AVS and CVV responses may be the reason for the rejection. """ processorResponse: TransactionAuthorizationProcessorResponse """Fields describing the network response to the authorization request.""" networkResponse: PaymentNetworkResponse """ Fields describing the merchant advice code response to the authorization request. """ merchantAdviceCodeResponse: MerchantAdviceCodeResponse """ Risk decision for this transaction. If the gatewayRejectionReason is fraud, this may be the reason for the rejection. """ riskDecision: RiskDecision """Whether or not this is the final state for the transaction.""" terminal: Boolean """ The original transaction if the gateway rejection reason was `DUPLICATE`. """ duplicateOf: Transaction """ User name of the person who performed an action that triggered the status change of the transaction. """ userName: String } """Possible reasons why a transaction was rejected by the gateway.""" enum GatewayRejectionReason { APPLICATION_INCOMPLETE AVS AVS_AND_CVV CVV DUPLICATE EXCESSIVE_RETRY FRAUD MANUAL_TRANSACTIONS_DISABLED PAYMENT_METHOD_BLOCKED RISK_THRESHOLD THREE_D_SECURE TOKEN_ISSUANCE TOO_MANY_CONFIRMATION_ATTEMPTS UNION_PAY_ENROLLMENT_REQUIRED } """Input for generating a URL for editing a funding instrument details.""" input GenerateEditFundingInstrumentUrlInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The vaulted billing agreement id.""" vaultedBillingAgreementId: ID! """URL for redirecting back to merchant app or website on the client.""" returnUrl: URL! """ URL for redirect back to merchant app on the client indicating unsuccessful approval. """ cancelUrl: URL! """PayPal Risk correlation ID (also known as the Client Metadata ID).""" paypalRiskCorrelationId: ID } """Details for editing a funding instrument.""" type GenerateEditFundingInstrumentUrlPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The Billing Agreement token.""" billingAgreementToken: ID! """ The URL to which a customer should be redirected to edit the funding instrument details. """ approvalUrl: URL! } """Input to generate a list of exchange rate quotes.""" input GenerateExchangeRateQuoteInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ Base and quote currency combinations for which the quote will be generated. """ quotes: [ExchangeRateQuoteInput!]! } """Coordinates describing a geographic position.""" type GeoCoordinates { """ The angular distance of a place north or south of the earth's equator. A positive value is north of the equator, a negative value is south of the equator. """ latitude: Float """ The angular distance of a place east or west of the meridian at Greenwich, England. A positive value is east of the prime meridian, a negative value is west of the prime meridian. """ longitude: Float } """Coordinates describing a geographic position.""" input GeoCoordinatesInput { """ The angular distance of a place north or south of the earth's equator. A positive value is north of the equator, a negative value is south of the equator. """ latitude: Float! """ The angular distance of a place east or west of the meridian at Greenwich, England. A positive value is east of the prime meridian, a negative value is west of the prime meridian. """ longitude: Float! } """Configuration for Google Pay on Android and the web.""" type GooglePayConfiguration { """ The country code of the acquiring bank where the transaction is likely to be processed. """ countryCode: CountryCodeAlpha2 """A string used to identify the merchant to the customer.""" displayName: String """The environment being used for Google Pay.""" environment: GooglePayEnvironment """Authorization to use when tokenizing a Google Pay payment method.""" googleAuthorization: String @deprecated(reason: "This field is included for supporting legacy clients.") """ A string used to identify the merchant's PayPal account when generating a PayPal Closed Loop Token. """ paypalClientId: String """A list of card brands supported by the merchant for Google Pay.""" supportedCardBrands: [CreditCardBrandCode!] } """The environment being used for Google Pay.""" enum GooglePayEnvironment { PRODUCTION SANDBOX production sandbox } """ Additional information about the payment method specific to Google Pay. """ type GooglePayOriginDetails { """A reference ID for the Google transaction.""" googleTransactionId: String """ The first 6 digits of the credit card, known as the Bank Identification Number. This BIN may differ from the BIN of the customer's actual card. """ bin: String """ The last four digits of the card number. For network tokenized payments, this is the last four digits of the source card(FPAN).For other payment methods, this is the last four digits of the virtual card(DPAN). """ last4: String """ The payment account reference (PAR) value, a non-financial reference number for the card. """ paymentAccountReference: String } """Details about a Hyperwallet account.""" type HyperwalletAccountDetails { """The ID of the Hyperwallet account.""" userId: String } """Configuration for iDEAL.""" type IDealConfiguration { """The route ID used to process an iDEAL payment.""" routeId: String """A URL used to redirect the customer to the bank's web page.""" assetsUrl: String } """Input fields for industry data additional charges.""" input IndustryAdditionalChargeInput { """The kind of charge.""" kind: IndustryAdditionalChargeType! """The amount of the additional charge.""" amount: Amount! } """The type of additional charge for industry data.""" enum IndustryAdditionalChargeType { GIFT_SHOP LAUNDRY MINI_BAR OTHER RESTAURANT TELEPHONE } """Input fields for industry cruise data.""" input IndustryCruiseInput { """The cruise travel package.""" travelPackage: IndustryCruiseTravelPackageType! """The date of cruise check in.""" lodgingCheckInDate: Date """The date of cruise check out.""" lodgingCheckOutDate: Date """The date of cruise departure.""" departureDate: Date """The cruise lodging name.""" lodgingName: String } """The type of cruise travel package.""" enum IndustryCruiseTravelPackageType { CAR FLIGHT FLIGHT_AND_CAR OTHER } """Input fields for industry flight data.""" input IndustryFlightInput { """The passenger's first name.""" passengerFirstName: String """The passenger's last name.""" passengerLastName: String """The passenger's middle initial.""" passengerMiddleInitial: String """The passenger's title (e.g. Mr, Ms).""" passengerTitle: String """The passenger's date of birth.""" dateOfBirth: Date """The passenger's nationality.""" countryCode: CountryCodeAlpha2 """The day on which the tickets were issued.""" issuedDate: Date """The travel agency's name.""" travelAgencyName: String """The travel agency's IATA code.""" travelAgencyCode: String """The primary ticket number. Maximum 15 characters.""" ticketNumber: String """ The ticket issuer's IATA code. Maximum 4 characters. For airline, code is obtained from the Official Airline Guide or its equivalent. Required for Reduced Interchange. """ issuingCarrierCode: String """ The code supplied by the customer using a purchase card. Maximum 17 characters. """ customerCode: String """The fare amount.""" fareAmount: Amount """The fee amount.""" feeAmount: Amount """The tax amount.""" taxAmount: Amount """Indicates if the ticket is restricted.""" restrictedTicket: Boolean! """The date of check-in.""" arrivalDate: Date """The address of the agency issuing the ticket.""" ticketIssuerAddress: AddressInput """ Identifies the different legs of travel. It can include up to 12 items. """ legs: [IndustryFlightLegInput!] } """Input fields for industry data legs.""" input IndustryFlightLegInput { """The conjunction ticket. Maximum 14 characters.""" conjunctionTicket: String """ The ticket number issued when the ticket was exchanged. Maximum 15 characters. """ exchangeTicket: String """The coupon number. Exactly 1 character.""" couponNumber: String """The class of service's IATA code. Maximum 2 characters.""" serviceClass: String """The carrier's IATA code. Maximum 2 characters.""" carrierCode: String """The fare basis code. Maximum 15 characters.""" fareBasisCode: String """The flight number. Maximum 5 characters.""" flightNumber: String """The day of departure.""" departureDate: Date """The departure airport's IATA code. Exactly 3 characters.""" departureAirportCode: String """The departure time in the 24-hour format HH:MM.""" departureTime: String """The arrival airport's IATA code. Exactly 3 characters.""" arrivalAirportCode: String """The arrival time in the 24-hour format HH:MM.""" arrivalTime: String """Indicates whether a stopover is permitted.""" stopoverPermitted: Boolean """The fare amount.""" fareAmount: Amount """The fee amount.""" feeAmount: Amount """The tax amount.""" taxAmount: Amount """ The notes or notations about endorsements or restrictions (e.g. NOT REFUNDABLE). """ endorsementOrRestrictions: String } """Input fields for industry lodging data.""" input IndustryLodgingInput { """ The folio number assigned to the itemized statement assigned to this stay. Alphanumeric with a maximum of 12 characters. """ folioNumber: String """Customer check-in date.""" checkInDate: Date """Customer check-out date.""" checkOutDate: Date """Hotel daily room charge.""" roomRate: Amount """Hotel daily tax.""" roomTax: Amount """ Indicates whether or not the customer checked in, rented a car, etc. It should be true when the guest did not show up for the reservation. """ noShow: Boolean """This transaction is an advanced payment for a hotel stay.""" advancedDeposit: Boolean """ This property complies with the Hotel and Motel Fire Safety Act of 1990. """ fireSafe: Boolean """ The property's 10-digit phone number, consisting of digits (0-9), dashes (-), parentheses (()), and dots (.). Examples: (555)555-1234, 555-555-1234. """ propertyPhone: String """The list of additional charges for the hotel stay.""" additionalCharges: [IndustryAdditionalChargeInput!] } """Input fields for creating an in-store authorization.""" input InStoreAuthorizationInput { """ 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. """ amount: Amount! """ 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. """ merchantAccountId: ID """ 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. """ orderId: String """ 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. """ customFields: [CustomFieldInput!] """ Fields used to define what will appear on a customer's bank statement for a specific purchase. """ descriptor: TransactionDescriptorInput """ 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. """ customerId: ID """ 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. """ vaultPaymentMethodAfterTransacting: VaultPaymentMethodAfterTransactingInput """ 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. """ channel: String """ Industry data information. Only one of the three sub-input fields can be provided. """ industry: TransactionIndustryInput """ Controls whether to allow partial authorizations (or "partial approvals") for this transaction. Defaults to false. """ acceptPartialAuthorization: Boolean """ This field denotes the nature or characteristic of a transaction, including whether it is initiated by the merchant or the customer. """ paymentInitiator: InStorePaymentInitiator } """The type of background style on an in-store reader.""" enum InStoreBackgroundStyle { PRIMARY SECONDARY } """Input fields for a choice on an in-store reader.""" input InStoreChoiceInput { """ The primary text of the choice to be displayed on the in-store reader, with a maximum of 35 characters. """ primaryText: String! """ The secondary text of the choice to be displayed on the in-store reader, with a maximum of 35 characters. """ secondaryText: String """The background style of the choice. Defaults to PRIMARY.""" style: InStoreBackgroundStyle } """Reference object for an in-store request.""" type InStoreContext implements Node & InStoreContextResult { """A unique ID for this in-store request.""" id: ID! @deprecated(reason: "Use the id field from the InStoreContextPayload") """The transaction representing the charge on the payment method.""" transaction: Transaction @deprecated(reason: "Use a Node query for a RequestTransactionInStoreContext") """The refund representing the refund on the payment method.""" refund: Refund @deprecated(reason: "Use a Node query for a RequestRefundInStoreContext") """The reader associated with the in-store request.""" reader: InStoreReader @deprecated(reason: "Use the reader field from the InStoreContextPayload") """The status of the context created.""" status: InStoreContextStatus! @deprecated(reason: "Use the status field from the InStoreContextPayload") } """An in-store context error object.""" type InStoreContextError { """The text explanation of the in-store context error.""" message: String """ A unique code identifying the error, which can be used to look up a [detailed description](https://braintree.gitbook.io/in-person/guides/graphql-error-handling#table-1-error-code-explanations). """ errorCode: String } """ Top-level fields returned when requesting a state change on an in-store reader. """ type InStoreContextPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The in-store context created when an in-store flow is initiated.""" inStoreContext: InStoreContext @deprecated(reason: "Use top-level fields") """A unique ID for this in-store context request.""" id: ID! """The reader associated with the in-store request.""" reader: InStoreReader """The status of the context created.""" status: InStoreContextStatus! } """Reference object for an in-store request.""" interface InStoreContextResult { """A unique ID for this in-store request.""" id: ID! """The reader associated with the in-store request.""" reader: InStoreReader } """ Potential statuses of a context created as part of an in-store request. """ enum InStoreContextStatus { """The request was canceled.""" CANCELLED """The requested operation was successfully completed.""" COMPLETE """The requested operation failed.""" FAILED """ The request has been sent to the reader and is pending customer or point-of-sale interaction. """ PENDING """The requested operation is in progress.""" PROCESSING } """Input fields for creating an in-store credit card refund.""" input InStoreCreditCardRefundOptionsInput { """The refund date and time as reported by the in-store payment terminal.""" paymentInitiatedAt: Timestamp """ Merchant Category Code (MCC) used to classify the type of business associated with this transaction. Defaults to merchant account's configured MCC unless explicitly overridden during transaction creation. """ merchantCategoryCode: MerchantCategoryCode } """ Input fields for creating an in-store transaction by authorizing or charging a credit card. """ input InStoreCreditCardTransactionOptionsInput { """ The transaction date and time as reported by the in-store payment terminal. """ paymentInitiatedAt: Timestamp } """Input fields for an individual display item on an in-store reader.""" input InStoreDisplayItemInput { """The display item type to be displayed on the in-store reader.""" kind: DisplayItemType! """ The display item text to be displayed on the in-store reader. 35 character maximum. """ description: String """ The number of units for a CHARGE or DISCOUNT item. Must be greater than 0. """ quantity: Float """The total amount of a CHARGE or DISCOUNT item.""" amount: Amount } """An in-store location.""" type InStoreLocation implements Node { """Unique identifier.""" id: ID! """Name of the in-store location.""" name: String """ A merchant-assigned internal name of this location, unique to this merchant. """ internalName: String """The address of the in-store location.""" address: InStoreLocationAddress """The coordinates of this location.""" geoCoordinates: GeoCoordinates """The PayPal account ID to which this location was added.""" payerId: ID """Whether QR code payments will be enabled for this location.""" qrCodePaymentsEnabled: Boolean } """Input fields for an in-store location address.""" type InStoreLocationAddress { """The street address.""" streetAddress: String """Extended address information, such as an apartment or suite number.""" extendedAddress: String """Locality/city.""" locality: String """State or province.""" region: String """ Postal code in any country's format, otherwise known as CAP, CEP, Eircode, NPA, PIN, PLZ, or ZIP code. """ postalCode: String """Country code for the address.""" countryCode: CountryCode } """Input fields for an in-store Location Address.""" input InStoreLocationAddressInput { """The street address.""" streetAddress: String! """Extended address information, such as an apartment or suite number.""" extendedAddress: String """Locality/city.""" locality: String! """State or province.""" region: String! """ Postal code in any country's format, otherwise known as CAP, CEP, Eircode, NPA, PIN, PLZ, or ZIP code. """ postalCode: String! """Country code for the address.""" countryCode: CountryCode! } """ Input fields for searching an in-store location address. If multiple fields are specified, location addresses will be returned which meet all of the specified criteria. """ input InStoreLocationAddressSearchInput { """ Find in-store locations with a given street address (case-insensitive). """ streetAddress: SearchTextValueInput """ Find in-store locations with a given extended address (case-insensitive). """ extendedAddress: SearchTextValueInput """Find in-store locations with a given locality (case-insensitive).""" locality: SearchTextValueInput """Find in-store locations with a given region (case-insensitive).""" region: SearchTextValueInput """Find in-store locations with a given postal code.""" postalCode: SearchTextValueInput } """Input fields for an in-store Location Address update.""" input InStoreLocationAddressUpdateInput { """The street address.""" streetAddress: String """Extended address information, such as an apartment or suite number.""" extendedAddress: String """Locality/city.""" locality: String """State or province.""" region: String """ Postal code in any country's format, otherwise known as CAP, CEP, Eircode, NPA, PIN, PLZ, or ZIP code. """ postalCode: String """Country code for the address.""" countryCode: CountryCode } """ Input fields for searching an in-store location. If multiple fields are specified, locations will be returned which meet all of the specified criteria. """ input InStoreLocationConditionInput { """Find in-store locations with a given ID or IDs.""" id: SearchValueInput """Find in-store locations with a given name (case-insensitive).""" name: SearchTextValueInput """Find in-store locations with a given internal name (case-insensitive).""" internalName: SearchTextValueInput """Find in-store locations with a given address.""" address: InStoreLocationAddressSearchInput } """A paginated list of in-store locations.""" type InStoreLocationConnection { """A list of in-store locations.""" edges: [InStoreLocationConnectionEdge] """Information about the page of in-store locations contained in `edges`.""" pageInfo: PageInfo! } """An in-store location within an InStoreLocationConnection.""" type InStoreLocationConnectionEdge { """ The in-store locations's location within the InStoreLocationConnection. Used for requesting additional pages. """ cursor: String """The in-store location.""" node: InStoreLocation } """Fields required for an instore location.""" input InStoreLocationInput { """The publicly visible label of this Location.""" name: String! """Name assigned by the merchant to uniquely identify this Location.""" internalName: String! """The address of the in-store Location.""" address: InStoreLocationAddressInput! """The PayPal account ID to which this Location will be added.""" payerId: ID """Whether QR code payments will be enabled for this location.""" enableQRCodePayments: Boolean! } """A paginated list of searched in-store locations.""" type InStoreLocationSearchConnection { """A list of in-store locations.""" edges: [InStoreLocationConnectionEdge] """Information about the page of in-store locations contained in `edges`.""" pageInfo: PageInfo! } """Input fields for searching in-store locations.""" input InStoreLocationSearchInput { """Find in-store locations which meet any of the specified conditions.""" conditionsIn: [InStoreLocationConditionInput!] } """Fields required to update an in-store location.""" input InStoreLocationUpdateInput { """The publicly visible label of this location.""" name: String """Name assigned by the merchant to uniquely identify this location.""" internalName: String """The address of the location.""" address: InStoreLocationAddressUpdateInput """The PayPal account ID to which this location will be added.""" payerId: ID """Whether QR code payments will be enabled for this location.""" enableQRCodePayments: Boolean } """ The nature or characteristic of a transaction, including whether it is initiated by the merchant or the customer. """ enum InStorePaymentInitiator { """ Transactions that are initiated by the customer when the final amount of the transaction is not known at the time of authorization. Applicable for InStoreAuthorizationInput only. """ ESTIMATED } """The alignment of the content when printed on the in-store reader.""" enum InStorePrintAlignment { CENTER LEFT RIGHT } """Input fields for content to be printed on the in-store reader.""" input InStorePrintContentInput { """The text content to be printed.""" text: InStorePrintTextInput """The image content to be printed.""" image: InStorePrintImageInput } """Input fields for image content to be printed on the in-store reader.""" input InStorePrintImageInput { """ The base64-encoded string representation of the image. The image must be in PNG format and cannot exceed 76,800 bytes in size. """ value: String! """ A boolean flag indicating whether this is the last item on the current line. Defaults to `true`. Also, it offers the option for the caller to print two or more items side-by-side. """ endOfLineFlag: Boolean """The alignment of the image on the printed paper. Defaults to `CENTER`.""" alignment: InStorePrintAlignment } """The decoration of the text on an in-store reader.""" enum InStorePrintTextDecoration { LINE_THROUGH NORMAL OVERLINE UNDERLINE } """The font style of the text on an in-store reader.""" enum InStorePrintTextFontStyle { ITALIC NORMAL } """The font weight of the text on an in-store reader.""" enum InStorePrintTextFontWeight { BOLD NORMAL } """Input fields for text content to be printed on the in-store reader.""" input InStorePrintTextInput { """The text value to be printed.""" value: String! """ A boolean flag indicating whether this is the last item on the current line. Defaults to `true`. """ endOfLineFlag: Boolean """The alignment of the text on the printed paper. Defaults to `CENTER`.""" alignment: InStorePrintAlignment """The decoration of the text. Defaults to `NORMAL`.""" textDecoration: InStorePrintTextDecoration """The font weight of the text. Defaults to `NORMAL`.""" fontWeight: InStorePrintTextFontWeight """The font style of the text. Defaults to `NORMAL`.""" fontStyle: InStorePrintTextFontStyle """The font size of the text. Defaults to `24`.""" fontSize: Int } """An in-store payment card reader.""" type InStoreReader implements Node { """Unique identifier.""" id: ID! """Name given to the reader.""" name: String """Vendor-specific information about the reader.""" vendor: InStoreReaderVendor """The in-store location the reader is attached to.""" location: InStoreLocation """Current status of the reader.""" status: ReaderStatus """Date and time when the reader was paired.""" pairedAt: Timestamp """Date and time when the reader last established a connection.""" lastSeenAt: Timestamp """Date and time when the reader last disconnected.""" offlineSince: Timestamp """The version of the payment application running on the Reader.""" softwareVersion: String } """The authorization mode used to perform the transaction.""" enum InStoreReaderAuthorizationMode { CARD ISSUER } """ Input fields for searching an in-store reader. If multiple fields are specified, only readers that meet all of the specified criteria will be returned. """ input InStoreReaderConditionInput { """Find in-store readers with a given ID or IDs.""" id: SearchValueInput """ Find in-store readers with a given name. Note: Field is case insensitive. """ name: SearchTextValueInput """Find in-store readers with a given reader status.""" status: ReaderStatus """ Find in-store readers with a given software version. Note: Field is case insensitive. """ softwareVersion: SearchTextValueInput """ Find in-store readers with a given model. Note: Field is case insensitive. """ model: SearchTextValueInput """ Find in-store readers with a given serial number. Note: Field is case insensitive. """ serialNumber: SearchTextValueInput """Find in-store readers with a given location.""" location: [InStoreLocationConditionInput!] } """A paginated list of in-store readers.""" type InStoreReaderConnection { """A list of in-store readers.""" edges: [InStoreReaderConnectionEdge] """Information about the page of in-store readers contained in `edges`.""" pageInfo: PageInfo! } """An in-store reader within an InStoreReaderConnection.""" type InStoreReaderConnectionEdge { """ The in-store reader's location within the InStoreReaderConnection. Used for requesting additional pages. """ cursor: String """The in-store reader.""" node: InStoreReader } """The alignment of the text when displayed on the in-store reader.""" enum InStoreReaderDisplayAlignment { CENTER LEFT } """ Additional information about the payment method supplied by an in-store payment reader. """ interface InStoreReaderOriginDetails { """ The authorization mode used to perform the transaction on the payment reader. """ authorizationMode: InStoreReaderAuthorizationMode """An indicator for whether the transaction was verified via pin.""" pinVerified: Boolean """ The input mode used on the payment reader to facilitate an in-store transaction. """ inputMode: PaymentReaderInputMode """The ID of the terminal that was processed this transaction.""" terminalId: String """The ID of the payment reader that processed this transaction.""" readerId: String """The ID of the store where this transaction was processed.""" storeId: String } """Top-level fields returned for an in-store reader.""" type InStoreReaderPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The reader.""" reader: InStoreReader } """Input fields for searching for in-store readers.""" input InStoreReaderSearchInput { """Find in-store readers which meet any of the specified conditions.""" conditionsIn: [InStoreReaderConditionInput!] } """Fields that are reader specific for pairing a reader.""" input InStoreReaderSetupInput { """In-Store Location to attach Reader to.""" locationId: ID! """Name given to the Reader.""" name: String } """ The type of text prompt on the in-store reader. If any of the SENSITIVE values are selected, the input characters will be masked on the device display. """ enum InStoreReaderTextPromptType { ALPHANUMERIC NUMERIC SENSITIVE_ALPHANUMERIC SENSITIVE_NUMERIC } """A union of all possible in-store reader vendors.""" union InStoreReaderVendor = VerifoneVendor """Input fields for creating an in-store transaction.""" input InStoreRefundInput { """ Refund 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. """ amount: Amount! """ Merchant account ID used to process the refund. Currency is also determined by merchant account ID. If no merchant account ID is specified, we will use your default merchant account. """ merchantAccountId: ID """ Additional information about the refund. On PayPal refunds, 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 refunds. """ orderId: String """ 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. """ customFields: [CustomFieldInput!] """ Fields used to define what will appear on a customer's bank statement for a specific purchase. """ descriptor: TransactionDescriptorInput } """ Additional information about an in-store charge or authorize context status. """ enum InStoreTransactionContextStatusReason { """ The context was completed with a partially authorized transaction. Please note that partial authorizations are only supported on versions >= 5.0.0 of the in-store reader payment application. """ PARTIALLY_AUTHORIZED } """Input fields for creating an in-store transaction.""" input InStoreTransactionInput { """ 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. """ amount: Amount! """ 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. """ merchantAccountId: ID """ 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. """ orderId: String """ 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. """ customFields: [CustomFieldInput!] """ Fields used to define what will appear on a customer's bank statement for a specific purchase. """ descriptor: TransactionDescriptorInput """ 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. """ customerId: ID """ 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. """ vaultPaymentMethodAfterTransacting: VaultInStorePaymentMethodAfterTransactingInput """ 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. """ channel: String """ A purchase order identification value you associate with this transaction. *Required for Level 2 processing*. """ purchaseOrderNumber: String """ Tax information about the transaction. *Required for Level 2 processing*. """ tax: TransactionTaxInput """ Shipping information. *Required for Level 3 processing*. """ shipping: TransactionShippingInput """ 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*. """ discountAmount: String """ Line items for this transaction. Up to 249 line items may be specified. *Required for Level 3 processing*. """ lineItems: [TransactionLineItemInput!] """ Industry data information. Only one of the three sub-input fields can be provided. """ industry: TransactionIndustryInput """ Controls whether to allow partial authorizations (or "partial approvals") for this transaction. Defaults to false. """ acceptPartialAuthorization: Boolean } """Configuration for Kount fraud tools.""" type KountConfiguration { """ The Kount merchant ID used to identify the fraud data collection request. """ merchantId: String } """ The [language tag](https://tools.ietf.org/html/bcp47#section-2) for the language in which to localize the error-related strings, such as messages, issues, and suggested actions. The tag is made up of the [ISO 639-2 language code](https://www.loc.gov/standards/iso639-2/php/code_list.php), the optional [ISO-15924 script tag](http://www.unicode.org/iso15924/codelists.html), and the [ISO-3166 alpha-2 country code](https://developer.paypal.com/braintree/docs/reference/general/countries). maxLength: 10 minLength: 2 pattern: `^[a-z]{2}(?:-[A-Z][a-z]{3})?(?:-(?:[A-Z]{2}))?$` """ scalar Language """ The type of object the legacy ID represents when converting it to a global ID. """ enum LegacyIdType { CUSTOMER DISPUTE MERCHANT_ACCOUNT_APPLICATION PAYMENT_CONTEXT PAYMENT_METHOD RECURRING_BILLING_SUBSCRIPTION_PLAN RECURRING_BILLING_SUBSCRIPTION_PLAN_ADD_ON RECURRING_BILLING_SUBSCRIPTION_PLAN_DISCOUNT REFUND TRANSACTION US_BANK_ACCOUNT_VERIFICATION VERIFICATION } """ A scenario detailing which party assumes liability for certain conditions in the event of a transaction being disputed. """ type LiabilityShift { """The party taking responsibility for liability.""" responsibleParty: LiabilityShiftResponsibleParty """ The specific conditions under which the responsible party assumes liability, in the event of a chargeback. """ conditions: [LiabilityShiftCondition!] } """ If enrolled in Effortless Chargeback Protection, and in the event the transaction is disputed, these are the specific conditions under which the responsible party assumes liability for that chargeback. """ enum LiabilityShiftCondition { ITEM_NOT_RECEIVED UNAUTHORIZED } """ If enrolled in Effortless Chargeback Protection, and in the event the transaction is disputed, these are the possible parties which can assume liability. """ enum LiabilityShiftResponsibleParty { ISSUER PAYPAL } """UPC(Universal Product Code) of a line items.""" type LineItemUpc { """UPC code for the item. Minimum 6 characters, maximum 17 characters.""" upcCode: String """UPC type for the item.""" upcType: UpcType } """UPC(Universal Product Code) of a line item.""" input LineItemUpcInput { """UPC code for the item. Minimum 6 characters, maximum 17 characters.""" upcCode: String! """UPC type for the item.""" upcType: UpcType! } """Input fields for local payment addresses.""" input LocalPaymentAddressInput { """The street address.""" streetAddress: String """Extended address information, such as an apartment or suite number.""" extendedAddress: String """Locality/city.""" locality: String """State or province.""" region: String """ Postal code in any country's format, otherwise known as CAP, CEP, Eircode, NPA, PIN, PLZ, or ZIP code. """ postalCode: String """Country code for the address.""" countryCode: CountryCode } """BLIK alias for BLIK OneClick Local Payment transaction details.""" type LocalPaymentBlikAlias { """BLIK OneClick alias key.""" key: String """BLIK OneClick alias label.""" label: String } """The LocalPayment object.""" type LocalPaymentContext implements Node & PaymentContext { """Unique identifier for the payment context.""" id: ID! """Legacy unique identifier.""" legacyId: ID! """The type of the local payment.""" type: LocalPaymentMethodType """ The URL to which a customer should be redirected to approve the local payment. """ approvalUrl: String """The amount charged in this local payment.""" amount: MonetaryAmount """The merchant account used to create the payment context.""" merchantAccountId: String """ Date and time when the local payment context was used to create a transaction. """ transactedAt: Timestamp """ Date and time when the local payment context was approved by the customer. """ approvedAt: Timestamp """Date and time when the local payment context was created.""" createdAt: Timestamp! """Date and time when the local payment context was updated.""" updatedAt: Timestamp! """Date and time when the local payment context was expired.""" expiredAt: Timestamp """Unique identifier for the local payment.""" paymentId: String! """The PayPal Invoice ID.""" orderId: String } """Input fields for local payment context.""" input LocalPaymentContextInput { """ The order id of the eventual Braintree transaction and the order number of the local payment context. Maximum 127 characters. """ orderId: String """The amount of the local payment.""" amount: MonetaryAmountInput! """The type of local payment.""" type: LocalPaymentMethodType! """ The country code of the local payment. For local payments supported in multiple countries, this value may determine which banks are presented to the customer. """ countryCode: CountryCode """The language in which to localize the error-related strings.""" locale: Language """ The URL where the customer is redirected to after the customer approves the payment. """ returnUrl: String! """ The URL where the customer is redirected to after the customer cancels the payment. """ cancelUrl: String! """ ID of the PayPal merchant account that will be used when charging this payment method. """ merchantAccountId: ID """The payer's information.""" payerInfo: LocalPaymentPayerInfoInput! """ Overrides the default date at which the local payment context will expire. MULTIBANCO is not overridable. """ expiryDate: Date } """Local payment specific details on a transaction.""" type LocalPaymentDetails { """ Additional information about the local payment method provided from a third-party origin, such as PayPal or another regional payment method provider. """ origin: PaymentMethodOrigin """Regional payment method selected by the customer.""" type: LocalPaymentMethodType """Description of the payment method that can be displayed to customers.""" displayName: String """Payment method identifier for recurrent local payment.""" implicitlyVaultedPaymentMethodId: String } """A value identifying the type of regional payment method.""" enum LocalPaymentMethodType { ALIPAY BANCOMATPAY BANCONTACT BIZUM BLIK BOLETOBANCARIO @deprecated(reason: "Boleto Bancário is no longer supported.") CRYPTO EPS GIROPAY GRABPAY IDEAL KLARNA MBWAY MULTIBANCO MYBANK OXXO P24 PAYU PAY_UPON_INVOICE SATISPAY SEPA SKRILL SOFORT SWISH TRUSTLY TWINT VERKKOPANKKI VIPPS WECHAT_PAY } """Input fields for the payer of a local payment.""" input LocalPaymentPayerInfoInput { """The payer's given (first) name.""" givenName: String! """The payer's surname (last name).""" surname: String! """The payer's email.""" email: EmailAddress """The payer's phone number.""" phoneNumber: String """The country code for the payer's phone number.""" phoneCountryCode: String """The payer's shipping address.""" shippingAddress: LocalPaymentAddressInput """The payer's billing address.""" billingAddress: LocalPaymentAddressInput } """Input fields for a magstripe card.""" input MagstripeCardInput { """Magstripe data.""" magstripeData: String } """Mandate type for SEPA Direct Debit Account.""" enum MandateType { ONE_OFF RECURRENT } """Configuration for Masterpass.""" type MasterpassConfiguration { """ The Masterpass merchant checkout ID used to identify the merchant in Masterpass requests. """ merchantCheckoutId: String """A list of card brands supported by the merchant for Masterpass.""" supportedCardBrands: [CreditCardBrandCode!] } """ Additional information about the payment method specific to Masterpass. """ type MasterpassOriginDetails { """ The first 6 digits of the credit card, known as the Bank Identification Number. This BIN may differ from the BIN of the customer's actual card. """ bin: String } """Details about a merchant and its current settings.""" type Merchant { """Unique identifier.""" id: ID! """Current status.""" status: String """Company name.""" companyName: String """The merchant's main website.""" website: String """The timezone that the merchant operates in.""" timezone: String """The country the merchant operates in.""" countryName: String """ A paginated list of merchant accounts that belong to this merchant. Filtered by search criteria, if provided. """ merchantAccounts(input: MerchantAccountSearchInput, first: Int, after: String): MerchantAccountConnection } """Information about a merchant account associated with a merchant.""" type MerchantAccount { """ Unique identifier for the merchant account. Used to determine what merchant account processed or will process a given Payment. """ id: ID! """The disbursement bank account linked with the merchant account.""" bankAccount: DisbursementBankAccount @deprecated(reason: "This field is no longer supported and will always be null.") """The ISO code for the currency the merchant account uses.""" currencyCode: CurrencyCodeAlpha """Business name of the account.""" dbaName: String """A unique identifier for this account in external systems.""" externalId: String """ The status of a merchant account. This determines whether the merchant account can be used to create a Payment. """ status: MerchantAccountStatus """ Whether this merchant account is the default for this merchant. The default merchant account is used to process all Payments where a merchant account ID is not specified. """ isDefault: Boolean """The PayPal account linked with the merchant account.""" paypalAccount: PayPalAccountDetails """The Hyperwallet account linked with the merchant account.""" hyperwalletAccount: HyperwalletAccountDetails """The Venmo account linked with the merchant account.""" venmoAccount: VenmoAccountDetails """The 3D Secure configuration for the merchant account.""" threeDSecure: MerchantAccountThreeDSecureConfiguration } """A paginated list of merchant accounts.""" type MerchantAccountConnection { """A list of merchant accounts.""" edges: [MerchantAccountConnectionEdge] """Information about the page of merchant accounts contained in `edges`.""" pageInfo: PageInfo! } """A merchant account within a MerchantAccountConnection.""" type MerchantAccountConnectionEdge { """ This merchant account's location within the MerchantAccountConnection. Used for requesting additional pages. """ cursor: String """The merchant account.""" node: MerchantAccount } """Input fields for searching for merchant accounts.""" input MerchantAccountSearchInput { """Find merchant accounts with an id or ids.""" id: SearchValueInput """Find merchant accounts associated with a given PayPal account ID.""" paypalAccountId: SearchValueInput } """ The status of a merchant account. This determines whether the merchant account can be used to create a Payment, and whether funds can continue to flow to the associated bank account. """ enum MerchantAccountStatus { """The merchant account can be used to create transactions and refunds.""" ACTIVE """ The merchant account is still being set up, and cannot be used to create transactions or refunds yet. """ PENDING """ The merchant account cannot be used to process transactions or refunds. """ SUSPENDED } """Details about the 3D Secure configuration of the merchant account.""" type MerchantAccountThreeDSecureConfiguration { """Configuration for 3D Secure v1.""" v1: MerchantAccountThreeDSecureVersionConfiguration """Configuration for 3D Secure v2.""" v2: MerchantAccountThreeDSecureVersionConfiguration } """ Details about the configuration of a version of 3D Secure for the merchant account. """ type MerchantAccountThreeDSecureVersionConfiguration { """Card types enabled for this 3D Secure version.""" supportedCardBrands: [CreditCardBrandCode!] } """ The Merchant Advice Code response, this field can provide to merchants the reason for declining a recurring payment transaction, and the actions merchants can take to continue to serve their recurring payment customers. """ type MerchantAdviceCodeResponse { """ The merchant advice code, see the [list of possible merchant advice codes](https://developer.paypal.com/braintree/docs/reference/general/merchant-responses/merchant-advice-codes). """ code: String """The merchant advice code text.""" message: String } """ An [ISO 18245](https://en.wikipedia.org/wiki/ISO_18245) Merchant Category Code. Four digits. """ scalar MerchantCategoryCode """Configuration for Meta Checkout.""" type MetaCheckoutConfiguration { """The Meta Checkout partner id.""" partnerId: String """ The merchant identifier that must be supplied to Meta when onboarding a merchant for Meta Checkout. """ partnerMerchantId: String """A list of supported container types for Meta Checkout.""" supportedContainers: [String!] """The acquirer country code used for Meta Checkout.""" acquirerCountryCode: String } """ Additional information about the payment method specific to Meta Checkout. """ type MetaCheckoutOriginDetails { """A Meta assigned identifier for the transaction.""" containerId: String """ The first 6 digits of the credit card, known as the Bank Identification Number. This BIN may differ from the BIN of the customer's actual card. """ bin: String } """A monetary amount with currency.""" type MonetaryAmount { """ The amount of money, either a whole number or a number with up to 3 decimal places. """ value: Amount """The ISO code for the money's currency.""" currencyIsoCode: CurrencyCodeAlpha @deprecated(reason: "Use `currencyCode` instead.") """The currency code for the monetary amount.""" currencyCode: CurrencyCodeAlpha } """Input fields representing an amount with currency.""" input MonetaryAmountInput { """ The amount of money, either a whole number or a number with up to 3 decimal places. """ value: Amount! """The currency code for the monetary amount.""" currencyCode: CurrencyCodeAlpha! } """Input fields for searching for a transaction or refund amount.""" input MonetaryAmountSearchInput { """Find transactions for a given amount.""" value: SearchRangeInput """Find transactions with a given currency.""" currencyCode: SearchTextInput } """A two-digit, zero-padded month.""" scalar Month """ The top-level Mutation type. Mutations are used to make requests that create or modify data. """ type Mutation { """ Authorize an eligible payment method and return a payload that includes details of the resulting transaction. """ authorizePaymentMethod(input: AuthorizePaymentMethodInput!): TransactionPayload """ Authorize an eligible PayPal account and return a payload that includes details of the resulting transaction. """ authorizePayPalAccount(input: AuthorizePayPalAccountInput!): PayPalTransactionPayload """ Authorize an eligible Venmo account and return a payload that includes details of the resulting transaction. """ authorizeVenmoAccount(input: AuthorizeVenmoAccountInput!): TransactionPayload """ Authorize a credit card of any origin and return a payload that includes details of the resulting transaction. """ authorizeCreditCard(input: AuthorizeCreditCardInput!): TransactionPayload """ Authorize an in-store credit card and return a payload that includes details of the resulting transaction. """ authorizeInStoreCreditCard(input: AuthorizeInStoreCreditCardInput!): TransactionPayload """ Capture an authorized transaction and return a payload that includes details of the transaction. """ captureTransaction(input: CaptureTransactionInput!): TransactionPayload """Updates EMV data necessary to capture an EMV contact transaction.""" updateEmvCaptureData(input: UpdateEmvCaptureDataInput!): TransactionPayload """ Charge any payment method and return a payload that includes details of the resulting transaction. """ chargePaymentMethod(input: ChargePaymentMethodInput!): TransactionPayload """ Charge a US bank account and return a payload that includes details of the resulting transaction. See https://developers.braintreepayments.com/guides/ach/configuration for information on eligibility and setup. """ chargeUsBankAccount(input: ChargeUsBankAccountInput!): TransactionPayload """ Charge a PayPal account and return a payload that includes details of the resulting transaction. """ chargePayPalAccount(input: ChargePayPalAccountInput!): PayPalTransactionPayload """ Charge a Venmo account and return a payload that includes details of the resulting transaction. See https://articles.braintreepayments.com/guides/payment-methods/venmo for information on eligibility and setup. """ chargeVenmoAccount(input: ChargeVenmoAccountInput!): TransactionPayload """ Charge a credit card of any origin and return a payload that includes details of the resulting transaction. """ chargeCreditCard(input: ChargeCreditCardInput!): TransactionPayload """ Charge an in-store credit card and return a payload that includes details of the resulting transaction. """ chargeInStoreCreditCard(input: ChargeInStoreCreditCardInput!): TransactionPayload """ Vault payment information from a single-use payment method and return a payload that includes a new multi-use payment method. When vaulting a credit card, by default, this mutation will also verify that card before vaulting. """ vaultPaymentMethod(input: VaultPaymentMethodInput!): VaultPaymentMethodPayload """ Vault payment information from a single-use US bank account payment method and return a payload that includes a new multi-use payment method. """ vaultUsBankAccount(input: VaultUsBankAccountInput!): VaultPaymentMethodPayload """ Vault payment information from a single-use credit card and return a payload that includes a new multi-use payment method. By default, this mutation will also verify the card before vaulting. """ vaultCreditCard(input: VaultCreditCardInput!): VaultPaymentMethodPayload """ Create an EMV chip declined transaction and return a payload that includes details of the created transaction. """ createOfflineDeclinedTransaction(input: CreateOfflineDeclinedTransactionInput!): TransactionPayload """ Refund a settled transaction and return a payload that includes details of the refund. """ refundTransaction(input: RefundTransactionInput!): RefundTransactionPayload """ Void a transaction and return a payload that includes details of the voided transaction. """ voidTransaction(input: VoidTransactionInput!): VoidTransactionPayload """ Reverse a transaction and return a payload that includes either the voided transaction or a refund. """ reverseTransaction(input: ReverseTransactionInput!): ReverseTransactionPayload """ Reverse an EMV card declined transaction and return a payload that includes the voided transaction. """ reverseEmvTransaction(input: ReverseEmvTransactionInput!): TransactionPayload """Reverse a refund and return a payload that includes voided refund.""" reverseRefund(input: ReverseRefundInput!): RefundTransactionPayload """ Create a detached refund (unassociated with any previous Braintree payment) to a credit card and return a payload that includes details of the refund. We have previously referred to this as issuing a "detached credit," and it is disallowed by default. See the [documentation](https://articles.braintreepayments.com/control-panel/transactions/refunds-voids-credits#detached-credits) for more information regarding eligibility and configuration. """ refundCreditCard(input: RefundCreditCardInput!): RefundCreditCardPayload """ Create a detached refund (unassociated with any previous Braintree payment) to an in-store credit card and return a payload that includes details of the refund. """ refundInStoreCreditCard(input: RefundInStoreCreditCardInput!): RefundCreditCardPayload """ Create a detached refund (unassociated with any previous Braintree payment) to a US Bank Account and return a payload that includes details of the refund. We have previously referred to this as issuing a "detached credit," and it is disallowed by default. See the [documentation](https://articles.braintreepayments.com/control-panel/transactions/refunds-voids-credits#detached-credits) for more information regarding eligibility and configuration. """ refundUsBankAccount(input: RefundUsBankAccountInput!): RefundUsBankAccountPayload """ Update custom fields on a transaction. Custom fields are [defined in the Control Panel](https://articles.braintreepayments.com/control-panel/custom-fields#store-and-pass-back-fields). """ updateTransactionCustomFields(input: UpdateTransactionCustomFieldsInput!): UpdateTransactionCustomFieldsPayload @deprecated(reason: "Use `updateCustomFields` instead.") """ Update custom fields on a transaction or refund. Custom fields are [defined in the Control Panel](https://articles.braintreepayments.com/control-panel/custom-fields#store-and-pass-back-fields). """ updateCustomFields(input: UpdateCustomFieldsInput!): UpdateCustomFieldsPayload """Run a verification on a multi-use payment method.""" verifyPaymentMethod(input: VerifyPaymentMethodInput!): VerifyPaymentMethodPayload """Run a verification on a multi-use credit card payment method.""" verifyCreditCard(input: VerifyCreditCardInput!): VerifyPaymentMethodPayload """Run a verification on a multi-use US bank account payment method.""" verifyUsBankAccount(input: VerifyUsBankAccountInput!): VerifyPaymentMethodPayload """ Confirm micro-transfer amounts initiated by vaultUsBankAccount or verifyUsBankAccount, completing the verification process for a US Bank Account via micro-transfer. """ confirmMicroTransferAmounts(input: ConfirmMicroTransferAmountsInput!): ConfirmMicroTransferAmountsPayload """Delete a multi-use payment method from the vault.""" deletePaymentMethodFromVault(input: DeletePaymentMethodFromVaultInput!): DeletePaymentMethodFromVaultPayload """ Create a client token that can be used to initialize a client in order to tokenize payment information. """ createClientToken(input: CreateClientTokenInput): CreateClientTokenPayload """ Create a PayPal access token that can be used to make additional API calls or initialize a client. """ createUniversalAccessToken(input: CreateUniversalAccessTokenInput!): CreateUniversalAccessTokenPayload """ Partially capture funds from a transaction that was successfully authorized and return a payload that includes a new transaction with information about the capture. This is available for [Venmo](https://developers.braintreepayments.com/guides/venmo/submit-for-partial-settlement) and [PayPal](https://articles.braintreepayments.com/guides/payment-methods/paypal/processing#multiple-partial-settlements) transactions. """ partialCaptureTransaction(input: PartialCaptureTransactionInput!): PartialCaptureTransactionPayload """ Tokenize Custom Actions fields and return a payload that includes a single-use payment method. """ tokenizeCustomActionsPaymentMethod(input: TokenizeCustomActionsPaymentMethodInput!): TokenizeCustomActionsPaymentMethodPayload """ Tokenize credit card fields and return a payload that includes a single-use payment method. """ tokenizeCreditCard(input: TokenizeCreditCardInput!): TokenizeCreditCardPayload """ Tokenize magstripe credit card fields and return a payload that includes a single-use payment method. """ tokenizeMagstripeCard(input: TokenizeMagstripeCardInput!): TokenizeMagstripeCardPayload """ Tokenize EMV credit card fields and return a payload that includes a single-use payment method. """ tokenizeEmvCard(input: TokenizeEmvCardInput!): TokenizeEmvCardPayload """ Tokenize a credit card's CVV and return a payload that includes a single-use payment method. """ tokenizeCvv(input: TokenizeCvvInput!): TokenizeCvvPayload """ Tokenize a network tokenized payment instrument and return a payload that includes a single-use payment method. """ tokenizeNetworkToken(input: TokenizeNetworkTokenInput!): TokenizeNetworkTokenPayload """ Tokenize Samsung Pay card fields and return a payload that includes a single-use payment method. """ tokenizeSamsungPayCard(input: TokenizeSamsungPayCardInput!): TokenizeSamsungPayCardPayload @deprecated(reason: "Samsung pay is no longer supported.") """ Tokenize US bank account fields and return a payload that includes a single-use payment method. """ tokenizeUsBankAccount(input: TokenizeUsBankAccountInput!): TokenizeUsBankAccountPayload """ Tokenize US bank login fields and return a payload that includes a single-use payment method. """ tokenizeUsBankLogin(input: TokenizeUsBankLoginInput!): TokenizeUsBankAccountPayload @deprecated(reason: "US bank logins are no longer supported.") """ Tokenize PayPal One-Time Payment and return a payload that includes a single-use payment method. """ tokenizePayPalOneTimePayment(input: TokenizePayPalOneTimePaymentInput!): TokenizePayPalOneTimePaymentPayload """ Set up a PayPal One-Time Payment for approval by a PayPal user. See [documentation](https://developer.paypal.com/braintree/docs/guides/paypal/checkout-with-paypal) for more information. Your account must be enabled for this feature. """ createPayPalOneTimePayment(input: CreatePayPalOneTimePaymentInput!): CreatePayPalOneTimePaymentPayload """ Tokenize PayPal account and return a payload that includes a single-use payment method. """ tokenizePayPalBillingAgreement(input: TokenizePayPalBillingAgreementInput!): TokenizePayPalBillingAgreementPayload """Set up a PayPal Billing Agreement Token for approval by a PayPal user.""" createPayPalBillingAgreement(input: CreatePayPalBillingAgreementInput!): CreatePayPalBillingAgreementPayload """ Create a customer for storing individual customer information and/or grouping transactions and multi-use payment methods. """ createCustomer(input: CreateCustomerInput): CreateCustomerPayload """Update a customer's information.""" updateCustomer(input: UpdateCustomerInput!): UpdateCustomerPayload """ Delete a customer, breaking association between any of the customer's transactions. Will not delete if the customer has existing payment methods. """ deleteCustomer(input: DeleteCustomerInput!): DeleteCustomerPayload """Delete a payment method referenced by a single-use token.""" deletePaymentMethodFromSingleUseToken(input: DeletePaymentMethodFromSingleUseTokenInput!): DeletePaymentMethodFromSingleUseTokenPayload @deprecated(reason: "Use `deletePaymentMethodFromVault` instead.") """ Set a new billing address for a multi-use credit card payment method. By default, this mutation will also verify the card with the new billing address before updating. """ updateCreditCardBillingAddress(input: UpdateCreditCardBillingAddressInput!): UpdateCreditCardBillingAddressPayload """ Set a new cardholder name for a multi-use credit card payment method. By default, this mutation will also verify the card with the new cardholder name before updating. """ updateCreditCardCardholderName(input: UpdateCreditCardCardholderNameInput!): UpdateCreditCardCardholderNamePayload """ Set a new expiration date for a multi-use credit card payment method. By default, this mutation will also verify the card with the new expiration date before updating. """ updateCreditCardExpirationDate(input: UpdateCreditCardExpirationDateInput!): UpdateCreditCardExpirationDatePayload """ Attempt to perform 3D Secure Authentication on credit card payment method. This may consume the payment method and return a new single-use payment method. """ performThreeDSecureLookup(input: PerformThreeDSecureLookupInput!): PerformThreeDSecureLookupPayload """ Accepts a dispute and returns a payload that includes the dispute that was accepted. Only disputes with a status of OPEN can be accepted. """ acceptDispute(input: AcceptDisputeInput!): AcceptDisputePayload """ Finalizes a dispute and returns a payload that includes the dispute that was finalized. Only disputes with a status of OPEN can be finalized. """ finalizeDispute(input: FinalizeDisputeInput!): FinalizeDisputePayload """ Creates text evidence to a dispute and returns a payload that includes the evidence that was created. Only disputes with a status of OPEN can have text evidence created for them. """ createDisputeTextEvidence(input: CreateDisputeTextEvidenceInput!): CreateDisputeTextEvidencePayload """Deletes evidence from a dispute.""" deleteDisputeEvidence(input: DeleteDisputeEvidenceInput!): DeleteDisputeEvidencePayload """ Uploads an evidence file and associates it with a dispute. **Note:**: file upload requires a special request format. See the ['Uploading Files' integration guide](https://graphql.braintreepayments.com/integration_guides/uploading_files) for instructions on how to perform this mutation. """ createDisputeFileEvidence(input: CreateDisputeFileEvidenceInput!): CreateDisputeFileEvidencePayload """ Vault an existing PayPal Billing Agreement that was not created through Braintree. Only use this mutation if you need to import PayPal Billing Agreements from an existing PayPal integration into your Braintree account. """ vaultPayPalBillingAgreement(input: VaultPayPalBillingAgreementInput!): VaultPayPalBillingAgreementPayload """ Force a transaction to settle in the sandbox environment. Generates an error elsewhere. """ sandboxSettleTransaction(input: SandboxSettleTransactionInput!): TransactionPayload """Creates a new In-Store Location to associate Readers.""" createInStoreLocation(input: CreateInStoreLocationInput!): CreateInStoreLocationPayload """Delete an In-Store Location.""" deleteInStoreLocation(input: DeleteInStoreLocationInput!): DeleteInStoreLocationPayload """Updates an In-Store Location.""" updateInStoreLocation(input: UpdateInStoreLocationInput!): UpdateInStoreLocationPayload """Pairs a Reader to an account and In-Store Location.""" pairInStoreReader(input: PairInStoreReaderInput!): InStoreReaderPayload """Updates an In-Store Reader.""" updateInStoreReader(input: UpdateInStoreReaderInput!): InStoreReaderPayload """Request an in-store reader to begin the charge flow.""" requestChargeFromInStoreReader(input: RequestChargeFromInStoreReaderInput!): InStoreContextPayload """ Request an in-store reader to begin the authorize flow. Only supported on payment application versions >= 5.1.0. """ requestAuthorizeFromInStoreReader(input: RequestAuthorizeFromInStoreReaderInput!): InStoreContextPayload """Request an in-store reader to cancel the charge flow.""" requestCancelFromInStoreReader(input: RequestCancelFromInStoreReaderInput!): InStoreContextPayload """Request an in-store reader to start an unreferenced refund flow.""" requestRefundFromInStoreReader(input: RequestRefundFromInStoreReaderInput!): InStoreContextPayload """Request an in-store reader to vault a payment method.""" requestVaultFromInStoreReader(input: RequestVaultFromInStoreReaderInput!): InStoreContextPayload """Request an in-store reader to display text.""" requestTextDisplayFromInStoreReader(input: RequestTextDisplayFromInStoreReaderInput!): InStoreContextPayload """Request an in-store reader to display line items.""" requestItemDisplayFromInStoreReader(input: RequestItemDisplayFromInStoreReaderInput!): InStoreContextPayload """ Request an in-store reader to update to the latest version of software. """ requestFirmwareUpdateFromInStoreReader(input: RequestFirmwareUpdateFromInStoreReaderInput!): InStoreContextPayload """ Request an in-store reader to display a signature prompt. Only supported on payment application versions >= 3.3.0. """ requestSignaturePromptFromInStoreReader(input: RequestSignaturePromptFromInStoreReaderInput!): InStoreContextPayload """ Request an in-store reader to display a confirmation prompt. Only supported on payment application versions >= 3.3.0. """ requestConfirmationPromptFromInStoreReader(input: RequestConfirmationPromptFromInStoreReaderInput!): InStoreContextPayload """ Request an in-store reader to collect non [PCI-scoped](https://www.braintreepayments.com/blog/understanding-pci-dss-compliance) card data. Only supported on payment application versions >= 5.2.0. """ requestNonPciCardDataFromInStoreReader(input: RequestNonPciCardDataFromInStoreReaderInput!): InStoreContextPayload """ Request an in-store reader to display an amount prompt. Only supported on payment application versions >= 5.2.0. """ requestAmountPromptFromInStoreReader(input: RequestAmountPromptFromInStoreReaderInput!): InStoreContextPayload """ Request an in-store reader to display a multi-choice single-select prompt. Only supported on payment application versions >= 5.4.0. """ requestMultiChoiceSingleSelectPromptFromInStoreReader(input: RequestMultiChoiceSingleSelectPromptFromInStoreReaderInput!): InStoreContextPayload """ Request an in-store reader to display a text prompt. Only supported on payment application versions >= 5.2.0. """ requestTextPromptFromInStoreReader(input: RequestTextPromptFromInStoreReaderInput!): InStoreContextPayload """ Request an in-store reader to print content. Only supported on the Verifone V400m device using payment application version >= 5.5.0. """ requestPrintFromInStoreReader(input: RequestPrintFromInStoreReaderInput!): InStoreContextPayload """Create a Venmo payment context.""" createVenmoPaymentContext(input: CreateVenmoPaymentContextInput!): VenmoPaymentContextPayload """Updates the authorization amount of the transaction.""" updateTransactionAmount(input: UpdateTransactionAmountInput!): TransactionPayload """ Generate a customized currency exchange rate quote for items on a merchant's page. This allows merchants to advertise products in their customer's currency. Your account must be enabled to use this feature. """ generateExchangeRateQuote(input: GenerateExchangeRateQuoteInput!): ExchangeRateQuotePayload """Create a transaction context for risk assessment purposes.""" createTransactionRiskContext(input: CreateTransactionRiskContextInput!): TransactionRiskContextPayload """ Creates a non-instant local payment context. Your account must be enabled to use this feature. """ createNonInstantLocalPaymentContext(input: CreateNonInstantLocalPaymentContextInput!): CreateNonInstantLocalPaymentContextPayload """ Creates a local payment context. Your account must be enabled to use this feature. """ createLocalPaymentContext(input: CreateLocalPaymentContextInput!): CreateLocalPaymentContextPayload """ Create an OAuth client secret. To call this mutation you must obtain an OAuth Access Token with scope MANAGE_OAUTH_CLIENT_SECRETS, the associated merchant must have [IP or hostname restrictions](https://developer.paypal.com/braintree/articles/risk-and-security/allowlisting) enabled and you must send your request from a host that is allowed by the merchant's allowed hosts list. """ createOAuthClientSecret(input: CreateOAuthClientSecretInput!): CreateOAuthClientSecretPayload """ Disable an OAuth client secret. To call this mutation you must obtain an OAuth Access Token with scope MANAGE_OAUTH_CLIENT_SECRETS, the associated merchant must have [IP or hostname restrictions](https://developer.paypal.com/braintree/articles/risk-and-security/allowlisting) enabled and you must send your request from a host that is allowed by the merchant's allowed hosts list. """ disableOAuthClientSecret(input: DisableOAuthClientSecretInput!): DisableOAuthClientSecretPayload """ Delete a disabled OAuth client secret. To call this mutation you must obtain an OAuth Access Token with scope MANAGE_OAUTH_CLIENT_SECRETS, the associated merchant must have [IP or hostname restrictions](https://developer.paypal.com/braintree/articles/risk-and-security/allowlisting) enabled and you must send your request from a host that is allowed by the merchant's allowed hosts list. """ deleteOAuthClientSecret(input: DeleteOAuthClientSecretInput!): DeleteOAuthClientSecretPayload """ Creates a package tracker record for Pay with PayPal transactions. Your account must be enabled to use this feature. """ createTransactionPackageTracking(input: CreateTransactionPackageTrackingInput!): CreateTransactionPackageTrackingPayload """Generates an edit funding instrument URL.""" generateEditFundingInstrumentUrl(input: GenerateEditFundingInstrumentUrlInput!): GenerateEditFundingInstrumentUrlPayload """Registers one or more domains for Apple Pay.""" registerApplePayDomains(input: RegisterApplePayDomainsInput!): RegisterApplePayDomainsPayload """ Tokenize Apple Pay card fields and return a payload that includes a single-use payment method. """ tokenizeApplePayCard(input: TokenizeApplePayCardInput!): TokenizeApplePayCardPayload """Creates an Apple Pay web session for domain validation.""" createApplePayWebSession(input: CreateApplePayWebSessionInput!): CreateApplePayWebSessionPayload """Unregisters a domain from Apple Pay.""" unregisterApplePayDomain(input: UnregisterApplePayDomainInput!): UnregisterApplePayDomainPayload """ Update a PayPal one-time payment with revised amount, line items, and shipping details. """ updatePayPalOneTimePayment(input: UpdatePayPalOneTimePaymentInput!): UpdatePayPalOneTimePaymentPayload """ Evaluates the risk of a transaction and return a payload that includes details of the risk evaluation. """ evaluateTransactionRisk(input: EvaluateTransactionRiskInput!): TransactionRiskEvaluatePayload """Submit feedback of a transaction.""" submitTransactionFeedback(input: SubmitTransactionFeedbackInput!): SubmitFeedbackPayload """Submit feedback of a dispute.""" submitDisputeFeedback(input: SubmitDisputeFeedbackInput!): SubmitFeedbackPayload """ Creates a new recurring billing subscription plan template that subscriptions can be based upon. """ createRecurringBillingSubscriptionPlan(input: CreateRecurringBillingSubscriptionPlanInput!): RecurringBillingSubscriptionPlanPayload """ Updates an existing recurring billing subscription plan's metadata or default billing settings. """ updateRecurringBillingSubscriptionPlan(input: UpdateRecurringBillingSubscriptionPlanInput!): RecurringBillingSubscriptionPlanPayload } """The name of the party.""" input NameInput { """The prefix, or title, to the party name.""" prefix: String """The party's given, or first, name. Required if the party is a person.""" givenName: String! """ The party's surname or family name. Also known as the last name. Required if the party is a person. Use also to store multiple surnames including the matronymic, or mother's, surname. """ surname: String! """ The party's middle name. Use also to store multiple middle names including the patronymic, or father's, middle name. """ middleName: String """The suffix for the party's name.""" suffix: String """ The party's alternate name. Can be a business name, nickname, or any other name that cannot be split into first, last name. Required for a business party name. """ alternateFullName: String } """Input fields for a network tokenized card.""" input NetworkTokenInput { """ A one-time-use string generated by the token requester to validate the transaction. This input is required when the origin it not NETWORK_TOKEN. """ cryptogram: String """ A two-digit string that should be passed along in the authorization message. """ eCommerceIndicator: ECommerceIndicator """A two-digit string representing the expiration month of the DPAN.""" expirationMonth: Month! """A four-digit string representing the expiration year of the DPAN.""" expirationYear: Year! """ The card number used in processing. This is a device PAN (DPAN), not the backing card number (FPAN). """ number: CreditCardNumber! """Additional information about a network token.""" originDetails: NetworkTokenOriginDetailsInput! } """The source of the network token.""" enum NetworkTokenOrigin { APPLE_PAY GOOGLE_PAY NETWORK_TOKEN } """ Additional information about the payment method specific to Network Token. """ type NetworkTokenOriginDetails { """ The first 6 digits of the credit card, known as the Bank Identification Number. This BIN may differ from the BIN of the customer's actual card. """ bin: String } """ Information about the network token, such as the origin of the network token, source card details, and other token requestor data. """ input NetworkTokenOriginDetailsInput { """The origin of the network token.""" origin: NetworkTokenOrigin! """A string, suitable for display, that describes the backing card.""" sourceCardDescription: String """The last 4 digits of the backing card number (FPAN).""" sourceCardLast4: CreditCardLast4 """The card type of the backing card.""" sourceCardType: CreditCardBrandCode """ The token requestor ID of the entity that generated this network token. """ tokenRequestorId: String """The transaction ID for this network token.""" transactionId: String } """Relay compatible Node interface.""" interface Node { """Global ID for a given object.""" id: ID! } """Input fields for non-instant local payment context.""" input NonInstantLocalPaymentContextInput { """ The order id of the eventual Braintree transaction and the invoice number of the local payment context. Maximum 127 characters. """ orderId: String """The amount of the local payment.""" amount: MonetaryAmountInput! """The type of the non-instant local payment.""" type: NonInstantLocalPaymentMethodType! """ The country code of the local payment. For local payments supported in multiple countries, this value may determine which banks are presented to the customer. """ countryCode: CountryCode """ The language tag for the language in which to localize the error-related strings. """ locale: Language """ The URL where the customer is redirected after the customer approves the payment. """ returnUrl: String! """ The URL where the customer is redirected after the customer cancels the payment. """ cancelUrl: String! """ ID of the PayPal merchant account that will be used when charging this payment method. """ merchantAccountId: ID """The payer's information.""" payerInfo: LocalPaymentPayerInfoInput! """ Overrides the default date at which the local payment context will expire. MULTIBANCO is not overridable. """ expiryDate: Date } """A value identifying the type of non-instant regional payment method.""" enum NonInstantLocalPaymentMethodType { """Deprecated: Boleto Bancário is no longer supported.""" BOLETOBANCARIO MULTIBANCO OXXO TRUSTLY } """ A union of all possible non [PCI-scoped](https://www.braintreepayments.com/blog/understanding-pci-dss-compliance) cards read from an in-store reader. """ union NonPciCardData = NonPciFinancialCardMagneticStripeData """ Financial card data from its magnetic stripe, read by an in-store reader. """ type NonPciFinancialCardMagneticStripeData { """ Track 1 data from the non [PCI-scoped](https://www.braintreepayments.com/blog/understanding-pci-dss-compliance) card. """ track1: String """ Track 2 data from the non [PCI-scoped](https://www.braintreepayments.com/blog/understanding-pci-dss-compliance) card. """ track2: String } """Information about an OAuth Application.""" type OAuthApplication { """The unique identifier of the OAuth application.""" clientId: String """The name of the OAuth application.""" name: String } """OAuth Client Secret details.""" type OAuthClientSecret { """Masked client secret value.""" maskedSecret: String """True if secret is disabled.""" disabled: Boolean } """OAuth access token type.""" enum OAuthTokenType { BEARER } """Open Banking Configuration for Bank Account Instant Verification.""" type OpenBankingConfiguration { """A list of allowed business names.""" businessNames: [String!] """ A list of allowed Internet domain names (e.g. example.com) allowed for use in return and cancel URLs. """ allowListedDomains: [String!] """The profile ID.""" profileId: String } """The page information for a connection.""" type PageInfo { """Whether or not there is a next page available.""" hasNextPage: Boolean! """ Always false; backwards pagination is not supported. Present to comply with Relay specifications. """ hasPreviousPage: Boolean! """The cursor for the first item in the connection page.""" startCursor: String """The cursor for the last item in the connection page.""" endCursor: String } """Input fields for pairing an in store reader.""" input PairInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Code displayed on Reader during pairing.""" userCode: String! """Inputs for Reader.""" reader: InStoreReaderSetupInput! } """ An original authorization's relationship to all its partial capture transactions. """ type ParentAuthorization { """The captures on a partially captured authorization.""" childCaptures: [Transaction!] """ The total amount authorized by this transaction. This amount will not change as this transaction is partially captured. """ totalAmountAuthorized: MonetaryAmount } """ A union of all possible relationships of transactions involved in partial captures. If the transaction has been partially captured, this links to all its partial capture children; if the transaction represents a partial capture attempt, this links to the original parent authorization. """ union PartialCaptureDetails = ChildCapture | ParentAuthorization """ Top-level input fields for capturing outstanding funds authorized by a transaction. """ input PartialCaptureTransactionInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a transaction being created (in any status), then the same transaction in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no transaction is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """ID of the original authorized transaction to be partially captured.""" transactionId: ID! """ Input fields for the capture, with details that will define the resulting capture transaction. """ transaction: PartialCaptureTransactionOptionsInput } """ Input fields for the capture, with details that will define the resulting capture transaction. """ input PartialCaptureTransactionOptionsInput { """ The amount to capture on the transaction against the parent authorization transaction. Must be greater than 0. You can perform multiple partial capture transactions as long as the cumulative amount of those transactions is less than or equal to the amount authorized by the parent transaction. You can't capture more than the authorized amount unless your industry and processor support settlement adjustment (capturing a certain percentage over the authorized amount); [contact us for assistance](https://help.braintreepayments.com?issue=TransactionProcessingQuestion). """ amount: Amount! """ 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 on PayPal transactions. *Required for Level 3 processing*. """ discountAmount: String """ Input to specify current partial capture is the final one for parent authorized transaction. """ finalCapture: Boolean """ Line items for this transaction. Up to 249 line items may be specified. *Required for Level 3 processing*. """ lineItems: [TransactionLineItemInput!] """ 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. If specified, this will update the existing order ID on the transaction. """ orderId: String """ A purchase order identification value you associate with this transaction. *Required for Level 2 processing*. """ purchaseOrderNumber: String """ Shipping information. *Required for Level 3 processing*. """ shipping: TransactionShippingInput """ Tax information about the transaction. *Required for Level 2 processing*. """ tax: TransactionTaxInput """ Fields used to define what will appear on a customer's bank statement for a specific purchase. If specified, this will update the existing descriptor on the transaction. """ descriptor: TransactionDescriptorInput """ Industry data information. Only one of the three sub-input fields can be provided. """ industry: TransactionIndustryInput } """Top-level output field from partially capturing a transaction.""" type PartialCaptureTransactionPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The transaction representing the partial capture.""" capture: Transaction } """ A merchant-initiated movement of money between the merchant and a customer, by way of a payment method. Payments can represent money moving either from a customer to the merchant by charging a payment method (a Transaction), or from the merchant back to a customer by refunding a previous transaction (a Refund). """ interface Payment { """Unique identifier.""" id: ID! """Legacy unique identifier.""" legacyId: ID! """Date and time when the payment was created.""" createdAt: Timestamp """ The amount charged or credited to the payment method. Note that in the case of a Transaction, this amount will represent the amount moving from the customer to the merchant, and in the case of a Refund, will represent the amount moving from the merchant back to the customer. """ amount: MonetaryAmount """The order ID.""" orderId: String """The current status of this payment.""" status: PaymentStatus """ The records of all statuses this payment has passed through, with additional information on why each status occurred. Returned in reverse chronological order, with the most recent event first in the list. """ statusHistory: [PaymentStatusEvent!] """The ID of the merchant account that processed this payment.""" merchantAccountId: ID """How the payment was created.""" source: PaymentSource """ Snapshot of payment method details used to create the payment, preserved at the time the transaction was created. This will always be present. """ paymentMethodSnapshot: PaymentMethodSnapshot } """A paginated list of transactions and refunds.""" type PaymentConnection { """A list of transactions and refunds.""" edges: [PaymentConnectionEdge] """ Information about the page of transactions and refunds contained in `edges`. """ pageInfo: PageInfo! } """A transaction or refund within a PaymentConnection.""" type PaymentConnectionEdge { """ This transaction or refund's location within the PaymentConnection. Used for requesting additional pages. """ cursor: String """The transaction or refund.""" node: Payment } """Context associated with a transaction.""" interface PaymentContext { """Unique identifier.""" id: ID! """Date and time when the payment context was created.""" createdAt: Timestamp! """Date and time when the payment context was updated.""" updatedAt: Timestamp! } """Details of the payment facilitator.""" input PaymentFacilitatorInput { """ Unique identifier for the Payment Facilitator given by the Card Schemes. """ id: ID! """Details of the sub-merchant.""" subMerchantDetails: SubMerchantDetailsInput! } """ The initiator of the payment. Payment can either be merchant-initiated or customer-initiated. """ enum PaymentInitiator { """ Transactions that are initiated by the merchant or customer when the final amount of the transaction is not known at the time of authorization. """ ESTIMATED """ Transactions that are initiated by the customer via the merchant by mail or telephone when the final amount of the transaction is not known at the time of authorization. """ ESTIMATED_MOTO """ Transactions for subsequent installment payments. (e.g. when the customer makes a single large purchase and wants to make payments over time). """ INSTALLMENT """ Transactions that represent the first in a series of installment payments. Note: INSTALLMENT and INSTALLMENT_FIRST may only be available in certain regions. If installment transactions are not supported in your region, the transaction will automatically be categorized as recurring. """ INSTALLMENT_FIRST """ Transactions that are initiated by the customer via the merchant by mail or telephone. """ MOTO """ Transactions that are initiated by the merchant for subsequent recurring payments (e.g. subscriptions with a fixed amount on a predefined schedule). """ RECURRING """ Transactions initiated by the customer that represent the first in a series of recurring payments or subscription. """ RECURRING_FIRST """ Transactions that are initiated by the merchant for unscheduled payments that are not recurring on a predefined schedule or amount (e.g. balance top-up). """ UNSCHEDULED } """ The [payment-level fee report (formerly known as the transaction-level fee report)](https://articles.braintreepayments.com/control-panel/reporting/transaction-level-fee-report) provides a breakdown of fees per individual payments (encompassing transactions and refunds). """ type PaymentLevelFeeReport { """ The URL where the generated report is stored. Download the report from this URL. """ url: String } """Top-level field representing a payment method.""" type PaymentMethod implements Node { """Unique identifier.""" id: ID! """ Legacy unique identifier. May be the same as ID for single-use payment methods. """ legacyId: ID! """Whether a payment method may be used only once or multiple times.""" usage: PaymentMethodUsage """Date and time when the payment method was vaulted.""" createdAt: Timestamp """ Details about the payment method specific to the type (e.g. credit card, PayPal account). """ details: PaymentMethodDetails """ A paginated list of verifications that have been run against the payment method. """ verifications(first: Int, after: String): VerificationConnection """The customer that the payment method belongs to.""" customer: Customer } """A paginated list of payment methods.""" type PaymentMethodConnection { """A list of payment methods.""" edges: [PaymentMethodConnectionEdge] """Information about the page of payment methods contained in `edges`.""" pageInfo: PageInfo! } """A payment method within a PaymentMethodConnection.""" type PaymentMethodConnectionEdge { """ This payment method's location within the PaymentMethodConnection. Used for requesting additional pages. """ cursor: String """The payment method.""" node: PaymentMethod } """Initiator of a payment method delete request.""" enum PaymentMethodDeletionInitiator { CUSTOMER MERCHANT } """ A union of all possible payment method details. PaymentMethodDetails contain information for display purposes, payment method management, and processing. """ union PaymentMethodDetails = CustomActionsPaymentMethodDetails | CreditCardDetails | PayPalAccountDetails | SamsungPayCardDetails | VenmoAccountDetails | UsBankAccountDetails | SEPADirectDebitAccountDetails """ Information about how the customer provided a payment method, such as via a digital wallet. """ type PaymentMethodOrigin { """An enum identifying the origin of the payment method.""" type: PaymentMethodOriginType """When available, additional details specific to the origin.""" details: PaymentMethodOriginDetails } """ A union of all possible payment method origin details. PaymentMethodOriginDetails contain additional information specific to the third party the payment method was provided by. """ union PaymentMethodOriginDetails = ApplePayOriginDetails | GooglePayOriginDetails | MasterpassOriginDetails | MetaCheckoutOriginDetails | NetworkTokenOriginDetails | SamsungPayOriginDetails | VisaCheckoutOriginDetails | PayPalLocalPaymentOriginDetails | CardPresentOriginDetails | EmvCardOriginDetails """ A value identifying the third-party origin from which a customer provided their payment method. """ enum PaymentMethodOriginType { APPLE_PAY GOOGLE_PAY IN_STORE_READER MASTERPASS META_CHECKOUT NETWORK_TOKEN PAYPAL """Deprecated: Samsung is no longer supported.""" SAMSUNG_PAY """Deprecated: Visa Checkout is no longer supported.""" VISA_CHECKOUT @deprecated(reason: "Visa Checkout is no longer supported.") } """ A union of all possible payment method details as they were used in a transaction or verification. PaymentMethodSnapshot preserves values used to create a given transaction or verify a payment method at that moment in time. """ union PaymentMethodSnapshot = CustomActionsPaymentMethodDetails | CreditCardDetails | PayPalTransactionDetails | VenmoAccountDetails | UsBankAccountDetails | LocalPaymentDetails | CreditCardTransactionDetails | SEPADirectDebitTransactionDetails | UsBankAccountTransactionDetails """ A value identifying the type of payment method used for a transaction. For certain payment methods such as credit cards, this value also encodes the origin from which a customer provided that payment method. """ enum PaymentMethodSnapshotSearchType { ALIPAY_VIA_PAYPAL BANCOMATPAY_VIA_PAYPAL BANCONTACT_VIA_PAYPAL BIZUM_VIA_PAYPAL BLIK_VIA_PAYPAL """Deprecated: Boleto Bancário is no longer supported.""" BOLETOBANCARIO_VIA_PAYPAL CREDIT_CARD CREDIT_CARD_VIA_APPLE_PAY CREDIT_CARD_VIA_GOOGLE_PAY CREDIT_CARD_VIA_MASTERPASS CREDIT_CARD_VIA_META_CHECKOUT CREDIT_CARD_VIA_NETWORK_TOKEN """Deprecated: Samsung is no longer supported.""" CREDIT_CARD_VIA_SAMSUNG_PAY """Deprecated: Visa Checkout is no longer supported.""" CREDIT_CARD_VIA_VISA_CHECKOUT @deprecated(reason: "Visa Checkout is no longer supported.") CRYPTO_VIA_PAYPAL EPS_VIA_PAYPAL GIROPAY_VIA_PAYPAL GRABPAY_VIA_PAYPAL IDEAL_VIA_PAYPAL KLARNA_VIA_PAYPAL LOCAL_PAYMENT MBWAY_VIA_PAYPAL MULTIBANCO_VIA_PAYPAL MYBANK_VIA_PAYPAL OXXO_VIA_PAYPAL P24_VIA_PAYPAL PAYPAL PAYU_VIA_PAYPAL PAY_UPON_INVOICE_VIA_PAYPAL SATISPAY_VIA_PAYPAL SEPA_DIRECT_DEBIT SEPA_VIA_PAYPAL SKRILL_VIA_PAYPAL SOFORT_VIA_PAYPAL SWISH_VIA_PAYPAL TRUSTLY_VIA_PAYPAL TWINT_VIA_PAYPAL US_BANK_ACCOUNT VENMO_ACCOUNT VERKKOPANKKI_VIA_PAYPAL VIPPS_VIA_PAYPAL WECHAT_PAY_VIA_PAYPAL } """Possible usages for payment methods.""" enum PaymentMethodUsage { MULTI_USE SINGLE_USE } """ Input fields that specify options for verifying the vaulted payment method. Only applicable for payment method types that suport verification. """ input PaymentMethodVerificationOptionsInput { """ ID of the merchant account to use when verifying the payment method. The verification will use the default merchant account if this field is left blank. """ merchantAccountId: ID """ Whether to opt out of verifying the payment method. Defaults to `false` for payment methods that support verification. Clients should only pass `true` in the uncommon scenario that the payment method has been verified externally to Braintree. """ skip: Boolean } """ The network response. When present, this field can provide additional detail about why an authorization or verification was declined, but the processorResponse should be considered the source of truth. """ type PaymentNetworkResponse { """ The network response code for [authorizations](https://developers.braintreepayments.com/reference/response/transaction/#network-response-codes) or [verifications](https://developers.braintreepayments.com/reference/response/credit-card-verification#network-response-codes). """ code: String """The network response text.""" message: String } """ The input mode used on the payment reader to facilitate an in-store transaction. """ enum PaymentReaderInputMode { CONTACT CONTACTLESS MAGSTRIPE MAGSTRIPE_FALLBACK VAULT } """ Metadata about the payment reader facilitating an in-store transaction. """ input PaymentReaderMetadataInput { """ The input mode used on the payment reader to facilitate an in-store transaction. """ inputMode: PaymentReaderInputMode! """The device identifier for the payment reader.""" deviceId: ID """The ID of the store that the transaction was processed in.""" storeId: ID """ A flag used to indicate that the payment method was approved offline due to connectivity issues on the payment reader. Defaults to `false` when the payment method was approved online. """ deferredAuthorization: Boolean } """Input fields for searching for any type of Payment.""" input PaymentSearchInput { """Find payments with an ID or IDs.""" id: SearchValueInput """ Find payments by their type. Use this field to search for payments by the direction of money movement. """ type: SearchPaymentTypeInput """Find payments with a given status.""" status: SearchPaymentStatusInput """ Find payments based on the time at which they transitioned to a given status. """ statusTransition: SearchPaymentStatusTransitionInput """Find payments based on the time they were created.""" createdAt: SearchTimestampInput """Find payments for a given amount or currency.""" amount: MonetaryAmountSearchInput """Find payments with a given orderId.""" orderId: SearchTextInput """Find payments processed through a merchant account ID or IDs.""" merchantAccountId: SearchPaymentMerchantAccountIdInput """Find payments with a given customer.""" customer: SearchPaymentCustomerInput """ Find payments by their disbursement date. Only use this search criteria if you have an eligible merchant account. Note that payments can only be disbursed after they reach the SETTLED status. """ disbursementDate: SearchDateInput """Find payments created with a given source.""" source: SearchPaymentSourceInput """ Find payments by the batch ID under which the payment was submitted for settlement. """ settlementBatchId: SearchTextInput """ Find payments based on information about the payment method used for the payment. """ paymentMethod: SearchPaymentPaymentMethodInput """ Find payments created by a third party via the Grant API using a given OAuth application client ID. """ facilitatorOAuthApplicationClientId: SearchValueInput """Find payments with a user ID or IDs.""" userId: SearchValueInput """ Find payments by the ID of the store that the transaction was processed in. """ storeId: SearchValueInput """Find payments by the reader ID.""" readerId: SearchValueInput """Find payments by the shipping address.""" shippingAddress: SearchAddressInput """Find payments by the billing address.""" billingAddress: SearchAddressInput """Find payments by dispute received date.""" disputeReceivedDate: SearchDateInput """Find payments by the processor authorization code.""" processorAuthorizationId: SearchTextInput """Find payments by the processing mode.""" processingMode: SearchProcessingModeInput } """The type of a Payment, based primarily on implementing type.""" enum PaymentSearchType { """ Only use this field if you have processed [detached credits](https://articles.braintreepayments.com/control-panel/transactions/refunds-voids-credits#detached-credits). The payment is a Refund, and represents a refund of a transaction not processed through your Braintree account. """ DETACHED_REFUND """ The payment is a Refund, and represents a refund of a transaction present in this Braintree account. Unless you have processed any [detached credits](https://articles.braintreepayments.com/control-panel/transactions/refunds-voids-credits#detached-credits), this type encompasses all refunds. """ REFUND """The payment is a Transaction.""" TRANSACTION } """ The origin of a request that created or changed a transaction or refund. """ enum PaymentSource { API CONTROL_PANEL PAYMENT_READER RECURRING UNKNOWN } """ The status of the payment, indicating its success or failure, and where it is in its [lifecycle](https://articles.braintreepayments.com/get-started/transaction-lifecycle). For further details on why any given status occurred, consult the corresponding `PaymentStatusEvent` in the payment's `statusHistory`. """ enum PaymentStatus { """ The transaction spent too much time in the `AUTHORIZED` status and was marked as expired. Expiration [time frames](https://developers.braintreepayments.com/reference/general/statuses#authorization-expired) differ by card type, transaction type, and, in some cases, merchant category. """ AUTHORIZATION_EXPIRED """ The processor authorized the transaction, putting your customer's funds on hold. Your customer may see a pending charge on his or her account. However, before the customer is actually charged and before you receive the funds, you must use the `captureTransaction` mutation. If you do not want to capture the transaction, you should use the `reverseTransaction` mutation to avoid a misuse of authorization fee. """ AUTHORIZED """ If a payment remains in a status of `AUTHORIZING`, [contact us for assistance](https://help.braintreepayments.com?issue=TransactionProcessingQuestion). """ AUTHORIZING """ An error occurred when sending the payment to the downstream processor. See the payment's `statusHistory` for the exact error. """ FAILED """ The transaction was [rejected](https://articles.braintreepayments.com/control-panel/transactions/gateway-rejections) based on one or more settings or rules in your Braintree gateway. See the transaction's `statusHistory` to determine which resulted in the decline. """ GATEWAY_REJECTED """ The processor declined the transaction while attempting to authorize it. See the transaction's `statusHistory` to determine what reason the processor gave for the decline. """ PROCESSOR_DECLINED """ The payment has been settled. For transactions, this means your customer has been charged and the process of disbursing the funds to your bank account has begun. For refunds, it means that the process of disbursing funds back to the customer has begun. """ SETTLED """ The transaction was captured partially and will not be submitted to processor for settling. Its child transaction(s) has been successfully captured and will be included in the next settlement batch. """ SETTLEMENT_CONFIRMED """ The processor declined the payment while attempting to capture it. See the payment's `statusHistory` to determine why it wasn't settled. This status is rare, and only certain types of transactions can be affected. """ SETTLEMENT_DECLINED """ The transaction has not yet fully settled. This status is rare, and will generally resolve to a status of `SETTLED`. Only certain types of transactions can be affected. """ SETTLEMENT_PENDING """ The payment is in the process of being settled. This is a transitory state, and will resolve to a status of `SETTLED`. """ SETTLING """ The payment has been successfully captured, and will be included in the next settlement batch, at which time it will become settled. """ SUBMITTED_FOR_SETTLEMENT """ The payment has been voided or canceled. For transactions, this means it's no longer authorized, your customer's funds are no longer on hold, and you can't use the `captureTransaction` mutation on this transaction. For refunds, it means the customer will not receive the funds from the refund. """ VOIDED } """ Status event in the [lifecycle of a payment](https://articles.braintreepayments.com/get-started/transaction-lifecycle). """ interface PaymentStatusEvent { """New status of the payment.""" status: PaymentStatus """Date and time when the status event occurred.""" timestamp: Timestamp """ The payment amount applicable to the status. For instance, the amount when a transaction is `SUBMITTED_FOR_SETTLEMENT` might be less than the amount for which it was `AUTHORIZED`. """ amount: MonetaryAmount """Source that caused the status event to occur.""" source: PaymentSource """ Whether this is the final state for the payment. If false, this transaction will pass into another subsequent state. """ terminal: Boolean } """Details about a PayPal account.""" type PayPalAccountDetails { """The ID of the billing agreement for this PayPal account.""" billingAgreementId: String """The billing address associated with the PayPal account.""" billingAddress: Address """The shipping address associated with the PayPal account.""" shippingAddress: Address """The email address associated with the PayPal account.""" email: String """The primary phone number associated with the PayPal account.""" phone: String """The PayPal ID of the PayPal account.""" payerId: String """The first name on the PayPal account.""" firstName: String """The last name on the PayPal account.""" lastName: String """The label of the co-branded card used as a funding source.""" cobrandedCardLabel: String """ Additional information if the PayPal account was provided from a third-party origin, such as Apple Pay, Google Pay, or another digital wallet. """ origin: PaymentMethodOrigin """Limited use PayPal provided Order ID (starts with O-).""" limitedUseOrderId: String """ Payer's selected financing option at the time of creating a transaction. """ selectedFinancingOption: SelectedPayPalFinancingOptionDetails @deprecated(reason: "This field is no longer supported.") """Customer's Funding Instrument information.""" fundingSourceDescription: String """ The ID which can be used for editing the funding instrument for this PayPal account. """ vaultedBillingAgreementId: String } """Input for identifying a PayPal account.""" input PayPalAccountInput { """The unique PayPal ID of the PayPal account.""" payerId: ID } """ Input fields used to specify the breakdown of a transaction's total amount. """ input PayPalAmountBreakDownInput { """ The total amount for all the line items, including charges from billing plan, before any discounts or taxes. """ itemTotal: Amount """The amount charged for the shipping.""" shipping: Amount """The handling charges applied to the transaction.""" handling: Amount """The total tax applied to the transaction.""" taxTotal: Amount """The insurance cost associated with the transaction.""" insurance: Amount """The discount applied to the shipping for the transaction.""" shippingDiscount: Amount """The total discount applied to the transaction.""" discount: Amount } """ Input fields for enabling app switch from a merchant app directly to the PayPal app. """ input PayPalAppSwitchContextInput { """ Specifies details when the payment flow originates from a native mobile application. """ nativeApp: PayPalAppSwitchNativeAppInput """ Specifies details when the payment flow originates from a mobile web browser. """ mobileWeb: PayPalAppSwitchMobileWebInput } """ Input fields describing the mobile web environment initiating the checkout. """ input PayPalAppSwitchMobileWebInput { """ User Agent of the buyer's browser, used to detect device and browser details. """ buyerUserAgent: String """ Type of the return flow from the PayPal app back to the merchant website after payment approval. """ returnFlow: PayPalAppSwitchReturnFlow } """ Input fields describing the native application initiating the checkout. """ input PayPalAppSwitchNativeAppInput { """OS of the buyer's device initiating the flow.""" osType: PayPalAppSwitchOsType """OS version running on the buyer's device.""" osVersion: String """ The universal merchant app URL used to redirect the buyer back to merchant's native app, either a Universal Link on iOS or an App Link on Android. """ appUrl: URL } """OS type of the buyer's device.""" enum PayPalAppSwitchOsType { """Google Android OS.""" ANDROID """Apple OS typically found in Apple mobile devices.""" IOS """Any other OS type.""" OTHER } """ Specifies how the buyer should be returned to the merchant website after approving the payment in the PayPal app. """ enum PayPalAppSwitchReturnFlow { """ Buyer is automatically redirected back to the merchant site after approval. """ AUTO """ Buyer will be prompted to manually navigate back to the merchant's site after approval. """ MANUAL } """ Expected business/pricing model for a billing agreement (Charge Patterns). """ enum PayPalBillingAgreementChargePattern { """Pay after use, non-recurring post-paid, variable amount, irregular.""" DEFERRED """On-demand instant payments - non-recurring, pre-paid, variable amount.""" IMMEDIATE """ Pay on a fixed date based on usage or consumption after the goods/service is delivered. """ RECURRING_POSTPAID """ Pay upfront fixed or variable amount on a fixed date before the goods/service is delivered. """ RECURRING_PREPAID """ Charge payer when the set amount is reached or monthly billing cycle, whichever comes first, after the goods/service is delivered. """ THRESHOLD_POSTPAID """ Charge payer when the set amount is reached or monthly billing cycle, whichever comes first, before the goods/service is delivered. """ THRESHOLD_PREPAID } """Input fields for getting the billing agreement details.""" input PayPalBillingAgreementDetailsInput { """The billing agreement token.""" billingAgreementToken: ID! """Merchant Account ID.""" merchantAccountId: ID } """The details of the billing agreement.""" type PayPalBillingAgreementDetailsPayload { """The Billing Agreement token.""" billingAgreementToken: ID """The status of the billing agreement.""" status: PayPalBillingAgreementStatus """The current status of the PayPal checkout process during approval.""" experienceStatus: PayPalBillingAgreementExperienceStatus """ Custom fields related to a PayPal Billing Agreement (twenty [20] items maximum). """ customFields: [PayPalCustomField!] } """Controls the experience in a PayPal billing agreement approval flow.""" input PayPalBillingAgreementExperienceProfileInput { """Merchant brand name to be displayed on the PayPal approval pages.""" brandName: String """ Indicates whether a shipping address will be collected from the customer during the agreement approval flow. """ collectShippingAddress: Boolean """ Specifies the PayPal page to display when a user lands on the PayPal site to complete the payment. """ landingPageType: PayPalLandingPageType """Locale of the PayPal payment approval experience.""" locale: Language """ Indicates whether to enable user editing of the shipping address. Only applies when shipping address is provided by merchant. """ shippingAddressEditable: Boolean """ Presents the customer with either the Continue or Setup Now flow. Default is Continue flow if the field is not provided. """ userAction: PayPalBillingAgreementUserAction } """ Represents the current status of the buyer's PayPal approval experience during the billing agreement flow. """ enum PayPalBillingAgreementExperienceStatus { """ Payer has approved saving PayPal as a payment method. Please continue with creating a vaulted payment method token. """ APPROVED """ Payer canceled the payment method approval by closing the window or clicking cancel. """ CANCELED """ Saving PayPal wallet in the vault initiated. User is on the review page before approval. """ IN_PROGRESS """ Payer is not logged in to approve saving PayPal as a payment method. Approval via PayPal is still pending. """ NOT_STARTED } """Input fields for a PayPal account to be vaulted.""" input PayPalBillingAgreementInput { """The Billing Agreement token.""" billingAgreementToken: ID! } """The status of the billing agreement.""" enum PayPalBillingAgreementStatus { """The token has been created and requires approval.""" APPROVAL_REQUIRED """The token has been approved by the consumer.""" APPROVED """The token has been consumed, e.g. the Billing Agreement was vaulted.""" CONSUMED } """User action type for PayPal billing agreements.""" enum PayPalBillingAgreementUserAction { CONTINUE SETUP_NOW } """Configuration for PayPal.""" type PayPalConfiguration { """ The merchant's company name for displaying to customers in the PayPal UI. """ displayName: String """The merchant's PayPal client ID.""" clientId: String """The merchant's privacy policy URL.""" privacyUrl: String @deprecated(reason: "This field is deprecated and will no longer be returned") """The merchant's user agreement URL.""" userAgreementUrl: String @deprecated(reason: "This field is deprecated and will no longer be returned") """ A URL pointing to the base path of Braintree's web pages used for various browser switches and popups. """ assetsUrl: String """The PayPal environment.""" environment: PayPalEnvironment """For internal use only.""" environmentNoNetwork: Boolean @deprecated(reason: "This field is only included for internal testing purposes.") """Whether or not the merchant has been vetted.""" unvettedMerchant: Boolean """Braintree's PayPal client ID.""" braintreeClientId: String """ Whether billing agreements are enabled and should be used instead of future payments. """ billingAgreementsEnabled: Boolean """ The merchant account being used. This affects the currency code and other options. """ merchantAccountId: String """The currency code to use.""" currencyCode: CurrencyCodeAlpha """ The email address of the PayPal account that will receive the funds when a transaction is created. """ payeeEmail: String """For internal use only.""" directBaseUrl: String @deprecated(reason: "This field is only included for internal testing purposes.") } """Custom field related to a PayPal payment method.""" type PayPalCustomField { """The name of this custom field (maximum 40 characters).""" name: String! """The value for this custom field (maximum 4000 characters).""" value: String! } """The environment being used for PayPal.""" enum PayPalEnvironment { CUSTOM LIVE OFFLINE custom live offline } """Controls the experience in a PayPal approval flow.""" input PayPalExperienceProfileInput { """Merchant brand name to be displayed on the PayPal approval pages.""" brandName: String """ Indicates whether a shipping address will be collected from the customer during the agreement approval flow. """ collectShippingAddress: Boolean """ Specifies the PayPal page to display when a user lands on the PayPal site to complete the payment. """ landingPageType: PayPalLandingPageType """Locale of the PayPal payment approval experience.""" locale: Language """ Indicates whether to enable user editing of the shipping address. Only applies when shipping address is provided by merchant. """ shippingAddressEditable: Boolean """ Presents the customer with either the Continue or Pay Now (COMMIT) checkout flow. Default is Continue flow if the field is not provided. """ userAction: PayPalUserAction """Indicates the contact information preferred by the customers.""" contactPreference: PayPalUserContactPreference } """The intent for PayPal payments.""" enum PayPalIntent { """ Merchant will authorize the payment, but the funds will be captured separately. """ AUTHORIZE """ Merchant will create a PayPal Order. This validates the transaction without an authorization (i.e. without holding funds). Useful for authorizing and capturing funds up to 90 days after the order has been placed. """ ORDER """Merchant will authorize and captures funds simultaneously.""" SALE } """ The type of landing page to display on the PayPal site for user checkout. """ enum PayPalLandingPageType { BILLING DEFAULT LOGIN } """Line items for a PayPal payment.""" type PaypalLineItem { """Item name. Maximum 127 characters.""" name: String """ Number of units of the item purchased. This value can't be negative or zero. """ quantity: Int """ Per-unit price of the item. Can include up to 2 decimal places. This value can't be negative or zero. """ unitAmount: Amount """ Indicates whether the line item is a debit (sale) or credit (refund or discount) to the customer. """ type: TransactionLineItemType """Item description. Maximum 127 characters.""" description: String """Product or UPC code for the item. Maximum 127 characters.""" productCode: String """ Per-unit tax price of the item. Can include up to 2 decimal places. This value can't be negative or zero. If this is a line item for a Venmo transaction, this value can be zero. """ unitTaxAmount: Amount """The URL to product information.""" url: URL """URL to an image that represents the product. Max 1024 characters.""" imageUrl: URL """UPC of the line item.""" upc: LineItemUpc } """Line items for a PayPal payment.""" input PayPalLineItemInput { """Item name. Maximum 127 characters.""" name: String! """ Number of units of the item purchased. This value can't be negative or zero. """ quantity: Int! """ Per-unit price of the item. Can include up to 2 decimal places. This value can't be negative or zero. """ unitAmount: Amount! """ Indicates whether the line item is a debit (sale) or credit (refund or discount) to the customer. """ type: TransactionLineItemType! """Item description. Maximum 127 characters.""" description: String """Product or UPC code for the item. Maximum 127 characters.""" productCode: String """ Per-unit tax price of the item. Can include up to 2 decimal places. This value can't be negative or zero. If this is a line item for a Venmo transaction, this value can be zero. """ unitTaxAmount: Amount! """The URL to product information.""" url: URL """URL to an image that represents the product. Max 1024 characters.""" imageUrl: URL """UPC of the line item.""" upc: LineItemUpcInput } """ Additional information about the local payment method specific to PayPal. """ type PayPalLocalPaymentOriginDetails { """ If funds for the transaction have settled, the PayPal ID for the capture of funds. """ captureId: String """A string of field/value pairs passed directly to PayPal.""" customField: String """The identification value of the payment within PayPal's API.""" paymentId: String """The fee charged by PayPal for the transaction.""" transactionFee: MonetaryAmount """List of BLIK aliases for BLIK OneClick type of local payment.""" blikAliases: [LocalPaymentBlikAlias!] } """PayPal local payment specific refund details.""" type PayPalLocalPaymentRefundDetails { """The PayPal refund ID.""" refundId: String """Refunded transaction fee charged by PayPal.""" refundedFee: MonetaryAmount } """Input fields for a PayPal account for a One-Time payment.""" input PayPalOneTimePaymentInput { """The PayPal payer ID.""" payerId: ID! """The PayPal payment ID. This ID is prefixed with "PAYID-".""" paymentId: ID! } """Input fields for fetching the PayPal order status.""" input PayPalOrderDetailsInput { """The PayPal order ID.""" orderId: ID! """Merchant Account ID.""" merchantAccountId: ID } """Information about a PayPal order.""" type PayPalOrderDetailsPayload { """The status of the PayPal order.""" status: PayPalOrderStatus """The PayPal ID of the PayPal account.""" payerId: String """ The current status of the PayPal checkout process in the order lifecycle. """ experienceStatus: PayPalOrderExperienceStatus } """ Represents the stages of the PayPal checkout experience throughout the order lifecycle. """ enum PayPalOrderExperienceStatus { """Order is approved. User has completed the checkout process.""" APPROVED """ PayPal checkout is canceled (by closing the checkout window or clicking cancel) before the order approval. """ CANCELED """ PayPal checkout initiated. User is on the checkout page for order review before approval. """ IN_PROGRESS """PayPal checkout process has not yet begun.""" NOT_STARTED } """Information about a PayPal order.""" enum PayPalOrderStatus { """ The customer approved the order through the PayPal wallet or another form of guest or unbranded payment. """ APPROVED """ The intent of the order was completed and a 'payments' resource was created. """ COMPLETED """The order was created.""" CREATED """ Some of the lineItems within the order could not be successfully authorized or captured. """ PARTIALLY_COMPLETED """The order requires an action from the payer.""" PAYER_ACTION_REQUIRED """ The order was confirmed and the payer's action was completed but order approval processing from PayPal is pending. """ PENDING_APPROVAL """The order was saved and persisted.""" SAVED """All purchase units in the order are voided.""" VOIDED } """Input fields for a PayPal account receiving transaction funds.""" input PayPalPayeeOptionsInput { """The email address associated with the payee PayPal account.""" email: String } """Product attributes input for PayPal billing agreement.""" input PayPalProductAttributesInput { """ Expected business/pricing model for a billing agreement (Charge Patterns). """ paypalBillingAgreementChargePattern: PayPalBillingAgreementChargePattern } """The billing cycle that is a part of a recurring billing plan.""" input PayPalRecurringBillingCycleInput { """Whether the cycle is or is not a trial period.""" trial: Boolean """The pricing scheme for the billing cycle.""" pricingScheme: PayPalRecurringBillingPricingSchemeInput """The frequency interval of the payments towards the plan.""" frequencyInterval: PayPalRecurringBillingFrequencyIntervalInput """The order that this cycle runs among other billing cycles.""" billingCycleSequence: Int! """Start date for the billing cycle.""" startDate: Date """ The number of times the billing cycle will be executed. Zero indicates infinite. """ numberOfExecutions: Int } """The frequency interval of payments in a recurring billing cycle.""" input PayPalRecurringBillingFrequencyIntervalInput { """The unit of time for the interval which the payment is charged.""" billingFrequencyUnit: FrequencyUnit """The amount of time of the interval which the next payment is charged.""" billingFrequency: Int } """Charges due at the initial checkout for a recurring billing plan.""" input PayPalRecurringBillingOneTimeChargesInput { """The one-time setup fee.""" oneTimeFeeAmount: Amount """The shipping amount for the product.""" shippingAmount: Amount } """ The type of recurring billing plan associated with the billing agreement. """ enum PayPalRecurringBillingPlan { INSTALLMENT RECURRING SUBSCRIPTION UNSCHEDULED } """Billing plan for recurring payments.""" input PayPalRecurringBillingPlanInput { """The type of recurring billing plan.""" planType: PayPalRecurringBillingPlan! """Additional properties of the recurring billing plan.""" planMetadata: PayPalRecurringBillingPlanMetadataInput } """Additional properties of a recurring billing plan.""" input PayPalRecurringBillingPlanMetadataInput { """The name of the billing plan to be displayed at checkout.""" name: String """ The optional product included or associated with the recurring payment. """ product: PayPalRecurringBillingProductInput """ Array of billing cycles. At most two trial cycles and one regular cycle. """ billingCycles: [PayPalRecurringBillingCycleInput!]! """Charges due at initial checkout.""" oneTimeCharges: PayPalRecurringBillingOneTimeChargesInput """ The total amount associated with the billing cycle at the time of checkout. """ totalAmount: Amount! """The tax amount for the billing cycle at the time of checkout.""" taxAmount: Amount """The currency code for the entire billing plan.""" currencyCode: CurrencyCodeAlpha! } """The type of pricing model used for recurring billing.""" enum PayPalRecurringBillingPricingModel { AUTO_RELOAD FIXED VARIABLE } """The pricing scheme for a recurring billing cycle.""" input PayPalRecurringBillingPricingSchemeInput { """The type of pricing model used.""" pricingModel: PayPalRecurringBillingPricingModel """The recurring charge amount.""" price: Amount """ The reload trigger threshold condition amount when the customer is charged. """ reloadThresholdAmount: Amount } """The optional product included in a recurring billing plan.""" input PayPalRecurringBillingProductInput { """The description of the product.""" description: String """The quantity of the product included.""" quantity: Int """The unit price of the product.""" price: Amount } """PayPal-specific refund details.""" type PayPalRefundDetails { """The PayPal refund ID.""" refundId: String """Refunded transaction fee charged by PayPal.""" refundedFee: MonetaryAmount """The description of this refund.""" description: String """The reason this refund was created.""" reason: String } """The app used to scan an in-store QR code.""" enum PayPalRetailAppUsedForScanning { PAYPAL VENMO } """A shipping option for a PayPal One-Time payment.""" input PayPalShippingOptionInput { """The cost for this shipping option.""" amount: MonetaryAmountInput! """A unique ID that identifies a shipping option.""" id: ID! """ The shipping option description. Localize this description to the payer's locale. For example, `Free Shipping`, `USPS Priority Shipping`, `Expédition prioritaire USPS`, or `USPS yōuxiān fā huò`. """ description: String! """ Indicates which shipping option is selected by default when the payer views the shipping options within the PayPal checkout experience. Only one shipping option can be selected at a time. """ selected: Boolean! """The method by which the payer wants to receive their items.""" type: PayPalShippingOptionType! } """The method by which the payer wants to receive their items.""" enum PayPalShippingOptionType { PICKUP SHIPPING } """PayPal-specific details on a transaction.""" type PayPalTransactionDetails { """ If the transaction was successfully authorized, the PayPal ID for the authorization. """ authorizationId: String """ If funds for the transaction have settled, the PayPal ID for the capture of funds. """ captureId: String """A string of field/value pairs passed directly to PayPal.""" customField: String """Details about the payer or owner of the PayPal account.""" payer: PayPalAccountDetails """Details about the PayPal account that received the funds.""" payee: PayPalAccountDetails """Whether or not the PayPal account has been verified by PayPal.""" payerStatus: String """The identification value of the payment within PayPal's API.""" paymentId: String """If the transaction is a refund, the PayPal refund ID.""" refundId: String @deprecated(reason: "This field will never be populated as it only appears on refunds. Use `details.paypalId` on a refund instead.") """Whether or not the transaction qualifies for PayPal Seller Protection.""" sellerProtectionStatus: String """Payer's tax ID. Only returned for payments from Brazilian accounts.""" taxId: String """ Payer's tax ID type. Only returned for payments from Brazilian accounts. Allowed values BR_CPF or BR_CNPJ. """ taxIdType: String """The fee charged by PayPal for the transaction.""" transactionFee: MonetaryAmount """The fee charged by PayPal for the transaction.""" transactionFeeAmount: String @deprecated(reason: "Use `transactionFee.value` instead.") """The currency code for the currency of the PayPal transaction fee.""" transactionFeeCurrencyIsoCode: String @deprecated(reason: "Use `transactionFee.currencyCode` instead.") """ Description of the transaction that is displayed to customers in PayPal email receipts. """ description: String """ Additional information if the credit card was provided from a third-party origin, such as Google Pay. """ origin: PaymentMethodOrigin """Buyer selected financing option at the time of creating a transaction.""" selectedFinancingOption: SelectedPayPalFinancingOptionDetails @deprecated(reason: "This field is no longer supported.") """The application used by the payer to scan the QR code.""" appUsedForScanning: PayPalRetailAppUsedForScanning """Recipient email.""" recipientEmail: EmailAddress """Recipient phone.""" recipientPhone: Phone } """Top-level output field from creating a PayPal transaction.""" type PayPalTransactionPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The transaction representing the charge on the payment method.""" transaction: Transaction """ If the paymentMethodId passed to this mutation was a single-use PayPal payment method created with the [Billing Agreement with Purchase flow](https://developers.braintreepayments.com/guides/paypal/checkout-with-paypal/javascript/v3#checkout-using-paypal-billing-agreement-with-purchase-flow), then this field will be populated with a multi-use PayPal payment method created alongside the transaction. Otherwise, this will be null. """ billingAgreementWithPurchasePaymentMethod: PaymentMethod } """A key-value pair for a PayPal SetTransactionContext field.""" input PayPalTransactionRiskContextDataFieldInput { """ The name of the field. Must correspond exactly to the PayPal key/field name. """ name: String """The value of the field. Maximum 4000 characters.""" value: String } """ Input fields setting the PayPal transaction context for risk assessment. In order to use this, your PayPal account must be set up to use the PayPal SetTransactionContext feature. """ input PayPalTransactionRiskContextInput { """Provide a maximum of 100 fields.""" fields: [PayPalTransactionRiskContextDataFieldInput!] } """PayPal User action type.""" enum PayPalUserAction { COMMIT CONTINUE } """PayPal User Contact Preference types.""" enum PayPalUserContactPreference { """Default Option. No contact information provided by the customer.""" NO_CONTACT_INFO """ Merchant has pre-filled contact information (email/phone) that cannot be modified by the customer. """ RETAIN_CONTACT_INFO """ Merchant allows the customer to provide or update contact information (email/phone). """ UPDATE_CONTACT_INFO } """ The percentage, as a fixed-point, signed decimal number. For example, define a 19.99% interest rate as `19.99`. """ scalar Percentage """Top-level fields for performing a 3D Secure Lookup.""" input PerformThreeDSecureLookupInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ ID of the merchant account that will be used when charging the payment method. """ merchantAccountId: ID """ Reference ID used by our MPI provider CardinalCommerce to connect the lookup request to the device data that was previously collected. """ dfReferenceId: String """ID of a payment method to perform the lookup on.""" paymentMethodId: ID! """ The amount you plan to charge the payment method after the 3D Secure authentication. """ amount: Amount! """ Additional information about the transaction when authenticating through 3D Secure. """ transactionInformation: ThreeDSecureLookupTransactionInformationInput """ Additional information about the cardholder when authenticating through 3D Secure. """ cardholderInformation: ThreeDSecureLookupCardholderInformationInput """ When set to true, requests a 3D Secure authentication challenge from the issuer. A challenge will result in the acsUrl field being populated on the response, requiring you to open the challenge on the client side. """ requestAuthenticationChallenge: Boolean """ Indicates an exemption to be requested. If the exemption's conditions are satisfied, then will it be applied to 3D Secure. """ requestedExemptionType: ScaExemptionType """Information about the client-side lookup process.""" clientInformation: ThreeDSecureLookupClientInformationInput """ When set to true, the data-only 3D Secure call will be created. The status of [DATA_ONLY_SUCCESSFUL](https://developers.braintreepayments.com/guides/3d-secure/advanced-options#using-data-only-3d-secure) will be returned as `ThreeDSecureAuthenticationStatus` for a successful response. """ dataOnlyRequested: Boolean """ If set to true, a card-add challenge will be requested from the issuer to confirm adding new card to the merchant's vault. This flag should only be used when adding a card to a merchant’s vault and not for creating transactions. """ cardAdd: Boolean """3RI (3DS Requester Initiated) request.""" merchantInitiatedRequest: ThreeDSecureMerchantInitiatedRequestInput } """Top-level fields returned when performing a 3D Secure Lookup.""" type PerformThreeDSecureLookupPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ Data fields containing information from the MPI provider about the 3D Secure Lookup result. """ threeDSecureLookupData: ThreeDSecureLookupData """A single-use payment method.""" paymentMethod: PaymentMethod } """ The phone number in its international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). """ type Phone { """ The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). """ countryPhoneCode: String """ The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). """ phoneNumber: String """The extension number.""" extensionNumber: String } """ The phone number in its international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). """ input PhoneInput { """ The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). """ countryPhoneCode: String! """ The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). """ phoneNumber: String! """The extension number.""" extensionNumber: String } """The pre-dispute program of the dispute.""" enum PreDisputeProgram { """The dispute does not have a pre-dispute program.""" NONE """ The dispute is part of the Visa Rapid Dispute Resolution (RDR) program. """ VISA_RDR } """ A value identifying whether the authorization for a transaction was requested online or as a deferred authorization. """ enum ProcessingMode { DEFERRED ONLINE } """Accompanying information for a processor declined transaction.""" type ProcessorDeclinedEvent implements PaymentStatusEvent { """The new status of the transaction.""" status: PaymentStatus """Date and time when the transaction was declined by the processor.""" timestamp: Timestamp """The amount of the transaction for this status event.""" amount: MonetaryAmount """The source for the transaction change to the new status.""" source: PaymentSource """Whether or not the decline is the result of a temporary issue.""" declineType: ProcessorDeclineType """ Fields describing the payment processor response and why they declined the transaction. """ processorResponse: TransactionAuthorizationProcessorResponse """Fields describing the network response to the authorization request.""" networkResponse: PaymentNetworkResponse """ Fields describing the merchant advice code response to the authorization request. """ merchantAdviceCodeResponse: MerchantAdviceCodeResponse """Risk decision for this transaction.""" riskDecision: RiskDecision """Whether or not this is the final state for the transaction.""" terminal: Boolean """ User name of the person who performed an action that triggered the status change of the transaction. """ userName: String } """ Whether the decline is likely to be temporary or persistent. Can be taken into consideration when determining whether to retry a declined charge. """ enum ProcessorDeclineType { """ Hard declines are the result of an error or issue which can't be resolved immediately; the decline is not temporary and subsequent charges on the same payment method will likely not be successful. """ HARD """ Soft declines result from a temporary issue and can be retried; subsequent charges on the same payment method may be successful. """ SOFT } """The top-level Query type. Queries are used to fetch data.""" type Query { """Returns the literal string 'pong'.""" ping: String! """ Triggers a beep on a connected Reader and returns the Reader information or an error if unable to ping the device. """ pingInStoreReader(readerId: ID!): InStoreReader """The currently authenticated viewer.""" viewer: Viewer """The client-side environment and payment method configuration.""" clientConfiguration: ClientConfiguration """Fetch any object that extends the Node interface using its ID.""" node(id: ID!): Node """ Get a GraphQL ID from a legacy ID that was returned from an SDK or a legacyId field. Does not verify existence except for payment methods. """ idFromLegacyId(legacyId: ID!, type: LegacyIdType!): ID! """ A collection of the available reports. Each field on the `Report` type is a different report that can be queried with its own input parameters. """ report: Report """ A collection of the available searches. Each field on the `Search` type is a different search that can be queried with its own input parameters. """ search: Search """Retrieve a paginated list of all in-store locations.""" inStoreLocations(first: Int, after: String): InStoreLocationConnection """Returns the details of the billing agreement.""" paypalBillingAgreementDetails(input: PayPalBillingAgreementDetailsInput!): PayPalBillingAgreementDetailsPayload """Returns the details of the PayPal order.""" paypalOrderDetails(input: PayPalOrderDetailsInput!): PayPalOrderDetailsPayload """Retrieves a list of domains registered with Apple for Apple Pay.""" applePayRegisteredDomains: ApplePayRegisteredDomainsPayload """Retrieve all recurring billing subscription plans.""" recurringBillingSubscriptionPlans: RecurringBillingSubscriptionPlansPayload """Retrieve all recurring billing subscription plan add-ons.""" recurringBillingSubscriptionPlanAddOns: RecurringBillingSubscriptionPlanAddOnsPayload """Retrieve all recurring billing subscription plan discounts.""" recurringBillingSubscriptionPlanDiscounts: RecurringBillingSubscriptionPlanDiscountsPayload } """Indicates the status of a Reader.""" enum ReaderStatus { OFFLINE ONLINE } """ A recurring billing subscription plan template that subscriptions can be based upon. """ type RecurringBillingSubscriptionPlan implements Node { """The plan identifier.""" id: ID! """The legacy plan identifier.""" legacyId: ID! """The name of the plan.""" name: String! """A description of the plan.""" description: String """The base price and currency for this plan.""" price: MonetaryAmount! """The billing interval of the plan in months.""" billingFrequency: Int! """The day of the month the subscription is billed.""" billingDayOfMonth: Int """ The number of times the billing cycle will be executed. A value of 0 indicates the plan never expires. """ numberOfBillingCycles: Int """Trial period settings for this plan.""" trial: RecurringBillingSubscriptionTrial """The collection of add-ons associated with this plan.""" addOns: [RecurringBillingSubscriptionPlanAddOn!] """The collection of discounts associated with this plan.""" discounts: [RecurringBillingSubscriptionPlanDiscount!] """The date/time the plan was created.""" createdAt: Timestamp! """The date/time the plan was last updated.""" updatedAt: Timestamp! } """The global template for a recurring billing subscription plan add-on.""" type RecurringBillingSubscriptionPlanAddOn implements Node { """The add-on identifier.""" id: ID! """The legacy add-on identifier.""" legacyId: ID! """The name of the add-on.""" name: String! """A description of the add-on.""" description: String """The add-on amount.""" amount: Amount! """ The number of billing cycles to execute. A value of 0 indicates it never expires. """ numberOfBillingCycles: Int """The date/time the add-on was created.""" createdAt: Timestamp """The date/time the add-on was last updated.""" updatedAt: Timestamp } """ The response object returned when querying recurring billing subscription plan add-ons. """ type RecurringBillingSubscriptionPlanAddOnsPayload { """A list of recurring billing subscription plan add-ons.""" addOns: [RecurringBillingSubscriptionPlanAddOn!] } """ The global template for a recurring billing subscription plan discount. """ type RecurringBillingSubscriptionPlanDiscount implements Node { """The discount identifier.""" id: ID! """The legacy discount identifier.""" legacyId: ID! """The name of the discount.""" name: String! """A description of the discount.""" description: String """The discount amount.""" amount: Amount! """ The number of billing cycles to execute. A value of 0 indicates it never expires. """ numberOfBillingCycles: Int """The date/time the discount was created.""" createdAt: Timestamp """The date/time the discount was last updated.""" updatedAt: Timestamp } """ The response object returned when querying recurring billing subscription plan discounts. """ type RecurringBillingSubscriptionPlanDiscountsPayload { """A list of recurring billing subscription plan discounts.""" discounts: [RecurringBillingSubscriptionPlanDiscount!] } """ The response object returned after a recurring billing subscription plan mutation. """ type RecurringBillingSubscriptionPlanPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The plan that was created or updated.""" plan: RecurringBillingSubscriptionPlan } """ The response object returned when querying recurring billing subscription plans. """ type RecurringBillingSubscriptionPlansPayload { """A list of recurring billing subscription plans.""" plans: [RecurringBillingSubscriptionPlan!] } """Trial period configuration for recurring billing subscription plans.""" type RecurringBillingSubscriptionTrial { """The duration of the trial period.""" duration: Int! """The unit for the trial duration.""" durationUnit: RecurringBillingSubscriptionTrialDurationUnit! } """ Units used to define the duration of a recurring billing subscription trial period. """ enum RecurringBillingSubscriptionTrialDurationUnit { DAY MONTH } """ Input for configuring a trial period on a recurring billing subscription plan. """ input RecurringBillingSubscriptionTrialInput { """ The trial timeframe. A value of 0 starts the subscription immediately without a trial period. """ duration: Int! """The trial unit of time.""" durationUnit: RecurringBillingSubscriptionTrialDurationUnit! } """The type of recurring payment a transaction represents.""" enum RecurringType { FIRST SUBSEQUENT UNSCHEDULED } """ A refund of a charge on a payment method, representing an attempt to send money from a previous transaction back to the customer. """ type Refund implements Node & Payment { """Unique identifier.""" id: ID! """Legacy unique identifier.""" legacyId: ID! """Date and time when the refund was created.""" createdAt: Timestamp """ The amount that will be refunded, which can be less than or equal to the original charge amount. """ amount: MonetaryAmount """ The order ID for this refund. For PayPal transactions, the PayPal Invoice ID. """ orderId: String """The current status of this refund.""" status: PaymentStatus """Fields describing the payment processor response.""" processorResponse: TransactionAuthorizationProcessorResponse @deprecated(reason: "Use relevant events in `statusHistory` or `processorAuthorizationResponse` instead.") """Fields describing the payment authorization processor response.""" processorAuthorizationResponse: TransactionAuthorizationProcessorResponse """ The records of all statuses this refund has passed through, with additional information on why each status occurred. Returned in reverse chronological order, with the most recent event first in the list. """ statusHistory: [PaymentStatusEvent!] """Payment method specific details about the refund.""" details: RefundPaymentMethodDetails """The ID of the merchant account that processed this refund.""" merchantAccountId: ID """How the refund was created.""" source: PaymentSource """ The original transaction that this refunds. If this is not present, then this refund represents a refund of a transaction that does not belong to this Braintree gateway account. """ refundedTransaction: Transaction """ Snapshot of payment method details that will receive the refund, typically based on the original transaction. This will always be present. Equivalent to `refundedTransaction.paymentMethodSnapshot`. """ paymentMethodSnapshot: PaymentMethodSnapshot """ The multi-use payment method that will receive the refund. Only present if a multi-use payment method was used to create the original transaction and it has not been since deleted. The details of this PaymentMethod may have changed since the transaction was created; details used for the transaction can be found in the `paymentMethodSnapshot` field. Equivalent to `refundedTransaction.paymentMethod` (if present). """ paymentMethod: PaymentMethod """ The customer that the vaulted payment method (if it exists) belongs to. Equivalent to `refundedTransaction.customer` (if present). """ customer: Customer """Line items for this refund.""" lineItems: [TransactionLineItem!] """ Collection of custom field/value pairs passed when creating the refund. Custom fields are [defined in the Control Panel](https://articles.braintreepayments.com/control-panel/custom-fields#store-and-pass-back-fields). For all refunds except "detached refunds", these will always be null. """ customFields: [CustomField!] """ Fields used to define what will appear on a customer's statement (for instance, credit card or bank statement) for this refund. This will always match the descriptor from the refunded transaction (if present). """ descriptor: TransactionDescriptor """ The disbursement details associated with this refund. This field is only available after the refund is SETTLED and if you have an eligible merchant account. """ disbursementDetails: DisbursementDetails """The refund date and time as reported by the in-store payment terminal.""" paymentInitiatedAt: Timestamp """The ID of the merchant that processed this refund.""" merchantId: String } """A paginated list of refunds.""" type RefundConnection { """A list of refunds.""" edges: [RefundConnectionEdge] """Information about the page of refunds contained in `edges`.""" pageInfo: PageInfo! } """A transaction within a RefundConnection.""" type RefundConnectionEdge { """ This refund's location within the RefundConnection. Used for requesting additional pages. """ cursor: String """The refund.""" node: Refund } """ Top-level input fields for creating a detached refund on a credit card. """ input RefundCreditCardInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a refund being created (in any status), then the same refund in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no refund is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """ID of the credit card to be refunded.""" paymentMethodId: ID! """Input fields containing details about the refund.""" refund: DetachedRefundInput! """Input fields related to credit card detached refund processing.""" options: CreditCardDetachedRefundOptionsInput } """ Top-level output field from creating a detached refund for a credit card. """ type RefundCreditCardPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The information about the created refund.""" refund: Refund } """Specific input fields for describing a refund.""" input RefundInput { """ The amount to refund. Must be less than or equal to the amount of the original transaction. Defaults to the total amount of the original transaction. """ amount: Amount """ The refund's order ID. Defaults to the order ID of the original transaction. """ orderId: String """ ID of the merchant account that will be used when performing the refund. """ merchantAccountId: ID """ Description of the refund that is displayed to customers in PayPal email receipts. """ description: String """ Line items for this refund. Up to 249 line items may be specified. Only allowed for Custom Actions transactions. """ lineItems: [TransactionLineItemInput!] } """ Top-level input fields for creating a detached refund on an in-store credit card. """ input RefundInStoreCreditCardInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a refund being created (in any status), then the same refund in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no refund is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """ID of the credit card to be refunded.""" paymentMethodId: ID! """Input fields containing details about the refund.""" refund: DetachedRefundInput! """Input fields for creating an in-store credit card refund.""" options: InStoreCreditCardRefundOptionsInput } """A union of all possible payment method refund details.""" union RefundPaymentMethodDetails = PayPalRefundDetails | PayPalLocalPaymentRefundDetails | SEPADirectDebitRefundDetails """Input fields for searching for refunds.""" input RefundSearchInput { """Find refunds with an ID or IDs.""" id: SearchValueInput """Find refunds with the given status.""" status: SearchTransactionStatusInput """ Find payments based on the time at which they transitioned to a given status. """ statusTransition: SearchPaymentStatusTransitionInput """Find refunds based on the time they were created.""" createdAt: SearchTimestampInput """Find refunds with a given amount or currency.""" amount: MonetaryAmountSearchInput """Find refunds with a given orderId.""" orderId: SearchTextInput """ Find refunds processed through a merchant account ID or IDs. In most cases, this will be the merchant account of the original refunded transaction. """ merchantAccountId: SearchPaymentMerchantAccountIdInput """Find refunds with a given customer.""" customer: SearchPaymentCustomerInput """ Find refunds by their disbursement date. Only use this search criteria if you have an eligible merchant account. Note that refunds can only be disbursed after they reach the SETTLED status. """ disbursementDate: SearchDateInput """Find refunds created with a given source.""" source: SearchPaymentSourceInput """ Find refunds by the batch ID under which the refund was submitted for settlement. """ settlementBatchId: SearchTextInput """ Find refunds based on information about the payment method used for the refund. """ paymentMethod: SearchPaymentPaymentMethodInput """ Find refunds created by a third party via the Grant API using a given OAuth application client ID. """ facilitatorOAuthApplicationClientId: SearchValueInput """Find refunds with a user ID or IDs.""" userId: SearchValueInput """ Find refunds by the ID of the store that the transaction was processed in. """ storeId: SearchValueInput """Find refunds by the reader ID.""" readerId: SearchValueInput """Find refunds by the shipping address.""" shippingAddress: SearchAddressInput """Find refunds by the billing address.""" billingAddress: SearchAddressInput """Find refunds by dispute received date.""" disputeReceivedDate: SearchDateInput """Find refunds by the processor authorization code.""" processorAuthorizationId: SearchTextInput """Find refunds by the processing mode.""" processingMode: SearchProcessingModeInput } """Top-level input fields for refunding a transaction.""" input RefundTransactionInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a refund being created (in any status), then the same refund in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no refund is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """The ID of a transaction to be refunded.""" transactionId: ID! """Input fields for the details of the refund.""" refund: RefundInput } """Top-level output field from refunding a transaction.""" type RefundTransactionPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The information about the created refund.""" refund: Refund } """ Top-level input fields for creating a detached refund on a US Bank Account. """ input RefundUsBankAccountInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a refund being created (in any status), then the same refund in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no refund is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """ID of the US Bank Account to be refunded.""" paymentMethodId: ID! """Input fields related to the US bank account being charged.""" options: ChargeUsBankAccountOptionsInput """Input fields containing details about the refund.""" refund: DetachedRefundInput! } """ Top-level output field from creating a detached refund for a US Bank Account. """ type RefundUsBankAccountPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The information about the created refund.""" refund: Refund } """Top-level Input fields for registering apple pay domains.""" input RegisterApplePayDomainsInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """List of domains to register.""" domains: [String!]! } """Top-level fields returned after registering an Apple Pay domain.""" type RegisterApplePayDomainsPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String } """Top-level fields returned for a report query.""" type Report { """Top-level fields returned in the transaction-level fee report query.""" transactionLevelFees( """Report date (UTC).""" date: Date! merchantAccountId: ID ): TransactionLevelFeeReport @deprecated(reason: "This report has been renamed `paymentLevelFees`, since it applies to all types in the Payment interface, including transactions and refunds. Use the `paymentLevelFees` field instead, which returns the same report.") """Top-level fields returned in the payment-level fee report query.""" paymentLevelFees( """Report date (UTC).""" date: Date! merchantAccountId: ID ): PaymentLevelFeeReport } """Input fields for requesting an amount on an in-store reader.""" input RequestAmountPromptFromInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the in-store reader to request an amount from.""" readerId: ID! """Title to be displayed on the in-store reader. 1000 character maximum.""" title: String """ Text to be displayed on the in-store reader. 65536 character maximum. '\n' line breaks will be respected. """ text: String """ The way the text is aligned when displayed on an in-store reader. Defaults to CENTER. """ alignment: InStoreReaderDisplayAlignment """ Once the customer submits a response, a loading screen should be displayed on the in-store reader until the next request comes in. The screen saver is displayed by default. """ waitForNextRequest: Boolean """ Display timeout in seconds. This is the time allotted for the user to complete their input. Defaults to 120 seconds. """ displayTimeout: Int """ The number of digits that appear after the decimal point in the amount. Defaults to TWO. Allowed to be ZERO, TWO, or THREE. """ decimalPlaces: DecimalPlaces """ Text for the cancellation button to be displayed on the in-store reader. 20 character maximum. Defaults to 'Cancel'. """ cancellationText: String """ Text for the confirmation button to be displayed on the in-store reader. 20 character maximum. Defaults to 'Submit'. """ confirmationText: String } """Reference object for an in-store reader amount prompt.""" type RequestAmountPromptInStoreContext implements Node & InStoreContextResult { """A unique ID for this amount prompt request.""" id: ID! """The reader from which the amount prompt was requested.""" reader: InStoreReader """ The status of the context created when the amount prompt was requested. """ status: InStoreContextStatus! """The amount collected by the in-store reader.""" amountPromptResult: Amount } """Input fields for requesting an authorization from an in-store reader.""" input RequestAuthorizeFromInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the Reader to request an authorization from.""" readerId: ID! """Information about the requested in-store transaction.""" transaction: InStoreAuthorizationInput! } """Reference object for an in-store authorize request.""" type RequestAuthorizeInStoreContext implements Node & InStoreContextResult { """A unique ID for this authorize request.""" id: ID! """The reader from which the authorize was requested.""" reader: InStoreReader """ The status of the context created when the authorize was requested. A status of COMPLETE does not indicate a successful payment. """ status: InStoreContextStatus! """The transaction representing the authorization on the payment method.""" transaction: Transaction """The reason for the context status.""" statusReason: InStoreTransactionContextStatusReason """The list of errors for the failed context.""" errors: [InStoreContextError!] } """Input fields for requesting a cancel during an in-store charge flow.""" input RequestCancelFromInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Unique ID for the charge flow.""" inStoreContextId: ID! } """Input fields for beginning the in-store charge flow.""" input RequestChargeFromInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the Reader to request a charge from.""" readerId: ID! """Information about the requested in-store transaction.""" transaction: InStoreTransactionInput! } """Reference object for an in-store charge request.""" type RequestChargeInStoreContext implements Node & InStoreContextResult { """A unique ID for this charge request.""" id: ID! """The reader from which the charge was requested.""" reader: InStoreReader """ The status of the context created when the charge was requested. A status of COMPLETE does not indicate a successful payment. """ status: InStoreContextStatus! """The transaction representing the charge on the payment method.""" transaction: Transaction """The reason for the context status.""" statusReason: InStoreTransactionContextStatusReason """The list of errors for the failed context.""" errors: [InStoreContextError!] } """ Input fields for requesting a confirmation prompt on an in-store reader. """ input RequestConfirmationPromptFromInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the Reader to request a confirmation prompt from.""" readerId: ID! """Title to be displayed on the in-store reader. 50 character maximum.""" title: String! """ Text to be displayed on the in-store reader. 65536 character maximum. '\n' line breaks will be respected. """ text: String! """ The way the text is aligned when displayed on an in-store reader. Defaults to CENTER. """ alignment: InStoreReaderDisplayAlignment """ Once the customer submits a response, a loading screen should be displayed on the in-store reader until the next request comes in. The screen saver is displayed by default. Only supported on payment application versions >= 5.2.0. """ waitForNextRequest: Boolean """ Display timeout in seconds. This is the time allotted for the user to complete their input. Defaults to 120 seconds. Only supported on payment application versions >= 5.2.0. """ displayTimeout: Int """ Text for the cancellation option to be displayed on the in-store reader. 20 character maximum. """ cancellationText: String """ Text for the confirmation option to be displayed on the in-store reader. 20 character maximum. """ confirmationText: String } """Reference object for an in-store reader confirmation prompt.""" type RequestConfirmationPromptInStoreContext implements Node & InStoreContextResult { """A unique ID for this confirmation prompt request.""" id: ID! """The reader from which the confirmation prompt was requested.""" reader: InStoreReader """ The status of the context created when the confirmation prompt was requested. """ status: InStoreContextStatus! """The confirmation response collected by the in-store reader.""" confirmed: Boolean } """Reference object for an in-store display request.""" type RequestDisplayInStoreContext implements Node & InStoreContextResult { """A unique ID for this display request.""" id: ID! """The reader from which the display was requested.""" reader: InStoreReader """The status of the context created when the display was requested.""" status: InStoreContextStatus! } """Input fields for requesting a firmware update for an in-store reader.""" input RequestFirmwareUpdateFromInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The in-store reader to receive the firmware update.""" readerId: ID! } """Reference object for an in-store reader firmware update.""" type RequestFirmwareUpdateInStoreContext implements Node & InStoreContextResult { """A unique ID for this firmware update request.""" id: ID! """The reader for which the firmware update was requested.""" reader: InStoreReader """ The status of the context created when the firmware update was requested. """ status: InStoreContextStatus! } """Input fields for beginning the in-store display line items flow.""" input RequestItemDisplayFromInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the Reader to display items on.""" readerId: ID! """ Items to be displayed on the in-store reader. Up to 249 items may be specified. """ displayItems: [InStoreDisplayItemInput!] """ The total tax amount for the entire transaction, including all display line items. """ tax: Amount! """The total amount for the entire transaction, including tax.""" amount: Amount! """The total discount amount for the entire transaction.""" discountAmount: Amount } """ Input fields for requesting a multi-choice single select prompt on an in-store reader. """ input RequestMultiChoiceSingleSelectPromptFromInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ ID of the in-store reader to request a multi-choice single-select from. """ readerId: ID! """Title to be displayed on the in-store reader. 1000 character maximum.""" title: String """ Text to be displayed on the in-store reader. 65536 character maximum. '\n' line breaks will be respected. """ text: String """ The way the text is aligned when displayed on an in-store reader. Defaults to CENTER. """ alignment: InStoreReaderDisplayAlignment """ Once the customer submits a response, a loading screen should be displayed on the in-store reader until the next request comes in. The screensaver is displayed by default. """ waitForNextRequest: Boolean """ Display timeout in seconds. This is the time allotted for the user to complete their input. Defaults to 120 seconds. """ displayTimeout: Int """ The list of available choices for user selection, limited to a maximum of 15 choices. """ choices: [InStoreChoiceInput!]! } """ Reference object for an in-store reader multi-choice single-select prompt. """ type RequestMultiChoiceSingleSelectPromptInStoreContext implements Node & InStoreContextResult { """A unique ID for this multi-choice single-select prompt request.""" id: ID! """ The reader from which the multi-choice single-select prompt was requested. """ reader: InStoreReader """ The status of the context created when the multi-choice single-select prompt was requested. """ status: InStoreContextStatus! """ A list of choices where '1' signifies selected choices and '0' indicates unselected choices. The original ordering is maintained from the input. """ selections: [Int!] } """ Input fields for requesting non [PCI-scoped](https://www.braintreepayments.com/blog/understanding-pci-dss-compliance) card data from an in-store reader. """ input RequestNonPciCardDataFromInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the Reader to request card data from.""" readerId: ID! """ Title to be displayed on the in-store reader. 1000 character maximum. '\n' line breaks will be respected. """ title: String """ Large text to be displayed on the in-store reader directly below the title. 1000 character maximum. '\n' line breaks will be respected. """ textAreaOne: String """ Text to be displayed on the in-store reader. 1000 character maximum. '\n' line breaks will be respected. """ textAreaTwo: String """ Once the customer submits a response, a loading screen should be displayed on the in-store reader until the next request comes in. The screen saver is displayed by default. """ waitForNextRequest: Boolean """ Display timeout in seconds. This is the time allotted for the user to complete their input. Defaults to 120 seconds. Unsuccessful input attempts will reset the timer. """ displayTimeout: Int } """ Reference object for an in-store reader non [PCI-scoped](https://www.braintreepayments.com/blog/understanding-pci-dss-compliance) card data request. """ type RequestNonPciCardDataInStoreContext implements Node & InStoreContextResult { """A unique ID for this card data request.""" id: ID! """The reader from which the card data was requested.""" reader: InStoreReader """The status of the context created when the card data was requested.""" status: InStoreContextStatus! """The non-pci data read from the card by the in-store reader.""" cardData: NonPciCardData } """ Input fields for initiating a request to print content on an in-store reader. """ input RequestPrintFromInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the Reader to request printing content from.""" readerId: ID! """ Contents to be printed on the in-store reader. The `contents` field must not exceed 122,880 bytes in size. """ contents: [InStorePrintContentInput!]! } """Reference object for an in-store reader print content.""" type RequestPrintInStoreContext implements Node & InStoreContextResult { """A unique ID for this print content request.""" id: ID! """The reader to which the print request was sent.""" reader: InStoreReader """ The status of the context created when the print content was requested. """ status: InStoreContextStatus! """The list of errors for the failed context.""" errors: [InStoreContextError!] } """Input fields for beginning the in-store refund flow.""" input RequestRefundFromInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the Reader to request a refund from.""" readerId: ID! """Information about the requested in-store refund.""" refund: InStoreRefundInput! } """Reference object for an in-store refund request.""" type RequestRefundInStoreContext implements Node & InStoreContextResult { """A unique ID for this refund request.""" id: ID! """The reader from which the refund was requested.""" reader: InStoreReader """ The status of the context created when the refund was requested. A status of COMPLETE does not indicate a successful payment. """ status: InStoreContextStatus! """The refund representing the refund on the payment method.""" refund: Refund } """Input fields for requesting a signature prompt on an in-store reader.""" input RequestSignaturePromptFromInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the Reader to request a signature prompt from.""" readerId: ID! """Title to be displayed on the in-store reader. 50 character maximum.""" title: String """ Once the customer submits a response, a loading screen should be displayed on the in-store reader until the next request comes in. The screen saver is displayed by default. Only supported on payment application versions >= 5.2.0. """ waitForNextRequest: Boolean """ Display timeout in seconds. This is the time allotted for the user to complete their input. Defaults to 120 seconds. Only supported on payment application versions >= 5.2.0. """ displayTimeout: Int """ Text for the cancellation option to be displayed on the in-store reader. 20 character maximum. """ cancellationText: String """ Text for the confirmation option to be displayed on the in-store reader. 20 character maximum. """ confirmationText: String } """Reference object for an in-store reader signature prompt.""" type RequestSignaturePromptInStoreContext implements Node & InStoreContextResult { """A unique ID for this signature prompt request.""" id: ID! """The reader from which the signature prompt was requested.""" reader: InStoreReader """ The status of the context created when the signature prompt was requested. """ status: InStoreContextStatus! """ The signature data collected by the in-store reader. Base64 encoded PNG image. """ signatureData: String } """Input fields for beginning the in-store display text flow.""" input RequestTextDisplayFromInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the Reader to request a text display from.""" readerId: ID! """ Title to be displayed on the in-store reader. 1000 character maximum. Only supported on payment application versions >= 5.2.0. """ title: String """ The way the text is aligned when displayed on an in-store reader. Defaults to CENTER. Only supported on payment application versions >= 5.2.0. """ alignment: InStoreReaderDisplayAlignment """ Text to be displayed on the in-store reader. 65536 character maximum. '\n' line breaks will be respected. """ text: String! """ Once the customer submits a response, a loading screen should be displayed on the in-store reader until the next request comes in. The screen saver is displayed by default. Supported on payment application version >= 5.2.0. """ waitForNextRequest: Boolean """ Display timeout in seconds. This is the time allotted for the user to complete their input. Defaults to 120 seconds. Only supported on payment application versions >= 5.2.0. """ displayTimeout: Int } """Input fields for requesting a text on an in-store reader.""" input RequestTextPromptFromInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the in-store reader to request a text prompt from.""" readerId: ID! """Title to be displayed on the in-store reader. 1000 character maximum.""" title: String """ Text to be displayed on the in-store reader. 65536 character maximum. '\n' line breaks will be respected. """ text: String """ The way the text is aligned when displayed on an in-store reader. Defaults to CENTER. """ alignment: InStoreReaderDisplayAlignment """ Once the customer submits a response, a loading screen should be displayed on the in-store reader until the next request comes in. The screen saver is displayed by default. """ waitForNextRequest: Boolean """ Display timeout in seconds. This is the time allotted for the user to complete their input. Defaults to 120 seconds. """ displayTimeout: Int """The input types available for user input.""" inputType: InStoreReaderTextPromptType! """ Placeholder text in the input box to indicate to the user the expected input format. """ inputPlaceholder: String """ Custom format used for text input, where the '*' symbol indicates a mandatory input character, and all other characters are treated as literals. For instance, a phone number format in the US would be '(***) ***-****', while a zip code format would be '*****'. """ inputFormat: String """ Text for the cancellation button to be displayed on the in-store reader. 20 character maximum. Defaults to 'Cancel'. """ cancellationText: String """ Text for the confirmation button to be displayed on the in-store reader. 20 character maximum. Defaults to 'Submit'. """ confirmationText: String } """Reference object for an in-store reader text prompt.""" type RequestTextPromptInStoreContext implements Node & InStoreContextResult { """A unique ID for this text prompt request.""" id: ID! """The reader from which the text prompt was requested.""" reader: InStoreReader """The status of the context created when the text prompt was requested.""" status: InStoreContextStatus! """The input types available for user input.""" inputType: InStoreReaderTextPromptType """The text collected by the in-store reader.""" textPromptResult: String } """Input fields for beginning the in-store charge flow.""" input RequestVaultFromInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the Reader to request a vault from.""" readerId: ID! """ Input fields that specify options for verifying the payment method before vaulting. Only applicable if the payment method is of a type that supports verification. For supported types, verification is performed by default. If the verification fails, the payment method will not be vaulted. """ verification: PaymentMethodVerificationOptionsInput """ ID of the customer to associate the resulting multi-use payment method with. """ customerId: ID } """Reference object for an in-store vault request.""" type RequestVaultInStoreContext implements Node & InStoreContextResult { """A unique ID for this vault request.""" id: ID! """The reader from which the vault was requested.""" reader: InStoreReader """The status of the context created when the vault was requested.""" status: InStoreContextStatus! """ A payment method that has been stored in a merchant's vault and can be reused. """ paymentMethod: PaymentMethod """The verification that was run on the payment method prior to vaulting.""" verification: Verification } """Input fields for reversing an EMV card declined transaction.""" input ReverseEmvTransactionInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a transaction being created (in any status), then the same transaction in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no transaction is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """The ID of the transaction to reverse.""" transactionId: ID! """ EMV data received from a payment reader to be included as part of the reversal. """ emvData: String! } """Input fields for reversing a refund.""" input ReverseRefundInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a refund being created (in any status), then the same refund in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no refund is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """The ID of the refund to reverse.""" refundId: ID! } """Input fields for reversing a transaction.""" input ReverseTransactionInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a transaction or refund being created (in any status), then the same transaction or refund in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no transaction or refund is created, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """The ID of the transaction to reverse.""" transactionId: ID! } """Top-level output field for reversing a transaction.""" type ReverseTransactionPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ A transaction (if the original transaction was voided) or refund (if the original transaction was refunded). A reversal will attempt to void the original transaction if it has not yet settled. If the original transaction has settled, a reversal will create a refund for the full amount. """ reversal: TransactionReversal } """A right assigned to a user.""" type Right { """A human-readable name.""" name: String } """Data from advanced risk evaluations.""" type RiskData { """Unique identifier.""" id: ID """The risk decision on whether the transaction should be permitted.""" decision: RiskDecision """The reasons for the decision from the fraud service provider.""" decisionReasons: [String!] """ Whether data associated with the customer's device was captured and used in the decision process. """ deviceDataCaptured: Boolean """The fraud service provider used to generate the risk decision.""" fraudServiceProvider: FraudServiceProvider """Liability Shift information in the event of a chargeback.""" liabilityShift: LiabilityShift """The numeric risk score assigned by the fraud service provider.""" score: Int } """Input fields for data used by processors for risk analysis.""" input RiskDataInput { """ The User-Agent header provided by the customer's browser, which gives information about the browser. Maximum 255 characters. """ customerBrowser: String """The customer's IP address.""" customerIp: String """ Customer device information. Required when creating transactions using cards (only if using Advanced Fraud Tools), PayPal (only for one-time Vaulted PayPal transactions), and Venmo payment method types. This value will contain a Fraud Merchant ID as the unique, numeric identifier for a Kount account and a Device Session ID as the unique identifier for a customer device. For PayPal and Venmo transactions, this value will also include a PayPal Correlation ID. """ deviceData: String } """ The risk decision provides further context on how a transaction was scored for risk by Braintree. """ enum RiskDecision { APPROVE DECLINE NOT_EVALUATED REVIEW } """Groups of rights assigned to the user.""" type Role { """Unique identifier.""" id: ID! """A human-readable name.""" name: String """Whether the role grants account admin status.""" isAccountAdmin: Boolean """The rights associated with the role.""" rights: [Right!] } """An role within an RoleSearchConnection.""" type RoleConnectionEdge { """ The role within the RoleSearchConnection. Used for requesting additional pages. """ cursor: String """The role.""" node: Role } """A paginated list of searched merchant roles.""" type RoleSearchConnection { """A list of merchant roles.""" edges: [RoleConnectionEdge] """Information about the page of roles contained in `edges`.""" pageInfo: PageInfo! } """Input fields for searching for merchant roles.""" input RoleSearchInput { """Find merchant roles with an ID or IDs.""" id: SearchValueInput } """ Deprecated: Samsung pay is no longer supported. Details about a Samsung Pay card. """ type SamsungPayCardDetails { """The display name of the card brand, e.g. "Visa" or "American Express".""" brand: String """ A static code identifying the card brand of the FPAN (the customer's actual backing card). """ brandCode: CreditCardBrandCode """ The first 6 digits of the credit card, known as the Bank Identification Number. This BIN will differ from the BIN of the source (customer's actual) card. """ bin: String """ Information about the card based on its BIN. This BIN will differ from the BIN of the source (customer's actual) card. """ binData: BinRecord """The last four digits of the FPAN (the customer's actual backing card).""" sourceCardLast4: CreditCardLast4 } """ Deprecated: Samsung pay is no longer supported. Input fields for a Samsung Pay card. """ input SamsungPayCardInput { """ A one-time-use string generated by the token requester to validate the transaction. """ cryptogram: String! """ A two-digit string that should be passed along in the authorization message. """ eCommerceIndicator: ECommerceIndicator! """A two-digit string representing the expiration month of the DPAN.""" expirationMonth: Month! """A four-digit string representing the expiration year of the DPAN.""" expirationYear: Year! """ The card number provided by Samsung and used in processing. This is a digitized PAN (DPAN), not the backing card number (FPAN). """ number: CreditCardNumber! """The last four digits of the FPAN (the cardholder's backing card).""" sourceCardLast4: CreditCardLast4! } """ Deprecated: Samsung Pay is no longer supported. Configuration for Samsung Pay on Android. """ type SamsungPayConfiguration { """A string used to identify the merchant to the customer.""" displayName: String """The Samsung Pay environment.""" environment: SamsungPayEnvironment """The Samsung Pay service ID.""" serviceId: String """Authorization to use when tokenizing Samsung Pay.""" samsungAuthorization: String """A list of card brands supported by the merchant for Samsung Pay.""" supportedCardBrands: [CreditCardBrandCode!] } """ Deprecated: Samsung pay is no longer supported. The environment being used for Samsung Pay. """ enum SamsungPayEnvironment { PRODUCTION SANDBOX production sandbox } """ Deprecated: Samsung pay is no longer supported. Additional information about the payment method specific to Samsung Pay. """ type SamsungPayOriginDetails { """ The first 6 digits of the credit card, known as the Bank Identification Number. This BIN may differ from the BIN of the customer's actual card. """ bin: String } """ The settlement state when forcing transaction settlement in the sandbox environment. """ enum SandboxSettlementState { SETTLED SETTLEMENT_DECLINED } """ Top-level input fields for settling a transaction in the sandbox environment. """ input SandboxSettleTransactionInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Id of the transaction to force settlement in the sandbox environment.""" transactionId: ID! """ The target settlement state for the transaction in the sandbox environment. """ settlementState: SandboxSettlementState } """The type of Strong Customer Authentication Exemption.""" enum ScaExemptionType { LOW_VALUE SECURE_CORPORATE TRANSACTION_RISK_ANALYSIS TRUSTED_BENEFICIARY } """Top-level fields returned for a search query.""" type Search { """ A paginated list of transactions that match the TransactionSearchInput. """ transactions(input: TransactionSearchInput!, first: Int, after: String): TransactionConnection """A paginated list of refunds that match the RefundSearchInput.""" refunds(input: RefundSearchInput!, first: Int, after: String): RefundConnection """ A paginated list of all types of Payment that match the PaymentSearchInput. """ payments(input: PaymentSearchInput!, first: Int, after: String): PaymentConnection """A paginated list of disputes that match the DisputeSearchInput.""" disputes(input: DisputeSearchInput!, first: Int, after: String): DisputeConnection """ A paginated list of verifications that match the VerificationSearchInput. """ verifications(input: VerificationSearchInput!, first: Int, after: String): VerificationConnection """A paginated list of customers that match the CustomerSearchInput.""" customers(input: CustomerSearchInput!, first: Int, after: String): CustomerConnection """ A paginated list of business account creation requests that match the BusinessAccountCreationRequestSearchInput. """ businessAccountCreationRequests(input: BusinessAccountCreationRequestSearchInput!, first: Int, after: String): BusinessAccountCreationRequestConnection """ A paginated list of in-store readers that match the InStoreReaderSearchInput. """ inStoreReaders(input: InStoreReaderSearchInput!, first: Int, after: String): InStoreReaderConnection """ A paginated list of in-store locations that match any of the conditions in InStoreLocationSearchInput. """ inStoreLocations(input: InStoreLocationSearchInput!, first: Int, after: String): InStoreLocationSearchConnection """ A paginated list of roles that match any of the conditions in RoleSearchInput. """ roles(input: RoleSearchInput!, first: Int, after: String): RoleSearchConnection } """Input fields for searching by address.""" input SearchAddressInput { """Company name.""" company: SearchTextInput """ The first line of the street address, such as street number, street name. """ addressLine1: SearchTextInput """ Extended address information, such as apartment number or suite number. """ addressLine2: SearchTextInput """First name.""" firstName: SearchTextInput """Last name.""" lastName: SearchTextInput """ Highest level subdivision, such as state, province or ISO-3166-2 subdivision. """ adminArea1: SearchTextInput """A city, town or village.""" adminArea2: SearchTextInput """ Postal code in any country's format, otherwise known as CAP, CEP, Eircode, NPA, PIN, PLZ, or ZIP code. """ postalCode: SearchTextInput """Country code for the address.""" countryName: SearchTextInput } """ Deprecated: Please use `SearchDisputeProtectionLevelInput` instead. Input fields for searching for a dispute with a given chargeback protection level. """ input SearchChargebackProtectionLevelInput { """The dispute's chargeback protection level is exactly this value.""" is: ChargebackProtectionLevel """Dispute's chargeback protection level is one of these values.""" in: [ChargebackProtectionLevel!] } """Input fields for searching for payments by credit card brand.""" input SearchCreditCardBrandCodeInput { """Credit card brand code is exactly this value.""" is: CreditCardBrandCode """Credit card brand code is one of these values.""" in: [CreditCardBrandCode!] } """ Input fields for searching for a transaction created with a give credit card customer location. """ input SearchCreditCardCustomerLocationInput { """The creditCardCustomerLocation is exactly this value.""" is: CreditCardCustomerLocation """The creditCardCustomerLocation is one of these values.""" in: [CreditCardCustomerLocation!] } """ Input fields for searching for payments by payment method snapshot credit card expiration date criteria. """ input SearchCreditCardExpirationDateInput { """Field is exactly this value.""" is: SearchCreditCardExpirationMonthYearInput """Field is not this value.""" isNot: SearchCreditCardExpirationMonthYearInput } """ Input fields for searching for payments by payment method snapshot credit card expiration date criteria. """ input SearchCreditCardExpirationMonthYearInput { """The month of the credit card expiration as MM.""" expirationMonth: String! """The year of the credit card expiration as YYYY.""" expirationYear: String! } """ Input fields for searching for payments by payment method snapshot credit card number criteria. """ input SearchCreditCardNumberInput { """ Up to the first six digits of the credit card number (the credit card's BIN). """ startsWith: String """Up to four digits of the last four digits of the credit card number.""" endsWith: String } """ Input fields for searching for a date. These ranges are precise to the day. """ input SearchDateInput { """Date is greater than or equal to this value.""" greaterThanOrEqualTo: Date """Date is less than or equal to this value.""" lessThanOrEqualTo: Date } """Input fields for searching disputes with merchant account id criteria.""" input SearchDisputeMerchantAccountIdInput { """Field is exactly this value.""" is: String """Field is one of these values.""" in: [String!] """Field is not this value.""" isNot: String """Field starts with this value.""" startsWith: String """Field ends with this value.""" endsWith: String """Field contains this value.""" contains: String } """ Input fields for searching for a dispute with a given protection level. """ input SearchDisputeProtectionLevelInput { """The dispute's protection level is exactly this value.""" is: DisputeProtectionLevel """The dispute's protection level is one of these values.""" in: [DisputeProtectionLevel!] } """ Input fields for searching for a dispute with a given reason description. """ input SearchDisputeReasonInput { """The dispute reason is one of these values.""" in: [DisputeReason!] } """Input fields for searching for a dispute with a given status.""" input SearchDisputeStatusInput { """The dispute status is exactly this value.""" is: DisputeStatus """The dispute status is one of these values.""" in: [DisputeStatus!] } """Input fields for searching for a dispute with a given type.""" input SearchDisputeTypeInput { """The dispute type is exactly this value.""" is: DisputeType """The dispute type is one of these values.""" in: [DisputeType!] } """ Input fields for searching for payments by payment method snapshot credit card details criteria. """ input SearchPaymentCreditCardDetailsInput { """The credit card number used for the payment.""" number: SearchCreditCardNumberInput """ Find payments based on the expiration date of the credit card used for the payment. """ expirationDate: SearchCreditCardExpirationDateInput """The unique identifier of the credit card number used for the payment.""" uniqueNumberIdentifier: SearchTextInput """The card holder name of the credit card number used for the payment.""" cardholderName: SearchTextInput """The brand code of the credit card number used for the payment.""" brandCode: SearchCreditCardBrandCodeInput """Find transaction by the credit card customer location.""" customerLocation: SearchCreditCardCustomerLocationInput } """Input fields for searching payments by customer.""" input SearchPaymentCustomerInput { """Find payments with a given customer ID.""" id: SearchValueInput """Find payments with a given first name.""" firstName: SearchTextInput """Find payments with a given last name.""" lastName: SearchTextInput """Find payments with a given customer company.""" company: SearchTextInput """Find payments with a customer email.""" email: SearchTextInput """Find payments with a customer fax.""" fax: SearchTextInput """Find payments with a customer phone.""" phone: SearchTextInput """Find payments with a customer website.""" website: SearchTextInput } """ Input fields for searching transactions with merchant account id criteria. """ input SearchPaymentMerchantAccountIdInput { """Field is exactly this value.""" is: String """Field is one of these values.""" in: [String!] """Field is not this value.""" isNot: String """Field starts with this value.""" startsWith: String """Field ends with this value.""" endsWith: String """Field contains this value.""" contains: String } """ Input fields for searching transactions by payment method snapshot type. """ input SearchPaymentMethodSnapshotTypeInput { """ This value represents the payment method type used to create a transaction. In the case of credit cards, this value also encode the origin from which a customer provided that payment method. """ is: PaymentMethodSnapshotSearchType """ These values represent the payment method type used to create a transaction. In the case of credit cards, these values also encode the origin from which a customer provided that payment method. """ in: [PaymentMethodSnapshotSearchType!] } """Input fields for searching for payments by payment method criteria.""" input SearchPaymentPaymentMethodInput { """The ID of the vaulted payment method used for the payment.""" paymentMethodId: SearchValueInput """The snapshot of the payment method at the time of payment creation.""" paymentMethodSnapshot: SearchPaymentPaymentMethodSnapshotInput } """ Input fields for searching for payments by payment method snapshot criteria. """ input SearchPaymentPaymentMethodSnapshotInput { """Find payments based on the payment instrument type.""" type: SearchPaymentMethodSnapshotTypeInput """ Find payments made with credit cards, based on the details of the credit card used for the payment. Passing an object with non-empty, non-null fields will scope your search to *only* credit card payment methods. This overrides the `type` field. """ creditCardDetails: SearchPaymentCreditCardDetailsInput """ Find payments made with PayPal, based on the PayPal details used for the payment. Passing a value here will scope your search to *only* PayPal payment methods. This overrides the `type` field. """ payPalDetails: SearchPaymentPayPalDetailsInput """ Find SEPA payments with SEPA details. Passing a value here will scope your search to *only* SEPA Direct Debit payment methods. This overrides the `type` field. """ sepaDirectDebitDetails: SearchPaymentSEPADirectDebitDetailsInput } """ Input fields for searching for payments by payment method snapshot PayPal details criteria. """ input SearchPaymentPayPalDetailsInput { """The email address of the PayPal payer.""" payerEmail: SearchTextInput """The PayPal ID for the authorization.""" authorizationId: SearchTextInput """The identification value of the payment within PayPal's API.""" paymentId: SearchTextInput } """ Input field for searching for payments by payment method snapshot SEPA Direct Debit details criteria. """ input SearchPaymentSEPADirectDebitDetailsInput { """PayPal V2 OrderId.""" paymentId: SearchValueInput } """ Input fields for searching for a transaction or refund created with a given source. """ input SearchPaymentSourceInput { """The transaction source is one of these values.""" in: [PaymentSource!] } """ Input fields for searching for a transaction or refund with a given status. """ input SearchPaymentStatusInput { """The transaction status is one of these values.""" in: [PaymentStatus!] } """ Payment status transition times. Used by payment and refund searches. Includes all payment lifecycle timestamps (e.g. authorizationExpiredAt, gatewayRejectedAt, processorDeclinedAt) that are not applicable to transaction searches. """ input SearchPaymentStatusTransitionInput { """Find transactions with a given failed at time.""" failedAt: SearchTimestampInput """Find transactions with a given settled at time.""" settledAt: SearchTimestampInput """Find transactions with a given submitted for settlement time.""" submittedForSettlementAt: SearchTimestampInput """Find transactions with a given voided at time.""" voidedAt: SearchTimestampInput """Find transactions with a given authorization expired at time.""" authorizationExpiredAt: SearchTimestampInput """Find transactions with a given authorized at time.""" authorizedAt: SearchTimestampInput """Find transactions with a given gateway rejected at time.""" gatewayRejectedAt: SearchTimestampInput """Find transactions with a given processor declined at time.""" processorDeclinedAt: SearchTimestampInput } """Input fields for searching for payments by implementing type.""" input SearchPaymentTypeInput { """The payment is a transaction and/or a refund.""" in: [PaymentSearchType!] } """ Input fields for searching for a dispute with a given pre-dispute program. """ input SearchPreDisputeProgramInput { """The dispute's pre-dispute program is exactly this value.""" is: PreDisputeProgram """The dispute's pre-dispute program is one of these values.""" in: [PreDisputeProgram!] } """ Input fields for searching for transactions with a given processing mode. """ input SearchProcessingModeInput { """ This value represents the processing mode used to create a transaction. """ is: ProcessingMode """ These values represent the processing mode used to create a transaction. """ in: [ProcessingMode!] } """Input fields for searching for a range.""" input SearchRangeInput { """Field is exactly this value.""" is: String """Field is greater than or equal to this value.""" greaterThanOrEqualTo: String """Field is less than or equal to this value.""" lessThanOrEqualTo: String } """Input fields for searching for a version number.""" input SearchSoftwareVersionInput { """Field is exactly this value.""" is: String """Field is not this value.""" isNot: String """Field starts with this value.""" startsWith: String """Field contains this value.""" contains: String } """Input fields for searching text fields.""" input SearchTextInput { """Field is exactly this value.""" is: String """Field is not this value.""" isNot: String """Field starts with this value.""" startsWith: String """Field ends with this value.""" endsWith: String """Field contains this value.""" contains: String } """Input fields for searching text fields or for specific values.""" input SearchTextValueInput { """Field is exactly this value.""" is: String """Field is not this value.""" isNot: String """Field starts with this value.""" startsWith: String """Field ends with this value.""" endsWith: String """Field contains this value.""" contains: String """Field is one of these values.""" in: [String!] } """ Input fields for searching by timestamp. These ranges have the following properties: The lower bound is inclusive, the upper bound is exclusive, and one minute is always added to the upper bound. As an example, the results of searching for an object created between 12/17/2015 17:00 and 12/17/2015 18:00 will include objects created at the following times: 17:00:00, 17:35:24, and 18:00:59. """ input SearchTimestampInput { """Timestamp is greater than or equal to this value.""" greaterThanOrEqualTo: Timestamp """Timestamp is less than this value.""" lessThanOrEqualTo: Timestamp } """ Input fields for searching for a transaction created with a given source. """ input SearchTransactionSourceInput { """The transaction source is one of these values.""" in: [PaymentSource!] } """Input fields for searching for a transaction with a given status.""" input SearchTransactionStatusInput { """The transaction status is exactly this value.""" is: PaymentStatus """The transaction status is one of these values.""" in: [PaymentStatus!] } """ Transaction status transition times. Used only by transaction searches. A subset of `SearchPaymentStatusTransitionInput` with only the four fields supported by transaction search. """ input SearchTransactionStatusTransitionInput { """Find transactions with a given failed at time.""" failedAt: SearchTimestampInput """Find transactions with a given settled at time.""" settledAt: SearchTimestampInput """Find transactions with a given submitted for settlement time.""" submittedForSettlementAt: SearchTimestampInput """Find transactions with a given voided at time.""" voidedAt: SearchTimestampInput } """Input fields for searching for specific values.""" input SearchValueInput { """Field is exactly this value.""" is: String """Field is one of these values.""" in: [String!] } """Input fields for searching for a verification with a given status.""" input SearchVerificationStatusInput { """The verification status is exactly this value.""" is: VerificationStatus """The verification status is one of these values.""" in: [VerificationStatus!] } """ Deprecated: SelectedPayPalFinancingOptionDetails are no longer supported. Details about a selected financing option by a PayPal buyer. """ type SelectedPayPalFinancingOptionDetails { """Total number of payments over which to finance the transaction.""" term: Int """The amount for each monthly payment.""" monthlyPayment: MonetaryAmount """ The percent discount off the total transaction amount due to the selected financing option. """ discountPercentage: Percentage """The amount reduced from the total transaction amount.""" discountAmount: MonetaryAmount } """ Deprecated: SelectedPayPalFinancingOptionInput are no longer supported. Input fields indicating a selected financing option by a PayPal buyer. """ input SelectedPayPalFinancingOptionInput { """Total number of payments over which to finance the transaction.""" term: Int! """The currency code for the monthly payment and discount amount.""" currencyCode: CurrencyCodeAlpha! """The amount for each monthly payment.""" monthlyPayment: Amount! """ The percent discount off the total transaction amount due to the selected financing option. """ discountPercentage: Percentage """The amount reduced from the total transaction amount.""" discountAmount: Amount } """Details about a SEPA Direct Debit account.""" type SEPADirectDebitAccountDetails { """Merchant or Partner Customer ID.""" merchantOrPartnerCustomerId: String """Last 4 characters of IBAN number.""" last4: String """Bank reference token.""" bankReferenceToken: String """Mandate type.""" mandateType: MandateType } """Refund-related details for SEPA Direct Debit transactions.""" type SEPADirectDebitRefundDetails { """The SEPA Direct Debit refund ID.""" refundId: ID """Refunded transaction fee charged by SEPA Direct Debit.""" refundedFee: MonetaryAmount """PayPal V2 OrderId.""" paymentId: String } """Details about a SEPA Direct Debit account.""" type SEPADirectDebitTransactionDetails { """ If funds for the transaction have settled, the PayPal ID for the capture of funds. """ captureId: String """The fee charged by PayPal for the transaction.""" transactionFee: MonetaryAmount """PayPal V2 OrderId.""" paymentId: String } """The type of acknowledgement the servicing request has received.""" enum ServicingRequestAcknowledgementType { ACKNOWLEDGED ACKNOWLEDGED_AND_WAIVED_WARNING REVIEW_ONLY } """Accompanying information for a settled transaction.""" type SettledEvent implements PaymentStatusEvent { """The new status of the transaction.""" status: PaymentStatus """Date and time when the transaction was settled.""" timestamp: Timestamp """ The amount the transaction was settled for, in the same currency as the original authorization (aka the "presentment" currency.) If you have elected to settle the transaction into a bank account with a different currency, this will not reflect that. """ amount: MonetaryAmount """The source for the transaction change to the new status.""" source: PaymentSource """Fields describing the payment processor response.""" processorResponse: TransactionSettlementProcessorResponse """Whether or not this is the final state for the transaction.""" terminal: Boolean """The ID of the settlement batch in which the transaction was processed.""" settlementBatchId: String } """Accompanying information for a settlement confirmed transaction.""" type SettlementConfirmedEvent implements PaymentStatusEvent { """The new status of the transaction.""" status: PaymentStatus """Date and time when the transaction became settlement confirmed.""" timestamp: Timestamp """The amount of the transaction for this status event.""" amount: MonetaryAmount """The source for the transaction change to the new status.""" source: PaymentSource """ Fields describing the payment processor response to the settlement request. """ processorResponse: TransactionSettlementProcessorResponse """Whether or not this is the final state for the transaction.""" terminal: Boolean } """Accompanying information for a settlement declined transaction.""" type SettlementDeclinedEvent implements PaymentStatusEvent { """The new status of the transaction.""" status: PaymentStatus """Date and time when the processor declined to settle this transaction.""" timestamp: Timestamp """The amount of the transaction for this status event.""" amount: MonetaryAmount """The source for the transaction change to the new status.""" source: PaymentSource """ Fields describing the payment processor response to the settlement request. """ processorResponse: TransactionSettlementProcessorResponse """Whether or not this is the final state for the transaction.""" terminal: Boolean } """ Accompanying information for a settlement pending transaction. This typically only occurs for PayPal transactions. """ type SettlementPendingEvent implements PaymentStatusEvent { """The new status of the transaction.""" status: PaymentStatus """Date and time when the transaction became settlement pending.""" timestamp: Timestamp """The amount of the transaction for this status event.""" amount: MonetaryAmount """The source for the transaction change to the new status.""" source: PaymentSource """ Fields describing the payment processor response to the settlement request. """ processorResponse: TransactionSettlementProcessorResponse """Whether or not this is the final state for the transaction.""" terminal: Boolean """ User name of the person who performed an action that triggered the status change of the transaction. """ userName: String } """ Accompanying information for a transaction that is settling. This is typically a transient state during which the transaction is being settled with the processor. """ type SettlingEvent implements PaymentStatusEvent { """The new status of the transaction.""" status: PaymentStatus """Date and time when the transaction began settling.""" timestamp: Timestamp """ The amount of the transaction for this status event. This should match the amount submitted for settlement. """ amount: MonetaryAmount """The source for the transaction change to the new status.""" source: PaymentSource """Whether or not this is the final state for the transaction.""" terminal: Boolean } """Details of the sub-merchants of PayFac and Marketplaces merchants.""" input SubMerchantDetailsInput { """ Id of the sub-merchant. Unique ID given by the Payment Facilitator (PayFac). """ id: ID! """Legal Business name of the sub-merchant.""" legalName: String! """ Tax identification number of the sub-merchant, Tax ID (CNPJ (14 characters) for companies and CPF (11 characters) for individual). """ taxId: String! """Address of the sub-merchant.""" address: AddressInput! } """Top-level input fields for submitting dispute feedback.""" input SubmitDisputeFeedbackInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The external processor's transaction ID.""" externalTransactionId: ID! """ The riskData ID returned in the evaluateTransactionRisk response for the original transaction. """ riskDataId: ID """The amount disputed.""" amountDisputed: Amount """The reason for the dispute.""" disputeReason: DisputeReason """The current status of the dispute.""" disputeStatus: DisputeStatus """Timestamp when the dispute was received.""" disputeCreatedAt: Timestamp } """ Top-level output field from submitting a feedback of an evaluated transaction. """ type SubmitFeedbackPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String } """ Accompanying information for a transaction that is submitted for settlement. This status indicates that the transaction is scheduled to be settled. """ type SubmittedForSettlementEvent implements PaymentStatusEvent { """The new status of the transaction.""" status: PaymentStatus """Date and time when the transaction was submitted for settlement.""" timestamp: Timestamp """ The amount that was submitted for settlement. This can differ from the authorized amount, but by default is the same. """ amount: MonetaryAmount """The source for the transaction change to the new status.""" source: PaymentSource """Whether or not this is the final state for the transaction.""" terminal: Boolean """ User name of the person who performed an action that triggered the status change of the transaction. """ userName: String } """Top-level input fields for submitting transaction feedback.""" input SubmitTransactionFeedbackInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ The riskData ID returned in the evaluateTransactionRisk response for the original transaction. """ riskDataId: ID! """The external processor's transaction ID.""" externalTransactionId: ID! """Status details of payment.""" externalPaymentResponse: ExternalPaymentResponseInput! """Issuer response.""" externalProcessorResponse: ExternalProcessorResponseInput } """The type of tax identifier.""" enum TaxInfoType { BR_CNPJ BR_CPF } """Information about the 3D Secure authentication for a payment method.""" type ThreeDSecureAuthentication { """ The cardholder authentication verification value. This value should be appended to the authorization message signifying that the transaction has been successfully authenticated with 3D Secure. This value will be encoded according to the merchant's configuration with CardinalCommerce, with either Base64 or Hex encoding. The decoded value will be of different length and format per card scheme. """ cavv: String """ A unique identifier for the 3D Secure interaction with the card brand directory server. """ directoryServerTransactionId: String """The electronic commerce indicator.""" eciFlag: ECommerceIndicator """A boolean indicating if the card has received liability shift.""" liabilityShifted: Boolean """A boolean indicating if the card is eligible for liability shift.""" liabilityShiftPossible: Boolean """Indicates whether the card is enrolled in a 3D Secure program.""" cardEnrolled: ThreeDSecureCardEnrolled """The 3D Secure authentication status of the card.""" authenticationStatus: ThreeDSecureAuthenticationStatus """The version of the 3D Secure protocol used during authentication.""" version: String """A unique identifier for the 3D Secure interaction with the provider.""" xId: String """ A unique identifier for the 3D Secure interaction with the 3D Secure server. """ threeDSecureServerTransactionId: String """ A unique identifier for the 3D Secure interaction with the access control server. """ acsTransactionId: String """ Indicates the current status of the 3D Secure authentication from the 3D Secure server for 3D Secure 1.0 authentications. """ paresStatus: ThreeDSecureAuthenticationStatusIndicator """ Indicates the current status of the 3D Secure authentication from the 3D Secure server for 3D Secure 2.0 authentications. """ transactionStatus: ThreeDSecureAuthenticationStatusIndicator """ Indicates the reason for the transaction status. This will be null if status is `SUCCESSFUL_AUTHENTICATION`. """ transactionStatusReason: String } """ An override field that a merchant can pass in to set the challenge window size to display to the end cardholder. The ACS will reply with content that is formatted appropriately to this window size to allow for the best user experience. The sizes are width x height in pixels of the window displayed in the cardholder browser window. """ enum ThreeDSecureAuthenticationAcsWindowSize { FULL_PAGE W250_H400 W390_H400 W500_H600 W600_H400 } """Indicates the delivery timeframe if applicable.""" enum ThreeDSecureAuthenticationDeliveryTimeframe { ELECTRONIC_DELIVERY OVERNIGHT_SHIPPING SAME_DAY_SHIPPING TWO_OR_MORE_DAY_SHIPPING } """ Input fields for passing auxillary 3D Secure information manually, as opposed to tokenized on a single-use payment method ID. """ input ThreeDSecureAuthenticationInput { """ Braintree unique ID of the 3D Secure authentication performed for this transaction. You will only need to use this field if you are charging or authorizing a vaulted payment method ID. """ authenticationId: String """ Results of a merchant-performed 3D Secure authentication. You will only need to use these fields if you've performed your own integration with a 3D Secure MPI provider (e.g. Cardinal Centinel). Otherwise, Braintree's SDKs handle this for you in our standard 3D Secure integration. """ passThrough: ThreeDSecurePassThroughInput """ Specify whether to require 3D Secure verification to succeed before creating a transaction. Defaults to true for transactions sent through 3D Secure verification but to false for transactions not sent through 3D Secure verification. """ required: Boolean } """Merchant product code.""" enum ThreeDSecureAuthenticationMerchantProductCode { ACCOMMODATION_RETAIL AIRLINE CAR_RENTAL CASH_DISPENSING DIGITAL_GOODS FUEL GENERAL_RETAIL LUXURY_RETAIL OTHER RESTAURANT SERVICES TRAVEL } """Indicates the shipping type for the transaction.""" enum ThreeDSecureAuthenticationShippingType { DIGITAL_GOODS OTHER SHIP_TO_ADDRESS_ON_FILE SHIP_TO_BILLING_ADDRESS SHIP_TO_OTHER_ADDRESS SHIP_TO_STORE TICKETS_NOT_SHIPPED } """The 3D Secure authentication status of the card.""" enum ThreeDSecureAuthenticationStatus { AUTHENTICATE_ATTEMPT_SUCCESSFUL AUTHENTICATE_ERROR AUTHENTICATE_FAILED AUTHENTICATE_FAILED_ACS_ERROR AUTHENTICATE_FRICTIONLESS_FAILED AUTHENTICATE_REJECTED AUTHENTICATE_SIGNATURE_VERIFICATION_FAILED @deprecated(reason: "This was a 3DS1 status.") AUTHENTICATE_SUCCESSFUL AUTHENTICATE_SUCCESSFUL_ISSUER_NOT_PARTICIPATING @deprecated(reason: "No longer applicable.") AUTHENTICATE_UNABLE_TO_AUTHENTICATE AUTHENTICATION_BYPASSED @deprecated(reason: "No longer applicable.") AUTHENTICATION_UNAVAILABLE CHALLENGE_REQUIRED DATA_ONLY_SUCCESSFUL EXEMPTION_LOW_VALUE_SUCCESSFUL EXEMPTION_TRA_SUCCESSFUL LOOKUP_BYPASSED LOOKUP_CARD_ERROR LOOKUP_ENROLLED @deprecated(reason: "This was a 3DS1 status.") LOOKUP_ERROR LOOKUP_FAILED_ACS_ERROR LOOKUP_NOT_ENROLLED LOOKUP_SERVER_ERROR MPI_SERVER_ERROR SKIPPED_DUE_TO_ADAPTIVE_AUTHENTICATION SKIPPED_DUE_TO_RULE UNSUPPORTED_ACCOUNT_TYPE UNSUPPORTED_CARD UNSUPPORTED_THREE_D_SECURE_VERSION } """Indicates the current status of the 3D Secure authentication.""" enum ThreeDSecureAuthenticationStatusIndicator { AUTHENTICATION_REJECTED CHALLENGE_REQUIRED_DECOUPLED_AUTHENTICATION CHALLENGE_REQUIRED_FOR_AUTHENTICATION FAILED_AUTHENTICATION INFORMATIONAL_CHALLENGE_PREFERENCE_ACKNOWLEDGED SUCCESSFUL_ATTEMPTS_TRANSACTION SUCCESSFUL_AUTHENTICATION UNABLE_TO_COMPLETE_AUTHENTICATION } """Indicates the type of transaction for 3D Secure authentication.""" enum ThreeDSecureAuthenticationTransactionType { ADD_CARD CARDHOLDER_VERIFICATION DELAYED_SHIPMENT INSTALLMENT MAINTAIN_CARD PAYMENT PAYMENT_WITH_MULTIPLE_MERCHANTS RECURRING SPLIT_SHIPMENT } """Indicates whether the card is enrolled in a 3D Secure program.""" enum ThreeDSecureCardEnrolled { """ Authentication has been bypassed. This status will be returned if you set up bypass rules with CardinalCommerce, and they are triggered. """ BYPASS """ There was an error in determining whether the card is enrolled in a 3D Secure program. """ ERROR """The card is not enrolled.""" NO """ The DS (directory server) or ACS (access control server) is not available for authentication at the time of the request. """ UNAVAILABLE """The card is enrolled.""" YES } """ A 3D Secure CAVV algorithm. Possible Values: 2 - CVV with ATN, 3 - Mastercard SPA algorithm. """ scalar ThreeDSecureCavvAlgorithm """Configuration for 3D Secure.""" type ThreeDSecureConfiguration { """ Authentication information for initializing Cardinal's songbird.js library. """ cardinalAuthenticationJWT: String """The URL of the songbird javascript SDK used for 3D Secure.""" cardinalSongbirdUrl: String """ Value to use for the integrity attribute when loading the songbird SDK used for 3D Secure. """ cardinalSongbirdIdentityHash: String } """3D Secure information for the payment method.""" type ThreeDSecureDetails { """ Contains relevant data fields if the payment method has been authenticated using 3D Secure. Only available on 3D Secure authenticated single-use payment methods and 3D Secure paymentMethodSnapshots. """ authentication: ThreeDSecureAuthentication """ Information about the [customer authentication regulation environment](https://developer.paypal.com/braintree/docs/guides/3d-secure/authentication-insight/javascript/v3) that applies to the payment method when processed with the provided merchant account. This can be used to determine whether to perform 3D Secure authentication. """ authenticationInsight(input: AuthenticationInsightInput!): AuthenticationInsight """ The cardholder authentication verification value. This value should be appended to the authorization message signifying that the transaction has been successfully authenticated with 3D Secure. This value will be encoded according to the merchant's configuration with CardinalCommerce, with either Base64 or Hex encoding. The decoded value will be of different length and format per card scheme. """ cavv: String @deprecated(reason: "Use ThreeDSecureDetails.authentication.cavv instead.") """ A unique identifier for the 3D Secure interaction with the card brand directory server. """ directoryServerTransactionId: String @deprecated(reason: "Use ThreeDSecureDetails.authentication.directoryServerTransactionId instead.") """The electronic commerce indicator.""" eciFlag: ECommerceIndicator @deprecated(reason: "Use ThreeDSecureDetails.authentication.eciFlag instead.") """A boolean indicating if the card has received liability shift.""" liabilityShifted: Boolean @deprecated(reason: "Use ThreeDSecureDetails.authentication.liabilityShifted instead.") """A boolean indicating if the card is eligible for liability shift.""" liabilityShiftPossible: Boolean @deprecated(reason: "Use ThreeDSecureDetails.authentication.liabilityShiftPossible instead.") """Indicates whether the card is enrolled in a 3D Secure program.""" cardEnrolled: ThreeDSecureCardEnrolled @deprecated(reason: "Use ThreeDSecureDetails.authentication.cardEnrolled instead.") """The 3D Secure authentication status of the card.""" authenticationStatus: ThreeDSecureAuthenticationStatus @deprecated(reason: "Use ThreeDSecureDetails.authentication.authenticationStatus instead.") """The version of the 3D Secure protocol used during authentication.""" version: String @deprecated(reason: "Use ThreeDSecureDetails.authentication.version instead.") """A unique identifier for the 3D Secure interaction with the provider.""" xId: String @deprecated(reason: "Use ThreeDSecureDetails.authentication.xId instead.") """ A unique identifier for the 3D Secure interaction with the 3D Secure server. """ threeDSecureServerTransactionId: String @deprecated(reason: "Use ThreeDSecureDetails.authentication.threeDSecureServerTransactionId instead.") """ A unique identifier for the 3D Secure interaction with the access control server. """ acsTransactionId: String @deprecated(reason: "Use ThreeDSecureDetails.authentication.acsTransactionId instead.") """ Indicates the current status of the 3D Secure authentication from the 3D Secure server for 3D Secure 1.0 authentications. """ paresStatus: ThreeDSecureAuthenticationStatusIndicator @deprecated(reason: "Use ThreeDSecureDetails.authentication.paresStatus instead.") """ Indicates the current status of the 3D Secure authentication from the 3D Secure server for 3D Secure 2.0 authentications. """ transactionStatus: ThreeDSecureAuthenticationStatusIndicator @deprecated(reason: "Use ThreeDSecureDetails.authentication.transactionStatus instead.") """ Indicates the reason for the transaction status. This will be null if status is `SUCCESSFUL_AUTHENTICATION`. """ transactionStatusReason: String @deprecated(reason: "Use ThreeDSecureDetails.authentication.transactionStatusReason instead.") } """The 3D Secure device channel.""" enum ThreeDSecureDeviceChannel { BROWSER """For transactions initiated with Cardinal Mobile SDK.""" SDK """For Merchant Initiated or 3RI transactions.""" THREE_R_I } """ The billing address of the cardholder sent with 3D Secure Lookup requests. """ input ThreeDSecureLookupBillingAddressInput { """ The given (first) name associated with the billing address used for verification. """ givenName: String """ The surname (last name) associated with the billing address used for verification. """ surname: String """The billing phone number used for verification.""" phoneNumber: String """Line 1 of the billing address used for verification.""" line1: String """Line 2 of the billing address used for verification.""" line2: String """Line 3 of the billing address used for verification.""" line3: String """City or locality of billing address used for verification.""" locality: String """State or region of billing address used for verification.""" region: String """Country code of billing address used for verification.""" countryCode: String """Postal code of billing address used for verification.""" postalCode: String } """Information about the cardholder's browser.""" input ThreeDSecureLookupBrowserInformationInput { """Whether the cardholder browser can execute Java.""" javaEnabled: Boolean """Whether the cardholder browser can execute JavaScript.""" javascriptEnabled: Boolean """ The exact content of the HTTP accept headers sent from the cardholder's browser. """ acceptHeader: String """The browser language as defined in IETF BCP47.""" language: String """ The bit depth of the color palette for displaying images, in bits per pixel. """ colorDepth: Int """Total height of the cardholder's screen in pixels.""" screenHeight: Int """Total width of the cardholder's screen in pixels.""" screenWidth: Int """ Time difference between UTC time and the cardholder browser local time, in minutes. """ timeZone: Int """The exact content of the HTTP user agent header.""" userAgent: String } """ Additional information about the cardholder when authenticating through 3D Secure. """ input ThreeDSecureLookupCardholderInformationInput { """The billing address of the cardholder.""" billingAddress: ThreeDSecureLookupBillingAddressInput } """Information about the client side lookup process.""" input ThreeDSecureLookupClientInformationInput { """Version of the Braintree client-side SDK being used.""" sdkVersion: String """Version of 3D Secure requested when performing the lookup.""" requestedThreeDSecureVersion: String """Number of milliseconds taken for the issuer to collect device data.""" issuerDeviceDataCollectionMillisecondsElapsed: Int """Whether device data collection by the issuer succeeded.""" issuerDeviceDataCollectionResult: Boolean """ Number of milliseconds taken for the 3D Secure server to collect device data. """ threeDSecureServerDeviceDataCollectionMillisecondsElapsed: Int } """ Data fields containing information from the MPI provider about the 3D Secure Lookup result. """ type ThreeDSecureLookupData { """ The URL to use to issue a challenge to the cardholder for 3D Secure authentication. """ acsUrl: String """ Braintree unique ID of the 3D Secure authentication performed for this transaction. You will only need to use this field if you are charging or authorizing a vaulted payment method ID. """ authenticationId: String """The version of the 3D Secure protocol used in the authentication.""" version: String """ The "PAReq" or "Payment Authentication Request" is the encoded request message used to initiate authentication. """ pareq: String """ The unique 3D Secure identifier assigned by Braintree to track the 3D Secure call as it progresses. """ md: String """ A fully qualified URL that the customer will be redirected to once the authentication completes. """ termUrl: String """ A unique identifier used by the MPI provider to identify the 3D Secure interaction. The MPI provider provides the framework for determining if a card is enrolled in a 3D Secure program and for facilitating interactions with the issuer. """ transactionId: String } """ The shipping address of the transaction to be sent with 3D Secure Lookup requests. """ input ThreeDSecureLookupShippingAddressInput { """ The given (first) name associated with the shipping address used for verification. """ givenName: String """ The surname (last name) associated with the shipping address used for verification. """ surname: String """The shipping phone number used for verification.""" phoneNumber: String """Line 1 of the shipping address used for verification.""" line1: String """Line 2 of the shipping address used for verification.""" line2: String """Line 3 of the shipping address used for verification.""" line3: String """City or locality of shipping address used for verification.""" locality: String """State or region of shipping address used for verification.""" region: String """Country code of shipping address used for verification.""" countryCode: String """Postal code of shipping address used for verification.""" postalCode: String } """ Indicates the shipping method chosen for the transaction in the 3D Secure lookup. """ enum ThreeDSecureLookupShippingMethod { ELECTRONIC_DELIVERY GROUND OVERNIGHT_EXPEDITED PRIORITY SAME_DAY SHIP_TO_STORE } """ Additional information about the transaction when authenticating through 3D Secure. """ input ThreeDSecureLookupTransactionInformationInput { """The email associated with the transaction.""" email: String """ Indicates the shipping method chosen for the transaction in the 3D Secure lookup. """ shippingMethod: ThreeDSecureLookupShippingMethod """The phone number associated with the transaction.""" phoneNumber: String """The shipping address for the transaction.""" shippingAddress: ThreeDSecureLookupShippingAddressInput """The work phone number associated with the transaction.""" workPhoneNumber: String """Indicates the type of transaction.""" transactionType: ThreeDSecureAuthenticationTransactionType """Indicates the delivery timeframe if applicable.""" deliveryTimeframe: ThreeDSecureAuthenticationDeliveryTimeframe """ For electronic delivery, email address to which the product was delivered. """ deliveryEmail: String """Indicates shipping type chosen for the transaction.""" shippingType: ThreeDSecureAuthenticationShippingType """Merchant product code.""" productCode: ThreeDSecureAuthenticationMerchantProductCode """ Indicates whether the cardholder is reordering merchandise purchased in a previous order. """ reorderIndicator: Boolean """ Indicates whether cardholder is placing an order with a future availability or release date. """ preorderIndicator: Boolean """Expected date that a pre-ordered purchase will be available.""" preorderDate: Date """The purchase amount total for prepaid gift cards.""" giftCardAmount: Amount """ISO 4217 currency code for the gift card purchased.""" giftCardCurrencyCode: CurrencyCodeAlpha """Total count of individual prepaid gift cards purchased.""" giftCardCount: Int """ Indicates whether the cardholder created the account during this transaction. """ accountCreatedDuringTransaction: Boolean """Date the cardholder opened the account.""" accountCreateDate: Date """ Indicates whether the cardholder changed the account during this transaction. This includes changes to the billing or shipping address, new payment accounts or new users added. """ accountChangedDuringTransaction: Boolean """ Date the cardholder's account was last changed. This includes changes to the billing or shipping address, new payment accounts or new users added. """ accountChangeDate: Date """ Indicates whether the cardholder changed or reset the password on the account during this transaction. """ accountPasswordChangedDuringTransaction: Boolean """Date the cardholder changed or reset the password on the account.""" accountPasswordChangeDate: Date """ Indicates whether this transaction represents the first use of this shipping address. """ firstUseOfShippingAddress: Boolean """ Date when the shipping address used for this transaction was first used. """ shippingAddressFirstUsageDate: Date """ Number of transactions (successful or incomplete) for this cardholder account within the last 24 hours. """ transactionCountDay: Int """ Number of transactions (successful or incomplete) for this cardholder account within the last year. """ transactionCountYear: Int """ Number of attempts that have been made to add a card to this account in the last 24 hours. """ addCardAttempts: Int """ Number of purchases with this cardholder account during the previous six months. """ accountPurchases: Int """ Indicates whether the merchant experienced suspicious activity (including previous fraud) on the account. """ suspiciousActivityObserved: Boolean """ Indicates if the cardholder name on the account is identical to the shipping name used for the transaction. """ accountNameMatchesShippingName: Boolean """ Indicates whether the payment method was added to the cardholder account during this transaction. """ paymentMethodAddedDuringTransaction: Boolean """Date the payment method was added to the cardholder account.""" paymentMethodAddedToAccountDate: Date """ An override field that a merchant can pass in to set the challenge window size to display to the end cardholder. The ACS will reply with content that is formatted appropriately to this window size to allow for the best user experience. The sizes are width x height in pixels of the window displayed in the cardholder browser window. """ acsWindowSize: ThreeDSecureAuthenticationAcsWindowSize """ This field indicates the maximum amount of time for all 3DS 2.0 messages to be communicated between all components (in minutes). Minimum is 05. Defaults to 15. """ sdkMaxTimeout: Int """Indicates whether cardholder billing and shipping addresses match.""" billingAddressMatchesShippingAddress: Boolean """Additional cardholder account information.""" accountId: String """ The IP address of the cardholder. Both IPv4 and IPv6 formats are supported. """ ipAddress: String """Brief Description of items purchased.""" orderDescription: String """Tax amount.""" taxAmount: Amount """Information about the cardholder's browser.""" browserInformation: ThreeDSecureLookupBrowserInformationInput """ Indicates the maximum number of authorizations for installment payments. An integer value greater than 1 indicating the maximum number of permitted authorizations for installment payments. """ installment: Int """Datetime of original purchase.""" purchaseDate: Timestamp """ The date after which no further recurring authorizations should be performed. """ recurringEnd: Date """ Integer value indicating the minimum number of days between recurring authorizations. A frequency of monthly is indicated by the value 28. Multiple of 28 days will be used to indicate months. Example: 6 months = 168. """ recurringFrequency: Int """The channel for the transaction.""" deviceChannel: ThreeDSecureDeviceChannel } """3RI (3DS Requester Initiated) request.""" input ThreeDSecureMerchantInitiatedRequestInput { """The type of 3RI request.""" requestType: ThreeDSecureMerchantInitiatedRequestType! """Information about the customer-initiated 3DS.""" priorAuthentication: ThreeDSecurePriorAuthenticationInput! """ Directory server name of the merchant on whose behalf the customer-initiated 3DS was performed. Required when requestType is `PAYMENT_WITH_MULTIPLE_MERCHANTS`. """ merchantOnRecordName: String } """The 3D Secure Merchant Initiated Request Type.""" enum ThreeDSecureMerchantInitiatedRequestType { DELAYED_SHIPMENT INSTALLMENT PAYMENT_WITH_MULTIPLE_MERCHANTS RECURRING SPLIT_SHIPMENT } """Results of a merchant-performed 3D Secure authentication.""" input ThreeDSecurePassThroughInput { """ The value of the electronic commerce indicator (ECI) flag, which indicates the outcome of the 3D Secure authentication. """ eciFlag: ECommerceIndicator! """ Cardholder authentication verification value or CAVV. The main encrypted message issuers and card networks use to verify authentication has occurred. Mastercard uses an AVV (Authentication Verification Value) message and American Express uses an AEVV (American Express Verification Value) message, each of which should also be passed in the cavv parameter. """ cavv: String """ Transaction identifier resulting from 3D Secure authentication. Uniquely identifies the transaction and sometimes required in the authorization message. Must be base64-encoded. This field will no longer be used in 3D Secure 2 authentications. """ xId: String """ 3D Secure server transaction identifier resulting from 3D Secure authentication. """ threeDSecureServerTransactionId: String """ The version of 3D Secure authentication used for the transaction. Required on Visa and Mastercard authentications. """ version: ThreeDSecureVersion """The 3D Secure directory server response.""" directoryServerResponse: ThreeDSecureStatusCode """ The algorithm used to generate the CAVV value. This is only returned for Mastercard SecureCode transactions (3DS 1.0). """ cavvAlgorithm: ThreeDSecureCavvAlgorithm """ A unique identifier for the 3D Secure 2 interaction with the card brand directory server. This field must be supplied for Mastercard Identity Check. """ directoryServerTransactionId: String } """ The authentication details of the customer-initiated 3DS performed externally. """ input ThreeDSecurePriorAuthenticationDetailsInput { """The Directory Server Transaction ID of the customer-initiated 3DS.""" dsTransactionId: String """ The Access Control Server Transaction ID of the customer-initiated 3DS. """ acsTransactionId: String """Mechanism used to authenticate the customer-initiated 3DS.""" authenticationMethod: ThreeDSecurePriorAuthenticationMethod """DateTime of the customer-initiated 3DS.""" authenticationTime: Timestamp } """Information about the customer-initiated 3DS.""" input ThreeDSecurePriorAuthenticationInput { """ The authenticationId of the customer-initiated 3DS performed at Braintree. 255 characters maximum. """ authenticationId: String """ The authentication details of the customer-initiated 3DS performed externally. To be sent in lieu of authenticationId. """ authenticationDetails: ThreeDSecurePriorAuthenticationDetailsInput } """The 3D Secure Prior Authentication Method.""" enum ThreeDSecurePriorAuthenticationMethod { AVS_VERIFIED CHALLENGE FRICTIONLESS OTHER_ISSUER_METHOD } """A raw 3D Secure PARes or VARes response code (e.g. 'Y').""" scalar ThreeDSecureStatusCode """ A 3D Secure authentication version. Must be composed of digits separated by periods (e.g. '1.0.2'). """ scalar ThreeDSecureVersion """ An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Times) timestamp with microsecond precision, in UTC. """ scalar Timestamp """Configuration for Token Exchange.""" type TokenExchangeConfiguration { """ Whether or not Direct Network Tokenization is enabled for the merchant. """ enabled: Boolean } """Top-level input fields for tokenizing an Apple Pay card.""" input TokenizeApplePayCardInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Input fields for an Apple Pay payment token.""" applePaymentToken: ApplePaymentTokenInput! } """Top-level fields returned from a tokenized Apple Pay card.""" type TokenizeApplePayCardPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """A single-use payment method.""" paymentMethod: PaymentMethod """Type of the payment method.""" type: String } """Top-level input fields for tokenizing a credit card.""" input TokenizeCreditCardInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Input fields for a credit card.""" creditCard: CreditCardInput! """Credit card tokenization options.""" options: TokenizeCreditCardOptionsInput } """Credit card tokenization options.""" input TokenizeCreditCardOptionsInput { """ Whether to run validations on credit card fields. Validations are not run by default. """ validate: Boolean } """Top-level fields returned from a tokenized credit card.""" type TokenizeCreditCardPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """A one-time-use reference to tokenized sensitive information.""" token: String @deprecated(reason: "Use `paymentMethod.id` instead.") """Details about the tokenized card.""" creditCard: CreditCardDetails @deprecated(reason: "Use `paymentMethod.details` instead.") """A single-use payment method.""" singleUseToken: PaymentMethod @deprecated(reason: "Use `paymentMethod` instead.") """A single-use payment method.""" paymentMethod: PaymentMethod """ Information about the [customer authentication regulation environment](https://developer.paypal.com/braintree/docs/guides/3d-secure/authentication-insight/javascript/v3) that applies to the payment method when processed with the provided merchant account. This can be used to determine whether to perform 3D Secure authentication. """ authenticationInsight(input: AuthenticationInsightInput!): AuthenticationInsight @deprecated(reason: "Use paymentMethod.details.threeDSecure.authenticationInsight instead.") } """Top-level input fields for tokenizing Custom Actions.""" input TokenizeCustomActionsPaymentMethodInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Input fields for a Custom Actions payment method.""" customActionsPaymentMethod: CustomActionsPaymentMethodInput! } """ Top-level fields returned from tokenizing a CustomActionsPaymentMethod. """ type TokenizeCustomActionsPaymentMethodPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """A single-use payment method.""" paymentMethod: PaymentMethod } """ Top-level input fields for tokenizing a CVV, otherwise known as CSC or CVC. """ input TokenizeCvvInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ A 3 or 4 digit card verification value assigned to credit cards. The CVV will never be stored, but it can be provided with one-time requests to verify the card. """ cvv: CVV! } """Top-level fields returned from a tokenized CVV.""" type TokenizeCvvPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """A single-use tokenized CVV.""" tokenizedCvv: TokenizedCvv """A single-use payment method representing just a CVV.""" singleUseToken: PaymentMethod @deprecated(reason: "This mutation does not create a full PaymentMethod. Use `tokenizedCvv` instead.") } """ A single-use, tokenized value representing a CVV (card verification value), otherwise known as CSC or CVC. This cannot be charged or authorized, since it is not a payment method, but it can be used alongside a multi-use credit card payment method. """ type TokenizedCvv { """Unique identifier for the tokenized CVV.""" id: ID! } """Top-level input fields for tokenizing an EMV card.""" input TokenizeEmvCardInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Input fields for an EMV card.""" emvCard: EmvCardInput! """Metadata from the payment reader.""" paymentReaderMetadata: PaymentReaderMetadataInput! } """Top-level fields returned from a tokenized EMV card.""" type TokenizeEmvCardPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """A single-use payment method.""" paymentMethod: PaymentMethod } """Top-level input fields for tokenizing a magstripe card.""" input TokenizeMagstripeCardInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Input fields for a magstripe card.""" magstripeCard: MagstripeCardInput! """Metadata from the payment reader.""" paymentReaderMetadata: PaymentReaderMetadataInput! } """Top-level fields returned from a tokenized magstripe card.""" type TokenizeMagstripeCardPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """A single-use payment method.""" paymentMethod: PaymentMethod } """Top-level input field for tokenizing a network token.""" input TokenizeNetworkTokenInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Input fields for a network token object.""" networkToken: NetworkTokenInput! } """Top-level fields returned from a tokenized Network Token.""" type TokenizeNetworkTokenPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """A single-use payment method.""" paymentMethod: PaymentMethod } """Top-level input fields for tokenizing a PayPal account.""" input TokenizePayPalBillingAgreementInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ Braintree merchant account ID associated with the PayPal account to be used for the One-Time payment tokenization. """ merchantAccountId: ID """Input fields for a PayPal Billing Agreement.""" billingAgreement: PayPalBillingAgreementInput! } """Top-level fields returned from a tokenized PayPal account.""" type TokenizePayPalBillingAgreementPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """A single-use payment method.""" paymentMethod: PaymentMethod """ The URL to which the merchant should redirect the user after tokenizing the PayPal Billing Agreement. """ returnUrl: URL } """Top-level input fields for tokenizing a PayPal account.""" input TokenizePayPalOneTimePaymentInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ Braintree merchant account ID associated with the PayPal account to be used for the One-Time payment tokenization. """ merchantAccountId: ID """Input fields for a PayPal One-Time Payment.""" paypalOneTimePayment: PayPalOneTimePaymentInput! } """Top-level fields returned from a tokenized PayPal account.""" type TokenizePayPalOneTimePaymentPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """A single-use payment method.""" paymentMethod: PaymentMethod } """ Deprecated: Samsung pay is no longer supported. Top-level input field for tokenizing a Samsung Pay card. """ input TokenizeSamsungPayCardInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Input fields for a Samsung Pay card.""" samsungPayCard: SamsungPayCardInput! } """ Deprecated: Samsung pay is no longer supported. Top-level fields returned from a tokenized Samsung Pay card. """ type TokenizeSamsungPayCardPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """A one-time-use reference to tokenized sensitive information.""" singleUseToken: PaymentMethod @deprecated(reason: "Use `paymentMethod` instead.") """A single-use payment method.""" paymentMethod: PaymentMethod } """Top-level input fields for tokenizing a US bank account.""" input TokenizeUsBankAccountInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Input fields for a US bank account object.""" usBankAccount: UsBankAccountInput! } """Top-level fields returned from a tokenized US bank account.""" type TokenizeUsBankAccountPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """A single-use payment method.""" paymentMethod: PaymentMethod } """ Deprecated: US bank logins are no longer supported. Top-level input fields for tokenizing a US bank login. """ input TokenizeUsBankLoginInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Input fields for a US bank login.""" usBankLogin: UsBankLoginInput! } """Configuration for Tokens on Demand.""" type TokensOnDemandConfiguration { """Whether or not Tokens on Demand is enabled for the merchant.""" enabled: Boolean """Configuration for Token Exchange.""" tokenExchange: TokenExchangeConfiguration } """A charge on a payment method.""" type Transaction implements Node & Payment { """Unique identifier.""" id: ID! """Legacy unique identifier.""" legacyId: ID! """Date and time when the transaction was created.""" createdAt: Timestamp """ Snapshot of payment method details used to create the transaction, preserved at the time the transaction was created. This will always be present. """ paymentMethodSnapshot: PaymentMethodSnapshot """ The multi-use payment method associated with the transaction. Only present if a multi-use payment method was used to create the transaction and it has not been deleted. The details of this PaymentMethod may have changed since the transaction was created; details used for the transaction can be found in the `paymentMethodSnapshot` field. """ paymentMethod: PaymentMethod """ The amount charged in this transaction. For transactions that are partially captured, this amount will be the cummulative amount captured on this transaction. For transactions that are partially authorized, the amount will be less than the `initialRequestedAuthorizationAmount`. """ amount: MonetaryAmount """The initial requested authorization amount for this transaction.""" initialRequestedAuthorizationAmount: MonetaryAmount """ Collection of custom field/value pairs. Custom fields are [defined in the Control Panel](https://articles.braintreepayments.com/control-panel/custom-fields#store-and-pass-back-fields). """ customFields: [CustomField!] """The ID of the merchant that processed this transaction.""" merchantId: String """The ID of the merchant account that processed this transaction.""" merchantAccountId: ID """The display name of the merchant that processed this transaction.""" merchantName: String """The address of the merchant that processed this transaction.""" merchantAddress: Address """ The order ID for this transaction. For PayPal transactions, the PayPal Invoice ID. """ orderId: String """ A purchase order identification value you associate with this transaction. """ purchaseOrderNumber: String """The current status of this transaction.""" status: PaymentStatus """Fields describing the payment processor response.""" processorResponse: TransactionAuthorizationProcessorResponse @deprecated(reason: "Use relevant events in `statusHistory` or `processorAuthorizationResponse` instead.") """Fields describing the payment authorization processor response.""" processorAuthorizationResponse: TransactionAuthorizationProcessorResponse """Fields describing the payment settlement processor response.""" processorSettlementResponse: TransactionSettlementProcessorResponse """Risk data evaluated for this transaction.""" riskData: RiskData """ Fields used to define what will appear on customers' credit card statements for a specific purchase. """ descriptor: TransactionDescriptor """ The records of all statuses this transaction has passed through, with additional information on why each status occurred. Returned in reverse chronological order, with the most recent event first in the list. """ statusHistory: [PaymentStatusEvent!] """ If the transaction request was performed through a shopping cart provider or Braintree partner, this field will have a string identifier for that shopping cart provider or partner. For PayPal transactions, this maps to the PayPal account's bn_code. """ channel: String """How the transaction was created.""" source: PaymentSource """Customer associated with the transaction, if applicable.""" customer: Customer """Shipping information.""" shipping: TransactionShipping """Tax information.""" tax: TransactionTaxInformation """ The type of Strong Customer Authentication Exemption that was requested for this transaction. """ scaExemptionRequested: ScaExemptionType """Discount amount that was included in the total transaction amount.""" discountAmount: String """Line items for this transaction.""" lineItems: [TransactionLineItem!] """The list of refunds issued against this transaction.""" refunds: [Refund!] """ For transactions created or captured using the `partialCaptureTransaction` mutation. This field links a given transaction to its original authorization or all its partial captures. """ partialCaptureDetails: PartialCaptureDetails """A collection of disputes associated with the transaction.""" disputes: [Dispute!] """ If the transaction request was performed using payment information from a third party via the Grant API, Shared Vault or Google Pay, these fields will capture information about the third party. These fields are primarily useful for the merchant of record. """ facilitatorDetails: FacilitatorDetails """ The disbursement details associated with this transaction. This field is only available after the transaction is SETTLED and if you have an eligible merchant account. """ disbursementDetails: DisbursementDetails """The billing address associated with the transaction.""" billingAddress: Address """ A collection of AuthorizationAdjustments associated with the transaction. """ authorizationAdjustments: [AuthorizationAdjustment!] """ Whether or not the transaction was automatically retried by Braintree's internal systems. """ retried: Boolean """ If this transaction is an automatic retry of a previous, failed transaction, this is the parent transaction that was retried. """ retriedParentTransaction: Transaction """ If this transaction was automatically retried, this is a collection of all the retry transactions. """ retriedTransactions: [Transaction!] """The date an upcoming retry will be submitted, formatted `YYYY-MM-DD`.""" upcomingRetryDate: Date """Installment details associated with the transaction.""" installmentDetails: TransactionInstallmentDetails """ The transaction date and time as reported by the in-store payment terminal. """ paymentInitiatedAt: Timestamp """The processing mode of the transaction.""" processingMode: ProcessingMode """ Indicates whether the transaction has been authorized for an amount lower than the requested amount. """ partiallyAuthorized: Boolean } """ Record of processor response data received in response to authorization adjustment requests. """ type TransactionAuthorizationAdjustmentProcessorResponse { """ The [processor response code](https://developers.braintreepayments.com/reference/general/processor-responses/authorization-responses) indicating the result of attempting the adjustment. """ legacyCode: String """The text explanation of the processor response code.""" message: String """ Whether or not the decline is the result of a temporary issue. Only present if adjustment is declined. """ declineType: ProcessorDeclineType } """ Detailed response information from the processor when attempting to authorize a transaction. """ type TransactionAuthorizationProcessorResponse { """ A code based on the response from the processor, indicating the result of attempting to authorize this transaction. See the [list of possible processor response codes for authorization](https://developers.braintreepayments.com/reference/general/processor-responses/authorization-responses). """ legacyCode: String """The text explanation of the processor response legacyCode.""" message: String """The processing bank's response to the provided CVV.""" cvvResponse: AvsCvvResponseCode """ The processing bank's response to the provided billing postal or zip code. """ avsPostalCodeResponse: AvsCvvResponseCode """The processing bank's response to the provided billing street address.""" avsStreetAddressResponse: AvsCvvResponseCode """The processor's unique ID or "code" for the authorization.""" authorizationId: String """ If present, any additional information recieved from the processor. May provide further insight into the `legacyCode`. """ additionalInformation: String """The processor's reference number for the authorization.""" retrievalReferenceNumber: String """ Response EMV data provided by the processor if this was an EMV transaction. """ emvData: String } """A paginated list of transactions.""" type TransactionConnection { """A list of transactions.""" edges: [TransactionConnectionEdge] """Information about the page of transactions contained in `edges`.""" pageInfo: PageInfo! } """A transaction within a TransactionConnection.""" type TransactionConnectionEdge { """ This transaction's location within the TransactionConnection. Used for requesting additional pages. """ cursor: String """The transaction.""" node: Transaction } """ Customer details to be stored on the transaction itself, if the transaction is not associated with a customer. Used for fraud detection purposes. """ input TransactionCustomerDetailsInput { """Email address for the customer.""" email: String """Phone number for the customer.""" phoneNumber: String } """ Fields used to define what will appear on a customer's bank statement for a specific purchase. """ type TransactionDescriptor { """The value in the business name field of a customer's statement.""" name: String """The value in the phone number field of a customer's statement.""" phone: String """The value in the URL/web address field of a customer's statement.""" url: String } """ Fields used to define what will appear on a customer's bank statement for a specific purchase. """ input TransactionDescriptorInput { """The value in the business name field of a customer's statement.""" name: String """The value in the phone number field of a customer's statement.""" phone: String """The value in the URL/web address field of a customer's statement.""" url: String } """ Input for transactions created with credit cards vaulted in an external vault, not the Braintree Vault. Do not use for transactions created from Braintree multi-use payment methods, or from single-use payment methods which will not be stored in an external vault. """ input TransactionExternalVaultOptionsInput { """The credit card's assocation with an external vault.""" status: ExternalVaultStatus! """ The network transaction ID of the first _transaction_ after which this payment method was stored in the external vault. If the `status` is `WILL_VAULT`, do not pass this value; the network transaction ID of the resulting transaction can be passed in this field for _subsequent_ transactions. If the `status` is `VAULTED`, but the customer is directly initiating the charge, do not pass this value. """ verifyingNetworkTransactionId: String } """ Input fields for industry data. Only one of the input fields may be provided. """ input TransactionIndustryInput { """Input fields for lodging data.""" lodging: IndustryLodgingInput """Input fields for cruise data.""" cruise: IndustryCruiseInput """Input fields for flight data.""" flight: IndustryFlightInput } """Input fields for creating a transaction.""" input TransactionInput { """ 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. """ amount: Amount! """ 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. """ merchantAccountId: ID """ 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. """ orderId: String """ID of exchange rate quote to be used for the transaction.""" exchangeRateQuoteId: ID """ A purchase order identification value you associate with this transaction. *Required for Level 2 processing*. """ purchaseOrderNumber: String """ Customer device information, which is sent directly to supported processors for fraud analysis. """ riskData: RiskDataInput """ 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. """ customFields: [CustomFieldInput!] """ Fields used to define what will appear on a customer's bank statement for a specific purchase. """ descriptor: TransactionDescriptorInput """ The initiator of the payment. Payment can either be merchant-initiated or customer-initiated. If the transaction is an ecommerce transaction initiated by the customer, no value is passed. """ paymentInitiator: PaymentInitiator """ 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. """ channel: String """ 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. """ customerId: ID """ Shipping information. *Required for Level 3 processing*. """ shipping: TransactionShippingInput """ Tax information about the transaction. *Required for Level 2 processing*. """ tax: TransactionTaxInput """ 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*. """ discountAmount: String """ Line items for this transaction. Up to 249 line items may be specified. *Required for Level 3 processing*. """ lineItems: [TransactionLineItemInput!] """ 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. """ vaultPaymentMethodAfterTransacting: VaultPaymentMethodAfterTransactingInput """ Customer information to be stored on the transaction and used for fraud protection. Use this if you wish to pass customer information on a transaction without creating an independent stored customer record in the vault. This parameter can only be used if you do not pass `customerId`, and if you are not using a vaulted/multi-use payment method. In other words, this field is only valid when the transaction will not be associated with an existing customer. If `vaultPaymentMethodAfterTransacting` is also passed, these values will be used when creating a new customer for the newly-vaulted payment method. """ customerDetails: TransactionCustomerDetailsInput """ The values provided will take precedence over any similar fields, and will only be used for processing. These values will not update any similar fields and will not be returned in responses. """ processingOverrides: TransactionProcessingOverridesInput """ Industry data information. Only one of the three sub-input fields can be provided. """ industry: TransactionIndustryInput """ Controls whether to allow partial authorizations (or "partial approvals") for this transaction. Defaults to false. """ acceptPartialAuthorization: Boolean """Details of the Payment Facilitator (mandatory for PayFac Merchants).""" paymentFacilitator: PaymentFacilitatorInput """ Merchant Category Code (MCC) used to classify the type of business associated with this transaction. Defaults to merchant account's configured MCC unless explicitly overridden during transaction creation. """ merchantCategoryCode: MerchantCategoryCode } """Transaction Installment information.""" type TransactionInstallment { """Installment ID.""" id: ID! """ The projected date for the funds associated with this installment to be disbursed. """ projectedDisbursementDate: Date """ The date that the funds associated with this installment were actually disbursed. """ actualDisbursementDate: Date """ Installment amount.The total transaction amount is split equally into each installment. """ amount: Amount """List of adjustments associated with the installment.""" adjustments: [TransactionInstallmentAdjustment!] } """Adjustment information.""" type TransactionInstallmentAdjustment { """ The projected date for the funds associated with the adjustements to be disbursed. """ projectedDisbursementDate: Date """ The date that the funds associated with this adjustments were actually disbursed. """ actualDisbursementDate: Date """Adjustment amount for the installment.""" amount: Amount """Transaction Installment Adjustment type.""" type: TransactionInstallmentAdjustmentType! } """ Transaction Installment Adjustment type to indicate the reason for the adjustment. """ enum TransactionInstallmentAdjustmentType { """Dispute.""" DISPUTE """Refund.""" REFUND } """Installment details for the transaction.""" type TransactionInstallmentDetails { """The installment count associated with the transaction.""" count: String """List of installments associated with the transaction.""" installments: [TransactionInstallment!] } """ The [transaction-level fee report](https://articles.braintreepayments.com/control-panel/reporting/transaction-level-fee-report) provides a breakdown of fees per individual transactions and refunds. This type is no longer in use; see `PaymentLevelFeeReport` instead. """ type TransactionLevelFeeReport { """The URL where you can access the requested report.""" url: String } """Data for individual line items on a transaction.""" type TransactionLineItem { """Item name.""" name: String """Indicates whether the line item is a sale or refund.""" kind: TransactionLineItemType """Number of units of the item purchased.""" quantity: String """Per-unit price of the item.""" unitAmount: String """ Total price amount for the line item, i.e. quantity multiplied by unit amount. """ totalAmount: String """Per-unit tax price of the item.""" unitTaxAmount: String """Tax amount for the line item.""" taxAmount: String """The discount amount of the line item.""" discountAmount: String """The unit of measure or the unit of measure code.""" unitOfMeasure: String """Product or UPC code for the item.""" productCode: String """ Code used to classify items purchased and track the total amount spent across various categories of products and services. Different corporate purchasing organizations may use different standards, but the [United Nations Standard Products and Services Code (UNSPSC)](https://www.unspsc.org/) is frequently used. """ commodityCode: String """Item description.""" description: String """The URL to product information.""" url: String """The type of the line item, i.e., physical, digital etc.""" itemType: String """URL to an image that represents the product. Max 1024 characters.""" imageUrl: String """UPC of the line item.""" upc: LineItemUpc } """Data for individual line items on a transaction.""" input TransactionLineItemInput { """ Item name. Maximum 35 characters, or 127 characters for PayPal transactions. *Required for Level 3 processing*. """ name: String! """ Indicates whether the line item is a sale or refund. *Required for Level 3 processing*. """ kind: TransactionLineItemType! """ Number of units of the item purchased. Can include up to 4 decimal places. This value can't be negative or zero. *Required for Level 3 processing*. """ quantity: String! """ Per-unit price of the item. Maximum 4 decimal places, or 2 decimal places for PayPal transactions. This value can't be negative or zero. *Required for Level 3 processing*. """ unitAmount: String! """ Total price amount for the line item: quantity multiplied by unitAmount. Can include up to 2 decimal places. *Required for Level 3 processing*. """ totalAmount: String! """ Per-unit tax price of the item. Can include up to 2 decimal places. This value can't be negative or zero. *Required for Level 3 processing*. """ unitTaxAmount: String """ Tax amount for the line item. Can include up to 2 decimal places. This value can't be negative. *Required for Level 3 processing*. """ taxAmount: String """ Amount of discount for the line item. Can include up to 2 decimal places. This value can't be negative. Please note that this field is not used on PayPal transactions. *Required for Level 3 processing*. """ discountAmount: String """ The unit of measure or the unit of measure code. Maximum 12 characters. *Required for Level 3 processing*. """ unitOfMeasure: String """ Product or UPC code for the item. Maximum 12 characters, or 127 characters for PayPal transactions. *Required for Level 3 processing*. """ productCode: String """ Code used to classify items purchased and track the total amount spent across various categories of products and services. Different corporate purchasing organizations may use different standards, but the [United Nations Standard Products and Services Code (UNSPSC)](https://www.unspsc.org/) is frequently used. Maximum 12 characters. *Required for Level 3 processing*. """ commodityCode: String """ Item description. Maximum 127 characters. *Required for Level 3 processing*. """ description: String """ A URL to information about the product. *Required for Level 3 processing*. """ url: String """The type of the line item, i.e., physical, digital etc.""" itemType: String """URL to an image that represents the product. Max 1024 characters.""" imageUrl: String """UPC of the line item.""" upc: LineItemUpcInput } """ Indicates whether a transaction line item is a debit (sale) or credit (refund). """ enum TransactionLineItemType { CREDIT DEBIT } """Data for an individual package tracker on a PayPal transaction.""" type TransactionPackageTracker { """Unique identifier for the tracker.""" id: ID """Tracking number for this package.""" trackingNumber: String """Shipping carrier.""" carrier: String """ PayPal assigned identifier for this tracker. This field may not be immediately available, but will be available when querying the transaction at a later time. This field is only available for PayPal transactions. """ paypalTrackerId: String } """ Data for individual line items for adding package trackers for transactions. """ input TransactionPackageTrackingLineItemInput { """Item name. Maximum 127 characters.""" name: String! """ Number of units of the item purchased. Can include up to 4 decimal places. This value can't be negative or zero. """ quantity: String! """Product code(SKU) for the item.""" productCode: String """Item description.""" description: String """A URL to information about the product.""" url: URL """URL to an image that represents the product.""" imageUrl: URL """UPC of the line item.""" upc: LineItemUpcInput } """Top-level output field from creating a transaction.""" type TransactionPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The transaction representing the charge on the payment method.""" transaction: Transaction } """ Processing overrides are additional data fields to be used only for processing. Provided values will take precedence over any similar fields(e.g. `processingOverrides.customerEmail` takes precedence over the vaulted customer's email address). However, these values will not update any similar fields (e.g. providing `processingOverrides.customerEmail` will not update a vaulted customer's email address). These values are not returned in responses. """ input TransactionProcessingOverridesInput { """Customer's email address to be used by the processor.""" customerEmail: String """Customer's first name to be used by the processor.""" customerFirstName: String """Customer's last name to be used by the processor.""" customerLastName: String """ Customer's tax identifier to be used by the processor. It is the social security number analogue for the corresponding country. """ customerTaxIdentifier: String } """ A union of all possible results of a transaction reversal. If the transaction is settled, a refund will be issued and a Refund object will be returned. Otherwise, the transaction will be voided and a Transaction object will be returned. """ union TransactionReversal = Refund | Transaction """Top-level fields returned from a transaction risk context.""" type TransactionRiskContextPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ The identifier of the transaction risk context, to be used as the Client Metadata ID. """ clientMetadataId: ID @deprecated(reason: "Use `paypalRiskCorrelationId` for clientMetadataId instead.") """ The identifier of the transaction risk context, to be used as the Client Metadata ID. """ paypalRiskCorrelationId: ID } """Input fields used to define a transaction for risk evaluation.""" input TransactionRiskEvaluateInput { """Amount of a transaction under risk evaluation.""" amount: MonetaryAmountInput! """The payment processor handling the transaction.""" externalProcessor: ExternalProcessor """ 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. """ orderId: String """ Customer device information, which is sent directly for fraud analysis. """ riskData: RiskDataInput """ 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. """ customFields: [CustomFieldInput!] """ The initiator of the payment. Payment can either be merchant-initiated or customer-initiated. If the transaction is an ecommerce transaction initiated by the customer, no value is passed. """ paymentInitiator: PaymentInitiator """ 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. """ customerId: ID """ Customer information to be stored on the transaction and used for fraud protection. Use this if you wish to pass customer information on a transaction without creating an independent stored customer record in the vault. This parameter can only be used if you do not pass `customerId`, and if you are not using a vaulted/multi-use payment method. In other words, this field is only valid when the transaction will not be associated with an existing customer. """ customerDetails: TransactionCustomerDetailsInput """Shipping address for the transaction.""" shippingAddress: AddressInput """Billing address for the transaction.""" billingAddress: AddressInput """ Line items for this transaction. Up to 249 line items may be specified. *Required for Level 3 processing*. """ lineItems: [TransactionLineItemInput!] } """Top-level output field from evaluating risk for a transaction.""" type TransactionRiskEvaluatePayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Risk data evaluated for this transaction.""" riskData: RiskData } """Input fields for searching for transactions.""" input TransactionSearchInput { """Find transactions with an ID or IDs.""" id: SearchValueInput """Find transactions with a given transaction status.""" status: SearchTransactionStatusInput """ Find transactions based on the given transaction status transition times. """ statusTransition: SearchTransactionStatusTransitionInput """Find transactions based on the time they were created.""" createdAt: SearchTimestampInput """Find transactions for a given amount or currency.""" amount: MonetaryAmountSearchInput """Find transactions with a given orderId.""" orderId: SearchTextInput """Find payments processed through a merchant account ID or IDs.""" merchantAccountId: SearchPaymentMerchantAccountIdInput """Find transactions with a given customer.""" customer: SearchPaymentCustomerInput """ Find transactions created by charging payment methods of the given type. """ paymentMethodSnapshotType: SearchPaymentMethodSnapshotTypeInput """ Find transactions by their disbursement date. Only use this search criteria if you have an eligible merchant account. Note that transactions can only be disbursed after they reach the SETTLED status. """ disbursementDate: SearchDateInput """Find transactions created with a given transaction source.""" source: SearchTransactionSourceInput """ Find transactions by the batch ID under which the transaction was submitted for settlement. """ settlementBatchId: SearchTextInput """ Find transactions based on information about the payment method used for the transaction. """ paymentMethod: SearchPaymentPaymentMethodInput """ Find transactions created by a third party via the Grant API using a given OAuth application client ID. """ facilitatorOAuthApplicationClientId: SearchValueInput """Find transactions with a user ID or IDs.""" userId: SearchValueInput """ Find transactions by the ID of the store that the transaction was processed in. """ storeId: SearchValueInput """Find transactions by the reader ID.""" readerId: SearchValueInput """Find transactions by the shipping address.""" shippingAddress: SearchAddressInput """Find transactions by the billing address.""" billingAddress: SearchAddressInput """Find transactions by dispute received date.""" disputeReceivedDate: SearchDateInput """Find transactions by the processor authorization code.""" processorAuthorizationId: SearchTextInput """Find fully or partially authorized transactions.""" partiallyAuthorized: Boolean """Find transactions by the processing mode.""" processingMode: SearchProcessingModeInput } """ Detailed response information from the processor when attempting to settle a transaction. """ type TransactionSettlementProcessorResponse { """ A code based on the response from the processor, indicating the result of attempting to settle this transaction. See the [list of possible processor response codes for settlement](https://developers.braintreepayments.com/reference/general/processor-responses/settlement-responses). """ legacyCode: String """The text explanation of the processor response legacyCode.""" message: String """The processing bank's response to the provided CVV.""" cvvResponse: AvsCvvResponseCode @deprecated(reason: "AVS and CVV checks do not take place when capturing a transaction, only when authorizing. Use the `processorResponse` on an authorization-related `PaymentStatusEvent` instead.") """ The processing bank's response to the provided billing postal or zip code. """ avsPostalCodeResponse: AvsCvvResponseCode @deprecated(reason: "AVS and CVV checks do not take place when capturing a transaction, only when authorizing. Use the `processorResponse` on an authorization-related `PaymentStatusEvent` instead.") """The processing bank's response to the provided billing street address.""" avsStreetAddressResponse: AvsCvvResponseCode @deprecated(reason: "AVS and CVV checks do not take place when capturing a transaction, only when authorizing. Use the `processorResponse` on an authorization-related `PaymentStatusEvent` instead.") """The ACH return code, if applicable.""" achReturnCode: String """The ACH reject reason, if applicable.""" achRejectReason: String } """Information related to shipping a physical product.""" type TransactionShipping { """Shipping address information.""" shippingAddress: Address """The shipping cost of the entire transaction.""" shippingAmount: Amount """The postal code of the source shipping location.""" shipsFromPostalCode: String """The shipping method.""" shippingMethod: TransactionShippingMethod """Shipment package trackers for PayPal transactions.""" packageTrackers: [TransactionPackageTracker!] """Shipping tax amount on the entire transaction.""" shippingTaxAmount: Amount } """Information related to shipping a physical product.""" input TransactionShippingInput { """ Shipping destination address information. *Required for Level 3 processing*. """ shippingAddress: AddressInput """ Shipping cost on the entire transaction. *Required for Level 3 processing*. """ shippingAmount: String """ The postal code of the source shipping location, in any country's format. *Required for Level 3 processing*. """ shipsFromPostalCode: String """The shipping method.""" shippingMethod: TransactionShippingMethod """ Shipping tax amount on the entire transaction. *Required for Level 3 processing*. """ shippingTaxAmount: String } """Shipping method.""" enum TransactionShippingMethod { ELECTRONIC GROUND NEXT_DAY PICKUP_IN_STORE PRIORITY SAME_DAY SHIP_TO_STORE } """Information related to taxes on the transaction.""" type TransactionTaxInformation { """The amount of tax that was included in the total transaction amount.""" taxAmount: Amount """ Whether the transaction should be considered eligible for tax exemption. """ taxExempt: Boolean } """Information related to taxes on the transaction.""" input TransactionTaxInput { """ Amount of tax that was included in the total transaction amount. Does not add to the total amount the payment method will be charged. *Required for Level 2 processing* unless `taxExempt` is `true`. """ taxAmount: Amount """ Whether the transaction should be considered eligible for tax exemption. *Required for Level 2 processing*. """ taxExempt: Boolean } """Indicates the transfer type for AFT and SDWO transactions.""" enum TransactionTransferType { """ Moving funds between a user's accounts at the same or a different financial institution. This transfer type is available for both AFT and SDWO (Brazil only). """ ACCOUNT_TO_ACCOUNT """ Paying a bill (identified/unidentified). This transfer type is used for SDWO (Brazil only). """ BOLETO_TICKET """ Payout where a third party uses an Account Funding Transaction(AFT) to fund the disbursement of an Original Credit Transaction(OCT). This transfer type is used in AFT only. """ FUND_DISBURSEMENT """ Adding funds to or cashing out of a stored value digital wallet. This transfer type is used in AFT only. """ FUND_TRANSFER """ Payroll disbursement on behalf of a merchant, when done by a payroll provider. This transfer type is used in AFT only. """ PAYROLL_DISBURSEMENT """ Moving funds to another individual's non-merchant account. This transfer type is available for both AFT and SDWO (Brazil only). """ PERSON_TO_PERSON """ Bank initiated, person to person money transfer that is offered by a financial institution for AFT only. """ PERSON_TO_PERSON_BANK_INITIATED """ Prepaid card load or top up, adding value to an eligible prepaid card or funding a user's prepaid account. This transfer type is used in AFT only. """ PREPAID_TOP_UP """ Adding value to a merchant's staged digital wallet. This transfer type is available for both AFT and SDWO (Brazil only). """ WALLET_TRANSFER } """Configuration for UnionPay cards.""" type UnionPayConfiguration { """The Braintree merchant account ID with UnionPay processing enabled.""" merchantAccountId: String } """Input fields for unregistering a domain from Apple Pay.""" input UnregisterApplePayDomainInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ Domain to unregister from Apple Pay. Must be a domain name as defined by the Domain Name System (DNS), e.g. "example.com". """ domain: String! } """Top-level field returned when unregistering a domain from Apple Pay.""" type UnregisterApplePayDomainPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String } """The type of UPC(Universal Product Code).""" enum UpcType { UPC_2 UPC_5 UPC_A UPC_B UPC_C UPC_D UPC_E } """ Top-level input fields for updating a multi-use credit card to use a new billing address. """ input UpdateCreditCardBillingAddressInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ The multi-use credit card for which the billing address will be updated or added. """ paymentMethodId: ID! """The new billing address.""" billingAddress: AddressInput """ Input fields that specify options for verifying the credit card with the new billing address. By default, a verification will be performed. If the verification fails, the update will not be performed. """ verification: CreditCardVerificationOptionsInput } """ Top-level fields returned when updating a multi-use credit card to a new billing address. """ type UpdateCreditCardBillingAddressPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The multi-use payment method which was updated.""" paymentMethod: PaymentMethod """ The new billing address. Will be `null` if a failed verification prevented the update. """ billingAddress: Address @deprecated(reason: "Use `paymentMethod.details.billingAddress` instead.") """ The verification that was run on the payment method prior to updating the billing address, if present. """ verification: Verification } """ Top-level input fields for updating a multi-use credit card to use a new cardholder name. """ input UpdateCreditCardCardholderNameInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ The multi-use credit card for which the expiration date will be updated or added. """ paymentMethodId: ID! """ The new cardholder name that will be added to the multi-use credit card. """ cardholderName: String! """ Input fields that specify options for verifying the credit card with the new billing address. By default, a verification will be performed. If the verification fails, the update will not be performed. """ verification: CreditCardVerificationOptionsInput } """ Top-level fields returned when updating a multi-use credit card to a new cardholder name. """ type UpdateCreditCardCardholderNamePayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """A single-use payment method.""" paymentMethod: PaymentMethod """ The verification that was run on the payment method prior to updating the cardholder name, if present. """ verification: Verification } """ Top-level input fields for updating a multi-use credit card to use a new expiration date. """ input UpdateCreditCardExpirationDateInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ The multi-use credit card for which the expiration date will be updated or added. """ paymentMethodId: ID! """ The new four-digit year associated with a credit card, formatted `YYYY`. """ expirationYear: Year """The new expiration month of a credit card, formatted `MM`.""" expirationMonth: Month """ Input fields that specify options for verifying the credit card with the new billing address. By default, a verification will be performed. If the verification fails, the update will not be performed. """ verification: CreditCardVerificationOptionsInput } """ Top-level fields returned when updating a multi-use credit card to a new expiration date. """ type UpdateCreditCardExpirationDatePayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """A single-use payment method.""" paymentMethod: PaymentMethod """ The verification that was run on the payment method prior to updating the expiration date, if present. """ verification: Verification } """Top-level field for updating a customer.""" input UpdateCustomerInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the customer to be updated.""" customerId: ID! """Input fields for the updates to be made on the customer.""" customer: CustomerInput } """Top-level fields returned when updating a customer.""" type UpdateCustomerPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """Information about the customer that was updated.""" customer: Customer } """ Input for creating or updating custom fields on a transaction or a refund. """ input UpdateCustomFieldsInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The ID of the transaction or the refund to update.""" id: ID! """ The list of custom fields to update. 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. """ customFields: [CustomFieldInput!]! } """ Top-level output field from updating custom fields for a specific transaction or a refund. """ type UpdateCustomFieldsPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ A list of all custom fields on the updated transaction or refund. Custom fields are [defined in the Control Panel](https://articles.braintreepayments.com/control-panel/custom-fields#store-and-pass-back-fields). """ customFields: [CustomField!] } """Input fields for storing EMV data required for capture requests.""" input UpdateEmvCaptureDataInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The transaction id.""" transactionId: ID! """EMV data.""" emvData: String! } """Input fields for updating an in-store location.""" input UpdateInStoreLocationInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the location to be updated.""" locationId: ID! """Input fields to update an in-store location.""" location: InStoreLocationUpdateInput! } """Top-level fields returned when updating an in-store location.""" type UpdateInStoreLocationPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The in-store location.""" location: InStoreLocation } """Input fields for updating an in-store reader.""" input UpdateInStoreReaderInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The ID of the in-store reader to update.""" readerId: ID! """The new name for the in-store reader.""" name: String """The new location ID for the in-store reader.""" locationId: ID } """ Operation type for updating recurring billing subscription modifications (add-ons and discounts). """ enum UpdateModificationOperation { ADD EDIT REMOVE } """Input fields for updating a PayPal one-time payment.""" input UpdatePayPalOneTimePaymentInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The payment method ID of the PayPal payment to update.""" paymentMethodId: ID! """Total amount for the payment.""" amount: MonetaryAmountInput """The amount breakdown for this transaction.""" amountBreakdown: PayPalAmountBreakDownInput """The line items for this payment.""" lineItems: [PayPalLineItemInput!] """ List of shipping options offered by the payee or merchant to the payer to ship or pick up their items. """ shippingOptions: [PayPalShippingOptionInput!] """Shipping address.""" shippingAddress: AddressInput """Custom field for merchant tracking.""" customField: String """Description shown in PayPal emails.""" description: String """ The PayPal invoice number. It must be unique in your PayPal business account and can contain a maximum of 127 characters. If specified, transactions created from the resulting payment method will have this orderId. """ orderId: String """Email address of the payee.""" payeeEmail: EmailAddress } """The result of updating a PayPal one-time payment.""" type UpdatePayPalOneTimePaymentPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The updated payment method containing the new payment method ID.""" paymentMethod: PaymentMethod } """ Input for managing add-ons when updating a recurring billing subscription plan. """ input UpdateRecurringBillingSubscriptionPlanAddOnInput { """The operation to perform.""" action: UpdateModificationOperation! """ The ID of the add-on. For ADD, this is the template ID. For EDIT and REMOVE, this is the existing add-on ID on the plan. """ addOnId: ID! """The amount for this add-on.""" amount: Amount """The name of the add-on.""" name: String """A description of the add-on.""" description: String """ The number of times the billing cycle will be executed. For ADD, omit to inherit from the template. For EDIT, omit to keep the current value. """ numberOfBillingCycles: Int } """ Input for managing discounts when updating a recurring billing subscription plan. """ input UpdateRecurringBillingSubscriptionPlanDiscountInput { """The operation to perform.""" action: UpdateModificationOperation! """ The ID of the discount. For ADD, this is the template ID. For EDIT and REMOVE, this is the existing discount ID on the plan. """ discountId: ID! """The amount for this discount.""" amount: Amount """The name of the discount.""" name: String """A description of the discount.""" description: String """ The number of times the billing cycle will be executed. For ADD, omit to inherit from the template. For EDIT, omit to keep the current value. """ numberOfBillingCycles: Int } """ Top-level input fields for updating a recurring billing subscription plan. """ input UpdateRecurringBillingSubscriptionPlanInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The plan's identifier.""" id: ID! """The name of the plan.""" name: String """A description of the plan.""" description: String """The base price and currency for the plan.""" monetaryAmount: MonetaryAmountInput """The day of the month the subscription is billed.""" billingDayOfMonth: Int """Specifies the billing interval of the plan.""" billingFrequency: Int """ The number of times the billing cycle will be executed. A value of 0 indicates the plan never expires. """ numberOfBillingCycles: Int """Trial period configuration for the plan.""" trial: RecurringBillingSubscriptionTrialInput """ The collection of add-on and discount IDs to associate with this plan. These reference existing add-on and discount templates. Ignored if either add-ons or discounts are provided. """ modificationIds: [ID!] """ Operations for managing add-ons on this plan. Takes precedence over modificationIds. """ addOns: [UpdateRecurringBillingSubscriptionPlanAddOnInput!] """ Operations for managing discounts on this plan. Takes precedence over modificationIds. """ discounts: [UpdateRecurringBillingSubscriptionPlanDiscountInput!] } """Top-level input fields for a updating a transaction's amount.""" input UpdateTransactionAmountInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the transaction on which to perform the adjustment.""" transactionId: ID! """ The new total amount to be authorized on a transaction. This value must be greater than 0, and must match the currency format of the merchant account, and cannot be greater than the maximum allowed by the processor. """ amount: Amount! } """ Deprecated: `UpdateTransactionCustomFields` mutation is no longer supported, please use `UpdateCustomFields` mutation instead. Input for creating or updating custom fields on a transaction. """ input UpdateTransactionCustomFieldsInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The ID of the transaction to update.""" transactionId: ID! """ The list of custom fields to update. 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. """ customFields: [CustomFieldInput!]! } """ Deprecated: `UpdateTransactionCustomFields` mutation is no longer supported, please use `UpdateCustomFields` mutation instead. Top-level output field from updating custom fields for a specific transaction. """ type UpdateTransactionCustomFieldsPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ A list of all custom fields on the updated transaction. Custom fields are [defined in the Control Panel](https://articles.braintreepayments.com/control-panel/custom-fields#store-and-pass-back-fields). """ customFields: [CustomField!] } """ A URL string pattern: `[a-zA-Z0-9+-.]:\\/\\/([-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.?[a-z]{2,4}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*))?` """ scalar URL """Details about the customer's acceptance of ACH terms.""" type UsBankAccountAchMandate { """Deprecated, The text the customer agreed to when setting up ACH.""" acceptanceText: String @deprecated(reason: "Acceptance text no longer returned.") """Date and time when the text terms were accepted.""" acceptedAt: Timestamp } """ A billing address for a US bank account. This is a subset of the fields required on `AddressInput`. """ input UsBankAccountBillingAddressInput { """The street address.""" streetAddress: String! """The extended address information—such as an apartment or suite number.""" extendedAddress: String """The city.""" city: String! """The state.""" state: UsStateCode! """The ZIP code.""" zipCode: UsZipCode! } """The name of the owner of a business US bank account.""" input UsBankAccountBusinessOwnerInput { """The name of the business that owns the account.""" businessName: String! } """Configuration for US bank account processing.""" type UsBankAccountConfiguration { """The route ID used to process a US bank account payment.""" routeId: String """The public key for Plaid to use to log in to a bank account.""" plaidPublicKey: String @deprecated(reason: "US bank logins are no longer supported.") } """Details about a US bank account.""" type UsBankAccountDetails { """ The name of the accountholder. This is either the business name for a business account, or the owner's full name for an individual account. """ accountholderName: String """The bank account type.""" accountType: UsBankAccountType """The ownership type of the account, i.e. business or personal.""" ownershipType: UsBankAccountOwnershipType """The name of the bank at which the account exists.""" bankName: String """The last four digits of the bank account number.""" last4: String """The routing number of the bank.""" routingNumber: String """ Whether or not the bank account has been verified and can be transacted on. """ verified: Boolean """NACHA-mandated proof of acceptance of ACH terms.""" achMandate: UsBankAccountAchMandate """The ACH return code, if applicable.""" achReturnCode: String @deprecated(reason: "Moved to Transaction level for semantic correctness. Check for processorSettlementResponse field in Transaction instead.") """The ACH reject reason, if applicable.""" achRejectReason: String @deprecated(reason: "Moved to Transaction level for semantic correctness. Check for processorSettlementResponse field in Transaction instead.") } """The name of the owner of a personal US bank account.""" input UsBankAccountIndividualOwnerInput { """The first name of the accountholder.""" firstName: String! """The last name of the accountholder.""" lastName: String! } """Input fields for a US bank account object.""" input UsBankAccountInput { """The account number of the bank account.""" accountNumber: UsBankAccountNumber! """The routing number of the bank that holds the account.""" routingNumber: UsBankRoutingNumber! """The type of account.""" accountType: UsBankAccountType! """ Information about the business that owns the account. This should only be specified for business accounts. """ businessOwner: UsBankAccountBusinessOwnerInput """ Information about the individual that owns the account. This should only be specified for individual accounts. """ individualOwner: UsBankAccountIndividualOwnerInput """The billing address of the account.""" billingAddress: UsBankAccountBillingAddressInput """ Language used to prove that you have the customer's explicit permission to debit their bank account. """ achMandate: String! } """An account number containing 1-17 digits.""" scalar UsBankAccountNumber """The ownership type of US Bank Account.""" enum UsBankAccountOwnershipType { BUSINESS PERSONAL } """ Details specific to a US bank account transaction. Available for PaymentMethodSnapshot when Braintree-Version is 2026-02-18 or later. For earlier versions, PaymentMethodSnapshot returns UsBankAccountDetails instead. """ type UsBankAccountTransactionDetails { """The US bank account details.""" usBankAccount: UsBankAccountDetails """The ACH type used for the transaction.""" achType: ACHType """The ACH type that was originally requested for the transaction.""" requestedAchType: ACHType } """The type of US Bank Account.""" enum UsBankAccountType { CHECKING SAVINGS } """ Additional verifications for UsBankAccountVerificationMethod of type Network Check. See our [ACH guide](https://articles.braintreepayments.com/guides/payment-methods/ach#verification-methods). """ enum UsBankAccountVerificationAddOn { """Additional verification via customer information.""" CUSTOMER_VERIFICATION } """ Information specific to verifications of US bank account payment methods. """ type UsBankAccountVerificationDetails { """Type of US bank account verification performed.""" method: UsBankAccountVerificationMethod """ Time at which the verification was determined to be successful or not. If successful, at this time the payment method will be marked `verified` and you will be able to charge it. """ verificationDeterminedAt: Timestamp } """ The type of verification on a US bank account payment method. See our [ACH guide](https://articles.braintreepayments.com/guides/payment-methods/ach#verification-methods). """ enum UsBankAccountVerificationMethod { """ Verification conducted independently by the merchant, not through Braintree. """ INDEPENDENT_CHECK """ Instant Verification at the point when payment method is charged or vaulted. """ INSTANT_VERIFICATION_ACCOUNT_VALIDATION """ Verification by micro-deposits transferred to the bank account, which the customer must then confirm. The most reliable method, but takes additional time. """ MICRO_TRANSFERS """ Verification via account information. Will complete the verification process immediately, but is not supported by all banks. """ NETWORK_CHECK """ Verification at the point of tokenization. Requires integration with a third-party provider. Because this requires a different tokenization flow, this method of verification is only supported for vaulting tokenized US bank account logins, and is not supported when re-verifying a US bank account payment method. """ TOKENIZED_CHECK } """ Deprecated: US bank logins are no longer supported. Input fields for a US bank login object. """ input UsBankLoginInput { """The public token returned from the bank login.""" publicToken: String! """The login provider account ID used for the bank login.""" accountId: String! """The type of account.""" accountType: UsBankAccountType! """ Information about the business that owns the account. This should only be specified for business accounts. """ businessOwner: UsBankAccountBusinessOwnerInput """ Information about the individual that owns the account. This should only be specified for individual accounts. """ individualOwner: UsBankAccountIndividualOwnerInput """The billing address of the account.""" billingAddress: UsBankAccountBillingAddressInput """ Language used to prove that you have the customer's explicit permission to debit their bank account. """ achMandate: String! } """A routing number containing 8 or 9 digits.""" scalar UsBankRoutingNumber """Details about the user.""" type User { """Unique identifier.""" id: ID! """Email address.""" email: String """Current status.""" status: UserStatus """Full name.""" name: String """Associated roles.""" roles: [Role!] } """The status of the user.""" enum UserStatus { ACTIVE DELETED PASSIVE PENDING SUSPENDED } """A two-letter code representing a US state or territory.""" enum UsStateCode { AK AL AR AS AZ CA CO CT DC DE FL GA GU HI IA ID IL IN KS KY LA MA MD ME MI MN MO MP MS MT NC ND NE NH NJ NM NV NY OH OK OR PA PR RI SC SD TN TX UM UT VA VI VT WA WI WV WY } """A US ZIP code. Supports DDDDD and DDDDD-DDDD formats.""" scalar UsZipCode """Options used to indicate when a credit card is externally vaulted.""" input VaultCreditCardExternalVaultOptionsInput { """ For use if this credit card is stored in an external vault. The network transaction ID of the first _transaction_ after which this credit card was stored in the external vault. """ verifyingNetworkTransactionId: String } """ Top-level input field for vaulting a credit card so it can be used multiple times. """ input VaultCreditCardInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of an existing single-use credit card payment method to be vaulted.""" paymentMethodId: ID! """ Input fields that specify options for verifying the credit card before vaulting. By default, a verification will be performed. If the verification fails, the credit card will not be vaulted. """ verification: VaultCreditCardVerificationOptionsInput """Options used to indicate when a credit card is externally vaulted.""" externalVault: VaultCreditCardExternalVaultOptionsInput """ ID of the customer to associate the resulting multi-use payment method with. """ customerId: ID """The type of account to be used when verifying a combo card.""" accountType: CardAccountType """ A billing address to associate with the vaulted credit card. If billing address data was included when tokenizing the credit card, it will be *merged* with this input value. """ billingAddress: AddressInput """ Results of a merchant-performed 3D Secure authentication. You will only need to use these fields if you've performed your own integration with a 3D Secure MPI provider (e.g. Cardinal Centinel). Otherwise, Braintree's SDKs handle this for you in our standard 3D Secure integration. """ threeDSecurePassThrough: ThreeDSecurePassThroughInput """ID of 3D Secure authentication performed using the Braintree SDK.""" threeDSecureAuthenticationId: String """ Customer device information, which is sent directly to supported processors for fraud analysis. """ riskData: RiskDataInput """ This option makes the specified payment method the default for the customer. """ makeDefault: Boolean """ If this option is passed and the same payment method has already been added to the Vault for any customer, the request will fail. This option will be ignored for Apple pay and Google pay payment methods. """ failOnDuplicatePaymentMethod: Boolean """ If this option is passed and the same payment method has already been added to the Vault for the same customer, the request will fail. This option will be ignored for Apple pay and Google pay payment methods. """ failOnDuplicatePaymentMethodForCustomer: Boolean } """ Input fields that specify options for verifying the vaulted credit card. """ input VaultCreditCardVerificationOptionsInput { """ ID of the merchant account to use when verifying the credit card. The verification will use the default merchant account if this field is left blank. """ merchantAccountId: ID """ Whether to opt out of verifying the credit card. Defaults to `false` for credit cards that support verification. Clients should only pass `true` in the uncommon scenario that the credit card has been verified externally to Braintree. """ skip: Boolean """The amount to use to verify the credit card.""" amount: Amount """ Control which fraud tools will be applied to this transaction. Fraud tools cannot be retroactively applied to a transaction if skipped. """ fraudTools: CreditCardFraudToolsOptionsInput } """ Specifies behavior for vaulting a single-use payment method for an in-store transaction. """ input VaultInStorePaymentMethodAfterTransactingInput { """Specifies the criteria which must be met to vault this payment method.""" when: VaultPaymentMethodCriteria! """Vaulting behavior override for QR code payments.""" qrcOverride: VaultQRCOverride } """ Input fields that provide information about the resulting PayPal account. """ input VaultLimitedUsePayPalAccountOptionsInput { """ The total amount of the order. This will be the limit to how much may be captured on the resulting payment method. """ amount: Amount """ Variable passed directly to PayPal for your own tracking purposes. Customers do not see this value. """ customField: String """ Description of the transaction that is displayed to customers in PayPal email receipts. """ description: String """ The PayPal invoice number. It must be unique in your PayPal business account and can contain a maximum of 127 characters. If specified, transactions created from the resulting payment method will have this orderId. """ orderId: String """Shipping destination address information.""" shippingAddress: AddressInput """ This option makes the specified payment method the default for the customer. """ makeDefault: Boolean } """ Specifies behavior for vaulting a single-use payment method after transacting with it. """ input VaultPaymentMethodAfterTransactingInput { """Specifies the criteria which must be met to vault this payment method.""" when: VaultPaymentMethodCriteria! } """ Defines criteria for vaulting a single-use payment method after transacting with it. """ enum VaultPaymentMethodCriteria { """ Always store the single-use payment method after transacting, regardless of the status of the transaction. """ ALWAYS """ Only store the single-use payment method if it was successfully authorized. """ ON_SUCCESSFUL_TRANSACTION } """ Top-level input field for vaulting a payment method so it can be used multiple times. """ input VaultPaymentMethodInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of an existing single-use payment method to be vaulted.""" paymentMethodId: ID! """ Input fields that specify options for verifying the payment method before vaulting. Only applicable if the payment method is of a type that supports verification. For supported types, verification is performed by default. If the verification fails, the payment method will not be vaulted. For additional, payment method-specific verification options, please see other verification mutations such as `verifyCreditCard` or `verifyUsBankAccount`. """ verification: PaymentMethodVerificationOptionsInput """ ID of the customer to associate the resulting multi-use payment method with. """ customerId: ID """ Results of a merchant-performed 3D Secure authentication. You will only need to use these fields if you've performed your own integration with a 3D Secure MPI provider (e.g. Cardinal Centinel). Otherwise, Braintree's SDKs handle this for you in our standard 3D Secure integration. """ threeDSecurePassThrough: ThreeDSecurePassThroughInput """ID of 3D Secure authentication performed using the Braintree SDK.""" threeDSecureAuthenticationId: String """ Customer device information, which is sent directly to supported processors for fraud analysis. """ riskData: RiskDataInput """ This option makes the specified payment method the default for the customer. """ makeDefault: Boolean } """Top-level output field from vaulting a payment method.""" type VaultPaymentMethodPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ A payment method that has been stored in a merchant's vault and can be reused. """ paymentMethod: PaymentMethod """The verification that was run on the payment method prior to vaulting.""" verification: Verification } """ Top-level input fields for importing and vaulting a PayPal Billing Agreement. """ input VaultPayPalBillingAgreementInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ ID of a PayPal Billing Agreement, that was not created through Braintree, to import and vault. """ billingAgreementId: String! """ Optional ID of the customer to associate the resulting payment method with. """ customerId: ID """ Optional ID of the merchant account associated with the linked PayPal account to be used to retrieve billing agreement details from PayPal. Only used for merchants with the PayPal multi-account feature enabled in Braintree. """ merchantAccountId: ID """ The merchant (payee) PayPal account associated with the PayPal Billing Agreement being vaulted. Only used when the specified merchant account is specially configured to handle indirect PayPal accounts. """ indirectPayee: PayPalAccountInput } """ Top-level fields returned when importing and vaulting a PayPal Billing Agreement. """ type VaultPayPalBillingAgreementPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ The vaulted payment method containing the imported PayPal Billing Agreement. """ paymentMethod: PaymentMethod } """The override options for QR code vaulting.""" enum VaultQRCOverride { """Do not show QR code as a payment option, even if it is enabled.""" HIDE_QRC """If QR codes are enabled, show as a payment option, but do not vault.""" SHOW_QRC_NO_VAULT } """ Top-level input field for vaulting a bank account so it can be used multiple times. """ input VaultUsBankAccountInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of an existing single-use payment method to be vaulted.""" paymentMethodId: ID! """ID of the merchant account to use when verifying the payment method.""" verificationMerchantAccountId: ID """ ID of the customer to associate the resulting multi-use payment method with. """ customerId: ID """Type of US bank account verification to perform.""" verificationMethod: UsBankAccountVerificationMethod! """Type of US bank account verification add ons.""" verificationAddOns: [UsBankAccountVerificationAddOn!] """ This option makes the specified payment method the default for the customer. """ makeDefault: Boolean """ Language used to prove that you have the customer's explicit permission to debit their bank account. """ achMandate: String """The date and time when the ACH mandate was accepted by the customer.""" achMandateAcceptedAt: Timestamp } """Details about a Venmo Account.""" type VenmoAccountDetails { """The Venmo username, as chosen by the user.""" username: String """The Venmo user ID.""" venmoUserId: String """Funding instrument details for the Venmo account.""" fundingInstrumentDetails: VenmoFundingInstrumentDetails } """Output fields for Venmo app switch context information.""" type VenmoAppSwitchContext { """Output fields for Venmo app switch context information for mobile web.""" mobileWeb: VenmoAppSwitchMobileWeb } """Input fields for the venmo app switch context information.""" input VenmoAppSwitchContextInput { """ Input fields for the Venmo app switch context information for mobile web. """ mobileWeb: VenmoAppSwitchMobileWebInput } """Output fields for Venmo app switch context information for mobile web.""" type VenmoAppSwitchMobileWeb { """User agent string from the customer's browser.""" buyerUserAgent: String """ Indicates whether the transaction is being initiated in incognito/private browsing mode. """ isIncognito: Boolean } """Input fields for the venmo app switch information for mobile web.""" input VenmoAppSwitchMobileWebInput { """User agent string from the customer's browser.""" buyerUserAgent: String """ Indicates whether the browser is being initiated in incognito/private browsing mode. """ isIncognito: Boolean } """Configuration for Pay with Venmo.""" type VenmoConfiguration { """The Venmo merchant ID.""" merchantId: String """Authorization to use when tokenizing a Venmo payment method.""" accessToken: String """The Venmo environment.""" environment: VenmoEnvironment """Indicates whether Enriched Customer Data is enabled for your merchant.""" enrichedCustomerDataEnabled: Boolean } """The environment being used for Venmo.""" enum VenmoEnvironment { PRODUCTION SANDBOX production sandbox } """Funding instrument details for a Venmo Account.""" type VenmoFundingInstrumentDetails { """The primary funding instrument type.""" primaryFIType: VenmoPrimaryFundingInstrumentType """The last 4 digits of the primary funding instrument.""" primaryFILast4: String """The current balance of the Venmo account.""" currentBalance: Amount """The secondary (backup) funding instrument type.""" secondaryFIType: VenmoSecondaryFundingInstrumentType """The last 4 digits of the secondary funding instrument.""" secondaryFILast4: String } """The intended checkout flow communicated to the Venmo app.""" enum VenmoIntent { """Continue through the current checkout flow.""" CONTINUE """Initiate the transaction directly from the Venmo app.""" PAY_FROM_APP } """Information about a payer's Venmo account.""" type VenmoPayerInfo { """The payer's first name.""" firstName: String """The payer's last name.""" lastName: String """The payer's phone number.""" phoneNumber: String """The payer's email address.""" email: EmailAddress """The external ID of the payer's Venmo account.""" externalId: String """The username of the payer's Venmo account.""" userName: String """The payer's billing address.""" billingAddress: Address """The payer's shipping address.""" shippingAddress: Address } """Information about a payer's Venmo account.""" input VenmoPayerInfoInput { """The payer's first name.""" firstName: String """The payer's last name.""" lastName: String """The payer's phone number.""" phoneNumber: String """The payer's email address.""" email: EmailAddress """The external ID of the payer's Venmo account.""" externalId: String """The username of the payer's Venmo account.""" userName: String """The payer's billing address.""" billingAddress: AddressInput """The payer's shipping address.""" shippingAddress: AddressInput } """Fields returned from a Venmo payment context.""" type VenmoPaymentContext implements Node & PaymentContext { """The unique identifier.""" id: ID! """The ID of the transacting merchant.""" merchantId: String """The intended payment flow this payment context was created with.""" intent: VenmoIntent """Date and time when the payment context was created.""" createdAt: Timestamp! """Date and time when the payment context was updated.""" updatedAt: Timestamp! """The status of the payment context.""" status: VenmoPaymentContextStatus """The Venmo environment this payment context was created in.""" environment: VenmoEnvironment """Indicates whether the purchase amount is the final amount.""" isFinalAmount: Boolean """Date and time when the payment context expires.""" expiresAt: Timestamp """The single-use Venmo account payment method ID.""" paymentMethodId: ID """Analytics data of the SDK where the QR code was scanned.""" clientSDKMetadata: ClientSDKMetadata """ Deprecated: This field is included for supporting legacy clients. Please use `payerInfo.userName` instead. The username associated with the payment. """ userName: String """ Whether the `paymentMethodId` may be used to make a one time payment (`SINGLE_USE`) or to create a vaulted multi-use payment token (`MULTI_USE`). This field will only be populated when the context was created by the `createVenmoPaymentContext` mutation, it will be `null` if the context was created by the deprecated `createVenmoQRCodePaymentContext` mutation. """ paymentMethodUsage: PaymentMethodUsage """ Client the customer used to initiate the transaction. This field will only be populated when the context was created by the `createVenmoPaymentContext` mutation, it will be `null` if the context was created by the deprecated `createVenmoQRCodePaymentContext` mutation. """ customerClient: CustomerClient """ An identifier representing the profile of the merchant used to initiate the transaction. """ merchantProfileId: ID """ The unique identifier of the parent payment context. The presence of this field indicates that a customer has previously consented to all future purchases with this merchant, so they should not be asked again for this specific merchant. """ parentPaymentContextId: ID """ The sub-merchant display name shown on the Venmo app consent screen. This field will only be present for PayFast channel partner merchants. """ displayName: String """Information about the payer's Venmo account.""" payerInfo: VenmoPayerInfo """Details about the information to be displayed on the paysheet.""" paysheetDetails: VenmoPaysheetDetails """URL for redirecting back to merchant app on the client.""" returnUrl: URL """Venmo Risk Correlation ID (also known as the Client Metadata ID).""" venmoRiskCorrelationId: ID """Venmo app switch context information.""" appSwitchContext: VenmoAppSwitchContext } """Top-level fields returned when creating a Venmo payment context.""" type VenmoPaymentContextPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The payment context object.""" venmoPaymentContext: VenmoPaymentContext } """The status of the Venmo payment context.""" enum VenmoPaymentContextStatus { """Venmo user has approved the payment.""" APPROVED """Venmo user has canceled the payment.""" CANCELED """The Venmo payment context is created.""" CREATED """The window for payment has expired and the context was ended.""" EXPIRED """The payment failed and the context was ended.""" FAILED """Venmo user has scanned the QR code.""" SCANNED } """Details about the information to be displayed on the Venmo paysheet.""" type VenmoPaysheetDetails { """ Indicates whether to collect a billing address from the customer on the paysheet. """ collectCustomerBillingAddress: Boolean """ Indicates whether to collect a shipping address from the customer on the paysheet. """ collectCustomerShippingAddress: Boolean """The different amounts and line items belonging to the transaction.""" transactionDetails: VenmoPaysheetTransactionDetails } """Input fields for paysheet details.""" input VenmoPaysheetDetailsInput { """ Indicates whether to collect a billing address from the customer on the paysheet. """ collectCustomerBillingAddress: Boolean """ Indicates whether to collect a shipping address from the customer on the paysheet. """ collectCustomerShippingAddress: Boolean """ Input fields for transaction details to be displayed on the Venmo Paysheet. """ transactionDetails: VenmoPaysheetTransactionDetailsInput } """Line items for a Venmo pay sheet.""" type VenmoPaysheetLineItem { """Item name. Maximum 127 characters.""" name: String """ Number of units of the item purchased. This value can't be negative or zero. """ quantity: Int """ Per-unit price of the item. Can include up to 2 decimal places. This value can't be negative or zero. """ unitAmount: Amount """ Indicates whether the line item is a debit (sale) or credit (refund or discount) to the customer. """ type: TransactionLineItemType """Item description. Maximum 127 characters.""" description: String """Product or UPC code for the item. Maximum 127 characters.""" productCode: String """ Per-unit tax price of the item. Can include up to 2 decimal places. This value can't be negative or zero. If this is a line item for a Venmo transaction, this value can be zero. """ unitTaxAmount: Amount """The URL to product information.""" url: URL } """Line items for a Venmo pay sheet.""" input VenmoPaysheetLineItemInput { """Item name. Maximum 127 characters.""" name: String! """ Number of units of the item purchased. This value can't be negative or zero. """ quantity: Int! """ Per-unit price of the item. Can include up to 2 decimal places. This value can't be negative or zero. """ unitAmount: Amount! """ Indicates whether the line item is a debit (sale) or credit (refund or discount) to the customer. """ type: TransactionLineItemType! """Item description. Maximum 127 characters.""" description: String """Product or UPC code for the item. Maximum 127 characters.""" productCode: String """ Per-unit tax price of the item. Can include up to 2 decimal places. This value can't be negative or zero. If this is a line item for a Venmo transaction, this value can be zero. """ unitTaxAmount: Amount! """The URL to product information.""" url: URL } """ Details about the different amounts and line items belonging to a transaction. """ type VenmoPaysheetTransactionDetails { """ The subtotal amount of the transaction. Either a whole number or a number with two decimal places. Must be non-negative. """ subTotalAmount: Amount """ The tax amount of the transaction. Either a whole number or a number with two decimal places. Must be non-negative. """ taxAmount: Amount """ The total discount applied to the transaction. Either a whole number or a number with two decimal places. Must be non-negative. """ discountAmount: Amount """ The shipping amount for the transaction. Either a whole number or a number with two decimal places. Must be non-negative. """ shippingAmount: Amount """ The grand total amount of the transaction. Either a whole number or a number with two decimal places. Must be non-negative. """ totalAmount: Amount """ The list of line items belonging to the transaction. Can include up to 249 line items. """ lineItems: [PaypalLineItem!] @deprecated(reason: "Use `venmoPaysheetLineItems` instead.") """ The list of line items belonging to the Venmo pay sheet. Can include up to 249 line items. """ venmoPaysheetLineItems: [VenmoPaysheetLineItem!] } """ Input fields for the transaction details to be displayed on the Venmo Paysheet. """ input VenmoPaysheetTransactionDetailsInput { """ The subtotal amount of the transaction. Either a whole number or a number with two decimal places. Must be non-negative. """ subTotalAmount: Amount """ The tax amount of the transaction. Either a whole number or a number with exactly two decimal places. Must be non-negative. """ taxAmount: Amount """ The total discount applied to the transaction. Either a whole number or a number with two decimal places. Must be non-negative. """ discountAmount: Amount """ The shipping amount for the transaction. Either a whole number or a number with two decimal places. Must be non-negative. """ shippingAmount: Amount """ The grand total amount of the transaction. Either a whole number or a number with two decimal places. Must be non-negative. """ totalAmount: Amount! """ The list of line items belonging to the pay sheet. Can include up to 249 line items. """ venmoPaysheetLineItems: [VenmoPaysheetLineItemInput!] } """ The primary funding instrument type for Venmo Funding Instrument Details. """ enum VenmoPrimaryFundingInstrumentType { BALANCE BANK CREDIT DEBIT } """ The secondary (backup) funding instrument type for Venmo Funding Instrument Details. """ enum VenmoSecondaryFundingInstrumentType { BANK CREDIT DEBIT } """ A verification reporting whether the payment method has passed your fraud rules and the issuer has ensured it is associated with a valid account. """ type Verification implements Node { """Unique identifier.""" id: ID! """Legacy unique identifier.""" legacyId: ID! """ Snapshot of payment method details that were verified. This will always be present. """ paymentMethodSnapshot: PaymentMethodSnapshot """ The multi-use payment method that was verified, if it was vaulted. The details of this PaymentMethod may have changed since it was verified. """ paymentMethod: PaymentMethod """For a credit card, the amount used when performing the verification.""" amount: MonetaryAmount @deprecated(reason: "Depending on the type of payment method being verified, some verifications do not have an amount. On a credit card verification, use `paymentMethodVerificationDetails.amount` instead.") """The merchant account used for the verification.""" merchantAccountId: ID """ The current status of this verification, indicating whether the verification was successful. Braintree recommends only vaulting payment methods that are successfully verified. """ status: VerificationStatus """ Detailed response information from the processor. Will not be present if the verification was rejected prior to contacting the processor. """ processorResponse: VerificationProcessorResponse """Fields describing the network response to the verification request.""" networkResponse: PaymentNetworkResponse """Date and time at which the verification was created.""" createdAt: Timestamp """ The reason the verification was rejected. This will only be set if status is GATEWAY_REJECTED. """ gatewayRejectionReason: GatewayRejectionReason """Risk data evaluated for this verification.""" riskData: RiskData """ Details unique to the verification based on payment method type being verified. """ paymentMethodVerificationDetails: VerificationDetails } """A paginated list of verifications.""" type VerificationConnection { """A list of verifications.""" edges: [VerificationConnectionEdge] """Information about the page of verifications contained in `edges`.""" pageInfo: PageInfo! } """A verification within a VerificationConnection.""" type VerificationConnectionEdge { """ The verification's location within the VerificationConnection. Used for requesting additional pages. """ cursor: String """The verification.""" node: Verification } """ A union of all possible verification details specific to the type of payment method being verified. """ union VerificationDetails = UsBankAccountVerificationDetails | CreditCardVerificationDetails """Detailed response information from the processor.""" type VerificationProcessorResponse { """ The [processor response code](https://developers.braintreepayments.com/reference/general/processor-responses/authorization-responses) indicating the result of attempting the verification. """ legacyCode: String """The text explanation of the processor response code.""" message: String """The processing bank's response to the provided CVV.""" cvvResponse: AvsCvvResponseCode """ The processing bank's response to the provided billing postal or zip code. """ avsPostalCodeResponse: AvsCvvResponseCode """The processing bank's response to the provided billing street address.""" avsStreetAddressResponse: AvsCvvResponseCode """ If present, any additional information recieved from the processor. May provide further insight into the `legacyCode`. """ additionalInformation: String } """Input fields for searching for verifications.""" input VerificationSearchInput { """Find verifications with an ID or IDs.""" id: SearchValueInput """Find verifications with a given status.""" status: SearchVerificationStatusInput """Find verifications with a given created at time.""" createdAt: SearchTimestampInput } """ The status of the verification, indicating whether the payment method was successfully verified. Braintree recommends only vaulting payment methods with successful verifications. """ enum VerificationStatus { """ Indicates the verification was unsuccessful because of an issue communicating with the processor. """ FAILED """ Indicates that the verification was unsuccessful because the payment method failed one or more fraud checks. In this case, the `gatewayRejectionReason` will indicate which fraud check failed. """ GATEWAY_REJECTED """Indicates that the verification is pending.""" PENDING """ Indicates that the verification was unsuccessful based on the response from the processor. """ PROCESSOR_DECLINED """Indicates that the verification was successful.""" VERIFIED """Indicates that the verification is in the process of verifying.""" VERIFYING } """Verifone specific in-store reader information.""" type VerifoneVendor { """Model name or number of reader.""" model: String """Current OS version running on the reader.""" osVersion: String """Vendor-specific device serial number.""" serialNumber: String } """Top-level input field for verifying a credit card.""" input VerifyCreditCardInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of the payment method to be verified.""" paymentMethodId: ID! """Input fields for verifying a credit card.""" options: CreditCardVerificationOptionsInput } """Top-level input field for verifying a multi-use payment method.""" input VerifyPaymentMethodInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of an existing multi-use payment method to be verified.""" paymentMethodId: ID! """ID of the merchant account to use when verifying the payment method.""" merchantAccountId: ID } """Top-level output field from verifying a payment method.""" type VerifyPaymentMethodPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The verification that was run on the payment method.""" verification: Verification } """Top-level input field for retrying a verification on a bank account.""" input VerifyUsBankAccountInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ID of an existing multi-use payment method to be vaulted.""" paymentMethodId: ID! """ID of the merchant account to use when verifying the payment method.""" merchantAccountId: ID """Type of US bank account verification to perform.""" verificationMethod: UsBankAccountVerificationMethod! """Type of US bank account verification add ons.""" verificationAddOns: [UsBankAccountVerificationAddOn!] } """Details about the user and merchant authenticated in this request.""" type Viewer { """Unique identifier.""" id: ID @deprecated(reason: "Use `user` for id instead.") """Email address.""" email: String @deprecated(reason: "Use `user` for email instead.") """Current status.""" status: UserStatus @deprecated(reason: "Use `user` for status instead.") """Full name.""" name: String @deprecated(reason: "Use `user` for name instead.") """Associated roles.""" roles: [Role!] @deprecated(reason: "Use `user` for roles instead.") """Details about the authenticated user.""" user: User """Details about the authenticated merchant.""" merchant: Merchant """Associated rights based on authentication.""" rights: [Right!] } """ Deprecated: Visa Checkout is no longer supported. Configuration for Visa Checkout. """ type VisaCheckoutConfiguration { """The Visa Checkout API key.""" apiKey: String """The Visa Checkout encryption key.""" encryptionKey: String """The Visa Checkout external client ID.""" externalClientId: String """A list of card brands supported by the merchant for Visa Checkout.""" supportedCardBrands: [CreditCardBrandCode!] } """ Deprecated: Visa Checkout is no longer supported. Additional information about the payment method specific to Visa Checkout. """ type VisaCheckoutOriginDetails { """The Visa assigned identifier for the transaction.""" callId: String """ The first 6 digits of the credit card, known as the Bank Identification Number. This BIN may differ from the BIN of the customer's actual card. """ bin: String } """Accompanying information for a transaction that has been voided.""" type VoidedEvent implements PaymentStatusEvent { """The new status of the transaction.""" status: PaymentStatus """Date and time when the transaction was voided.""" timestamp: Timestamp """ The amount of the voided transaction. This should match the authorization amount. """ amount: MonetaryAmount """The source for the transaction change to the new status.""" source: PaymentSource """Whether or not this is the final state for the transaction.""" terminal: Boolean """ User name of the person who performed an action that triggered the status change of the transaction. """ userName: String } """Input fields for voiding a transaction.""" input VoidTransactionInput { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """ An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain. If a request is made with a new `apiRequestKey`, it will be processed as normal. If subsequent requests are made with the same `apiRequestKey`, and the first request resulted in a transaction being voided (in any status), then the same transaction in its current status will be returned. Subsequent requests with the same `apiRequestKey` must have the same input values as the original request. Subsequent requests with the same `apiRequestKey` must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a `VALIDATION` error on the subsequent request. If an `apiRequestKey` is reused after 30 days since its first use, it will be treated as if it has not been used before. If an initial request is made with an `apiRequestKey`, but the request receives a `AUTHENTICATION`, `AUTHORIZATION`, `NOT_FOUND`, `RESOURCE_LIMIT`, or `NOT_IMPLEMENTED` error, and no transaction is voided, then no duplication will be considered. Subsequent requests with the same `apiRequestKey` will be treated as non-duplicate requests, just as if they were the first request with that value. """ apiRequestKey: String """The ID of the transaction to void.""" transactionId: ID! } """Top-level output field from voiding a transaction.""" type VoidTransactionPayload { """ An identifier used to reconcile requests and responses. 255 characters maximum. """ clientMutationId: String """The transaction representing the charge on the payment method.""" transaction: Transaction } """A four-digit year.""" scalar Year