diff --git a/pom.xml b/pom.xml index c6093f357..c7932e808 100644 --- a/pom.xml +++ b/pom.xml @@ -44,6 +44,7 @@ 1.12.287 2.17.258 + 3.19.0 1.15 1.8 2.9.0 @@ -284,6 +285,11 @@ stripe-java ${stripe.version} + + com.braintreepayments.gateway + braintree-java + ${braintree.version} + com.google.code.gson gson diff --git a/service/config/sample.yml b/service/config/sample.yml index b75e142e9..6b5f4ded7 100644 --- a/service/config/sample.yml +++ b/service/config/sample.yml @@ -15,6 +15,25 @@ stripe: idempotencyKeyGenerator: abcdefg12345678= # base64 for creating request idempotency hash boostDescription: > Example + supportedCurrencies: + - xts + # - ... + # - Nth supported currency + + +braintree: + merchantId: unset + publicKey: unset + privateKey: unset + environment: unset + graphqlUrl: unset + merchantAccounts: + # ISO 4217 currency code and its corresponding sub-merchant account + 'xts': unset + supportedCurrencies: + - xts + # - ... + # - Nth supported currency dynamoDbClientConfiguration: region: us-west-2 # AWS Region diff --git a/service/pom.xml b/service/pom.xml index e03e640d1..031823997 100644 --- a/service/pom.xml +++ b/service/pom.xml @@ -457,6 +457,32 @@ com.stripe stripe-java + + + com.braintreepayments.gateway + braintree-java + + + + com.apollographql.apollo3 + apollo-api-jvm + 3.6.2 + + + org.jetbrains.kotlin + kotlin-stdlib + + + org.jetbrains.kotlin + kotlin-stdlib-common + + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + + + + @@ -612,6 +638,31 @@ + + + com.github.aoudiamoncef + apollo-client-maven-plugin + 5.0.0 + + + + generate + + + + + + braintree + + com.braintree.graphql.client + + + + + + + + diff --git a/service/src/main/graphql/braintree/ChargePayPalOneTimePayment.graphql b/service/src/main/graphql/braintree/ChargePayPalOneTimePayment.graphql new file mode 100644 index 000000000..2007a93be --- /dev/null +++ b/service/src/main/graphql/braintree/ChargePayPalOneTimePayment.graphql @@ -0,0 +1,9 @@ +# https://graphql.braintreepayments.com/reference/#Mutation--chargePaymentMethod +mutation ChargePayPalOneTimePayment($input: ChargePaymentMethodInput!) { + chargePaymentMethod(input: $input) { + transaction { + id, + status + } + } +} diff --git a/service/src/main/graphql/braintree/CreatePayPalOneTimePayment.graphql b/service/src/main/graphql/braintree/CreatePayPalOneTimePayment.graphql new file mode 100644 index 000000000..58ee6b6e9 --- /dev/null +++ b/service/src/main/graphql/braintree/CreatePayPalOneTimePayment.graphql @@ -0,0 +1,7 @@ +# https://graphql.braintreepayments.com/reference/#Mutation--createPayPalOneTimePayment +mutation CreatePayPalOneTimePayment($input: CreatePayPalOneTimePaymentInput!) { + createPayPalOneTimePayment(input: $input) { + approvalUrl, + paymentId + } +} diff --git a/service/src/main/graphql/braintree/TokenizePayPalOneTimePayment.graphql b/service/src/main/graphql/braintree/TokenizePayPalOneTimePayment.graphql new file mode 100644 index 000000000..ae0d5b72f --- /dev/null +++ b/service/src/main/graphql/braintree/TokenizePayPalOneTimePayment.graphql @@ -0,0 +1,8 @@ +# https://graphql.braintreepayments.com/reference/#Mutation--tokenizePayPalOneTimePayment +mutation TokenizePayPalOneTimePayment($input: TokenizePayPalOneTimePaymentInput!) { + tokenizePayPalOneTimePayment(input: $input) { + paymentMethod { + id + } + } +} diff --git a/service/src/main/graphql/braintree/schema.json b/service/src/main/graphql/braintree/schema.json new file mode 100644 index 000000000..f9e3bfa86 --- /dev/null +++ b/service/src/main/graphql/braintree/schema.json @@ -0,0 +1,34785 @@ +{ + "data": { + "__schema": { + "queryType": { + "name": "Query" + }, + "mutationType": { + "name": "Mutation" + }, + "subscriptionType": null, + "types": [ + { + "kind": "ENUM", + "name": "ACHStandardEntryClassCode", + "description": "A NACHA standard entry class (SEC) code, which designates how an ACH transaction was authorized.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CCD", + "description": "Corporate credit or debit.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PPD", + "description": "Prearranged payment and deposit.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TEL", + "description": "Telephone-initiated.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WEB", + "description": "Internet-initiated/mobile.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ACRType", + "description": "The authentication context class reference that indcates how a universal access token can be used.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CLIENT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SERVER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AcceptDisputeInput", + "description": "Top-level input fields for accepting a dispute.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "disputeId", + "description": "The ID of the dispute to be accepted.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AcceptDisputePayload", + "description": "Top-level field returned when accepting a dispute.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "dispute", + "description": "Information about the dispute that was accepted.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Dispute", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AccessToken", + "description": "An OAuth access token.", + "fields": [ + { + "name": "accessToken", + "description": "The access token.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "refreshToken", + "description": "The refresh token for getting a new access token.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenType", + "description": "The type of token.", + "args": [], + "type": { + "kind": "ENUM", + "name": "OAuthTokenType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "expiresAt", + "description": "Expiration in ISO time format.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "AccountCreationStatus", + "description": "The status of the business account creation request.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "COMPLETED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DECLINED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "IN_SETUP", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "IN_VETTING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SUBMITTED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AccountCreationStatusSearchInput", + "description": "Input fields for searching for BusinessAccountCreationRequests by their `AccountCreationStatus`.", + "fields": null, + "inputFields": [ + { + "name": "is", + "description": "The creation status is exactly this value.", + "type": { + "kind": "ENUM", + "name": "AccountCreationStatus", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "in", + "description": "The creation status is one of these values.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountCreationStatus", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Address", + "description": "Representation of an address.", + "fields": [ + { + "name": "company", + "description": "Company name.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "streetAddress", + "description": "The street address.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `addressLine1` instead." + }, + { + "name": "addressLine1", + "description": "The first line of the street address, such as street number, street name.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "extendedAddress", + "description": "Extended address information, such as an apartment or suite number.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `addressLine2` instead." + }, + { + "name": "addressLine2", + "description": "Extended address information, such as an apartment number or suite number.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "firstName", + "description": "First name.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `fullName` instead." + }, + { + "name": "lastName", + "description": "Last name.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `fullName` instead." + }, + { + "name": "fullName", + "description": "Full name.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "locality", + "description": "Locality/city.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `adminArea2` instead." + }, + { + "name": "adminArea2", + "description": "A city, town, or village.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": "State or province.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `adminArea1` instead." + }, + { + "name": "adminArea1", + "description": "Highest level subdivision, such as state, province, or ISO-3166-2 subdivison.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "postalCode", + "description": "Postal code, otherwise known as CAP, CEP, Eircode, NPA, PIN, PLZ, or ZIP code.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "countryCode", + "description": "Country code for the address.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "CountryCode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "phoneNumber", + "description": "Phone number.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AddressInput", + "description": "Input fields for an Address.", + "fields": null, + "inputFields": [ + { + "name": "company", + "description": "Company name. 255 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "streetAddress", + "description": "The street address. 255 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "addressLine1", + "description": "The first line of the street address, such as street number, street name. 255 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "extendedAddress", + "description": "Extended address information, such as an apartment or suite number. 255 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "addressLine2", + "description": "Extended address information, such as apartment number or suite number. 255 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "firstName", + "description": "First name. 255 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "lastName", + "description": "Last name. 255 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "locality", + "description": "Locality/city. 255 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "adminArea2", + "description": "A city, town or village. 255 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "region", + "description": "State or province. 255 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "adminArea1", + "description": "Highest level subdivision, such as state, province or ISO-3166-2 subdivision. 255 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "postalCode", + "description": "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.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "countryCode", + "description": "Country code for the address.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "SCALAR", + "name": "CountryCode", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "countryCodeAlpha3", + "description": "Deprecated: This field is included for supporting legacy clients. Please use `countryCode` instead.\n\nCountry code for the address in ISO 3166-1 alpha-3 format.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "countryCodeAlpha2", + "description": "Deprecated: This field is included for supporting legacy clients. Please use `countryCode` instead.\n\nCountry code for the address in ISO 3166-1 alpha-2 format.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "countryCodeNumeric", + "description": "Deprecated: This field is included for supporting legacy clients. Please use `countryCode` instead.\n\nCountry code for the address in ISO 3166-1 numeric format.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "countryName", + "description": "Deprecated: This field is included for supporting legacy clients. Please use `countryCode` instead.\n\nCountry name for the address.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Amount", + "description": "A monetary amount, either a whole number or a number with exactly two or three decimal places.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ApplePayConfiguration", + "description": "Configuration for Apple Pay on iOS.", + "fields": [ + { + "name": "status", + "description": "The environment being used for Apple Pay.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ApplePayStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "countryCode", + "description": "The country code of the acquiring bank where the transaction is likely to be processed.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "CountryCodeAlpha2", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "currencyCode", + "description": "The merchant's Apple Pay currency code.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "CurrencyCodeAlpha", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merchantIdentifier", + "description": "The merchant identifier that must be supplied when making an Apple Pay request.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "supportedCardBrands", + "description": "A list of card brands supported by the merchant for Apple Pay.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "CreditCardBrandCode", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ApplePayOriginDetails", + "description": "Additional information about the payment method specific to Apple Pay.", + "fields": [ + { + "name": "paymentInstrumentName", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bin", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ApplePayStatus", + "description": "The environment being used for Apple Pay.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "MOCK", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OFF", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRODUCTION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mock", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "off", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "production", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ApplePayWebConfiguration", + "description": "Configuration for Apple Pay on web.", + "fields": [ + { + "name": "countryCode", + "description": "The merchant's Apple Pay country code.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "CountryCodeAlpha2", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "currencyCode", + "description": "The merchant's Apple Pay currency code.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "CurrencyCodeAlpha", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merchantIdentifier", + "description": "The merchant identifier that must be supplied when making an Apple Pay request.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "supportedCardBrands", + "description": "A list of card brands supported by the merchant for Apple Pay.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "CreditCardBrandCode", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ApplicationBankAccountPurpose", + "description": "The purpose of the merchant application bank account.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CHECKING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SAVINGS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ApplicationStatus", + "description": "The status of a merchant account application.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "APPROVED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PROCESSING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "REJECTED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AuthenticationInsight", + "description": "Information about the [customer authentication regulation environment](https://developers.braintreepayments.com/guides/3d-secure/migration/javascript/v3#authentication-insight) that applies to the payment method when processed with the provided merchant account.", + "fields": [ + { + "name": "merchantAccountId", + "description": "The merchant account used to determine authentication insight.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "customerAuthenticationRegulationEnvironment", + "description": "The customer authentication regulation environment that applies when transacting with this payment method and merchant account.", + "args": [], + "type": { + "kind": "ENUM", + "name": "CustomerAuthenticationRegulationEnvironment", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "customerAuthenticationIndicator", + "description": "A value indicating when to perform further customer authentication.", + "args": [], + "type": { + "kind": "ENUM", + "name": "CustomerAuthenticationIndicator", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AuthenticationInsightInput", + "description": "Input fields when requesting authentication insight for a payment method.", + "fields": null, + "inputFields": [ + { + "name": "merchantAccountId", + "description": "ID of the merchant account that will be used when charging this payment method.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "The intended transaction amount to be authorized on this payment method.", + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "recurringCustomerConsent", + "description": "A flag indicating whether the customer has consented to further recurring transactions.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "recurringMaxAmount", + "description": "The maximum amount permitted for recurring transactions set by the customer.", + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AuthorizationAdjustment", + "description": "Records of authorization adjustments performed when a transaction is captured for less or more than its original authorization amount.", + "fields": [ + { + "name": "amount", + "description": "Difference between the authorized amount and the amount captured. Negative values indicate the authorized amount was adjusted down.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "successful", + "description": "Indicates if the adjustment was successful or not.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timestamp", + "description": "Date and time when this adjustment was performed.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "processorResponse", + "description": "Processor response from this adjustment.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "TransactionAuthorizationAdjustmentProcessorResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AuthorizationExpiredEvent", + "description": "Accompanying information for an authorization expired transaction.", + "fields": [ + { + "name": "status", + "description": "The new status of the transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timestamp", + "description": "Date and time when the authorization for this transaction was marked expired.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "The amount of the transaction for this status event.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "The source for the transaction change to the new status.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminal", + "description": "Whether or not this is the final state for the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "PaymentStatusEvent", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AuthorizeCreditCardInput", + "description": "Top-level input fields for creating a transaction by authorizing a credit card.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "ID of a credit card payment method to be authorized.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "options", + "description": "Input fields related to the credit card being authorized.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CreditCardTransactionOptionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transaction", + "description": "Input fields for the authorization, with details that will define the resulting transaction.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TransactionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AuthorizePayPalAccountInput", + "description": "Top-level input fields for creating a transaction by authorizing a PayPal account.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "ID of a PayPal payment method to be authorized.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "options", + "description": "Input fields related to the PayPal account being authorized.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AuthorizePayPalAccountOptionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transaction", + "description": "Input fields for the authorization, with details that will define the resulting transaction.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TransactionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AuthorizePayPalAccountOptionsInput", + "description": "Input fields for authorizing a PayPal account.", + "fields": null, + "inputFields": [ + { + "name": "customField", + "description": "Variable passed directly to PayPal for your own tracking purposes. Customers do not see this value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "description", + "description": "Description of the transaction that is displayed to customers in PayPal email receipts.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "payee", + "description": "Deprecated: This field is no longer supported.", + "type": { + "kind": "INPUT_OBJECT", + "name": "PayPalPayeeOptionsInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AuthorizePaymentMethodInput", + "description": "Top-level input fields for creating a transaction by authorizing a payment method.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "ID of a payment method to be authorized.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "transaction", + "description": "Input fields for the authorization, with details that will define the resulting transaction.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TransactionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AuthorizeVenmoAccountInput", + "description": "Top-level input fields for creating a transaction by authorizing a Venmo account.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "ID of a Venmo payment method to be authorized.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "options", + "description": "Input fields related to the Venmo account being authorized.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AuthorizeVenmoAccountOptionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transaction", + "description": "Input fields for the authorization, with details that will define the resulting transaction.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TransactionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AuthorizeVenmoAccountOptionsInput", + "description": "Input fields for authorizing a Venmo account.", + "fields": null, + "inputFields": [ + { + "name": "profileId", + "description": "Specifies which Venmo business profile to use for the transaction.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AuthorizedEvent", + "description": "Accompanying information for an authorized transaction.", + "fields": [ + { + "name": "status", + "description": "The new status of the transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timestamp", + "description": "Date and time when the transaction was authorized.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "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.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "The source for the transaction change to the new status.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "processorResponse", + "description": "Fields describing the payment processor response to the authorization request.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "TransactionAuthorizationProcessorResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "networkResponse", + "description": "Fields describing the network response to the authorization request.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentNetworkResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "riskDecision", + "description": "Risk decision for this transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "RiskDecision", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminal", + "description": "Whether or not this is the final state for the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorizationExpiresAt", + "description": "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).", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "PaymentStatusEvent", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "AvsCvvResponseCode", + "description": "Response codes from the processing bank's Address Verification System (AVS) and CVV verification.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "BYPASS", + "description": "AVS or CVV checks were skipped via the API.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DOES_NOT_MATCH", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ISSUER_DOES_NOT_PARTICIPATE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MATCHES", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NOT_APPLICABLE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NOT_PROVIDED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NOT_VERIFIED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SYSTEM_ERROR", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "BinRecord", + "description": "Information about the credit card based on its BIN.", + "fields": [ + { + "name": "prepaid", + "description": "Whether or not the card is prepaid, such as a gift card.", + "args": [], + "type": { + "kind": "ENUM", + "name": "BinRecordValue", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "healthcare", + "description": "Whether the card is designated only to be used for healthcare expenses.", + "args": [], + "type": { + "kind": "ENUM", + "name": "BinRecordValue", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "debit", + "description": "Whether or not the card is a debit card.", + "args": [], + "type": { + "kind": "ENUM", + "name": "BinRecordValue", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "durbinRegulated", + "description": "Whether the card is regulated by the Durbin Amendment due to the bank's assets, and therefore has a maximum interchange rate.", + "args": [], + "type": { + "kind": "ENUM", + "name": "BinRecordValue", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "commercial", + "description": "Whether or not the card is a commercial card and capable of processing Level 2 transactions.", + "args": [], + "type": { + "kind": "ENUM", + "name": "BinRecordValue", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "payroll", + "description": "Whether or not the card is designated for employee wages.", + "args": [], + "type": { + "kind": "ENUM", + "name": "BinRecordValue", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "issuingBank", + "description": "The name of the bank that issued the card.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "countryOfIssuance", + "description": "The country code of the country that issued the card.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "CountryCode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "productId", + "description": "A code representing any special program from the card issuer the card is part of.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "BinRecordValue", + "description": "A boolean-like value that includes `UNKNOWN` in the case where the information isn't available.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "NO", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNKNOWN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "YES", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "No", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "Unknown", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "Yes", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Boolean", + "description": "Built-in Boolean", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "BraintreeApiConfiguration", + "description": "Configuration for payment methods in legacy clients.", + "fields": [ + { + "name": "url", + "description": "The URL for tokenizing payment methods.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accessToken", + "description": "The authentication for tokenizing payment methods.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "BusinessAccountCreationRequest", + "description": "Record of onboarding request.", + "fields": [ + { + "name": "id", + "description": "Unique identifier generated by PayPal for the onboarding request.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merchantAccount", + "description": "Information about the merchant account that is being created as a result of the request.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MerchantAccount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "creationStatus", + "description": "The account creation status for this account.", + "args": [], + "type": { + "kind": "ENUM", + "name": "AccountCreationStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "BusinessAccountCreationRequestConnection", + "description": "A paginated list of BusinessAccountCreationRequests.", + "fields": [ + { + "name": "edges", + "description": "A list of BusinessAccountCreationRequests.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "BusinessAccountCreationRequestConnectionEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information about the page of BusinessAccountCreationRequests contained in `edges`.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "BusinessAccountCreationRequestConnectionEdge", + "description": "A BusinessAccountCreationRequest within a BusinessAccountCreationRequestConnection.", + "fields": [ + { + "name": "cursor", + "description": "This BusinessAccountCreationRequest's location within the BusinessAccountCreationRequestConnection. Used for requesting additional pages.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The business account creation request.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "BusinessAccountCreationRequest", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "BusinessAccountCreationRequestSearchInput", + "description": "Input fields for searching for BusinessAccountCreationRequests.", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": "Find BusinessAccountCreationRequests with an ID or IDs.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "externalId", + "description": "Find BusinessAccountCreationRequests by their external ID or IDs.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "status", + "description": "Find BusinessAccountCreationRequests by their creation status.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AccountCreationStatusSearchInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "BusinessType", + "description": "The type of the business.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "GOVERNMENT_AGENCY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LIMITED_LIABILITY_CORPORATION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NONPROFIT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PARTNERSHIP", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PARTNERSHIP_LLP", + "description": null, + "isDeprecated": true, + "deprecationReason": "No longer applicable, use PARTNERSHIP instead." + }, + { + "name": "PRIVATE_CORPORATION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PUBLIC_CORPORATION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SOLE_PROPRIETORSHIP", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TAX_EXEMPT", + "description": null, + "isDeprecated": true, + "deprecationReason": "No longer applicable, use NONPROFIT instead." + } + ], + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "CVV", + "description": "A three- or four-digit string CVV (card verification value), otherwise known as CSC or CVC.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CaptureTransactionInput", + "description": "Top-level input fields for capturing an authorized transaction.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transactionId", + "description": "ID of the transaction to be captured.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "Deprecated: This field is included for supporting legacy clients. Please use `transaction.amount` instead.\n\nThe 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.", + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transaction", + "description": "Input fields for the capture, with details that will define the resulting transaction.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CaptureTransactionOptionsInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CaptureTransactionOptionsInput", + "description": "Input fields for a capture, with details that will define the resulting transaction.", + "fields": null, + "inputFields": [ + { + "name": "amount", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "descriptor", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TransactionDescriptorInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "discountAmount", + "description": "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.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "lineItems", + "description": "Line items for this transaction. Up to 249 line items may be specified.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TransactionLineItemInput", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "orderId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "purchaseOrderNumber", + "description": "A purchase order identification value you associate with this transaction.\n\n*Required for Level 2 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "shipping", + "description": "Shipping information.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TransactionShippingInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "tax", + "description": "Tax information about the transaction.\n\n*Required for Level 2 processing*.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TransactionTaxInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "CardAccountType", + "description": "The type of account to be used when transacting with a combo card.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CREDIT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DEBIT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CardPresentOriginDetails", + "description": "Additional information about a card present payment method supplied by an in-store payment reader.", + "fields": [ + { + "name": "authorizationMode", + "description": "The authorization mode used to perform the transaction on the payment reader.", + "args": [], + "type": { + "kind": "ENUM", + "name": "InStoreReaderAuthorizationMode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pinVerified", + "description": "An indicator for whether the transaction was verified via pin.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "inputMode", + "description": "The input mode used on the payment reader to facilitate an in-store transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentReaderInputMode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminalId", + "description": "The ID of the terminal that was processed this transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "InStoreReaderOriginDetails", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "Challenge", + "description": "A list of challenges that are required by the current merchant to process a given credit card.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CVV", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "POSTAL_CODE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cvv", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "postal_code", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ChargeCreditCardInput", + "description": "Top-level input fields for creating a transaction by charging a credit card.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "ID of a credit card payment method to be charged.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "options", + "description": "Input fields for creating a credit card transaction.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CreditCardTransactionOptionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transaction", + "description": "Input fields for the charge, with details that will define the resulting transaction.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TransactionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ChargePayPalAccountInput", + "description": "Top-level input fields for creating a transaction by charging a PayPal account.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "The ID of an existing PayPal account.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "options", + "description": "Input fields related to the PayPal account being charged.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ChargePayPalAccountOptionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transaction", + "description": "Input fields for the charge, with details that will define the resulting transaction.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TransactionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ChargePayPalAccountOptionsInput", + "description": "Input fields for creating a transaction with a PayPal account.", + "fields": null, + "inputFields": [ + { + "name": "customField", + "description": "Variable passed directly to PayPal for your own tracking purposes. Customers do not see this value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "description", + "description": "Description of the transaction that is displayed to customers in PayPal email receipts.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "payee", + "description": "Deprecated: This field is no longer supported.", + "type": { + "kind": "INPUT_OBJECT", + "name": "PayPalPayeeOptionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "selectedFinancingOption", + "description": "Buyer selected PayPal financing option.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SelectedPayPalFinancingOptionInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ChargePaymentMethodInput", + "description": "Top-level input fields for creating a transaction by charging a payment method.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "ID of a payment method to be charged.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "transaction", + "description": "Input fields for the charge, with details that will define the resulting transaction.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TransactionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ChargeUsBankAccountInput", + "description": "Top-level input fields for creating a transaction by charging a US bank account.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "The ID of an existing US bank account.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "options", + "description": "Input fields related to the US bank account being charged.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ChargeUsBankAccountOptionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transaction", + "description": "Input fields for the charge, with details that will define the resulting transaction.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TransactionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ChargeUsBankAccountOptionsInput", + "description": "Input fields for creating a transaction with a US bank account.", + "fields": null, + "inputFields": [ + { + "name": "standardEntryClassCode", + "description": "A NACHA standard entry class (SEC) code, which designates how the transaction was authorized. Most internet-based sales should use the `WEB` code.", + "type": { + "kind": "ENUM", + "name": "ACHStandardEntryClassCode", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ChargeVenmoAccountInput", + "description": "Top-level input fields for creating a transaction by charging a Venmo account.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "The ID of an existing Venmo account.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "options", + "description": "Input fields for creating a Pay with Venmo transaction.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ChargeVenmoAccountOptionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transaction", + "description": "Input fields for the charge, with details that will define the resulting transaction.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TransactionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ChargeVenmoAccountOptionsInput", + "description": "Input fields for creating a Pay with Venmo transaction.", + "fields": null, + "inputFields": [ + { + "name": "profileId", + "description": "Specifies which Venmo business profile to use for the transaction.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ChargebackProtectionLevel", + "description": "The chargeback protection level indicates the transaction or dispute's protection status.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "EFFORTLESS", + "description": "The transaction or dispute is protected by the effortless chargeback protection product.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NOT_PROTECTED", + "description": "The merchant has not enrolled any chargeback protection products, or the merchant is registered, but the transaction or dispute is not protected.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "STANDARD", + "description": "The transaction or dispute is protected by the standard chargeback protection product.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ChildCapture", + "description": "A partial capture's relationship to its original authorization transaction.", + "fields": [ + { + "name": "parentAuthorization", + "description": "The original authorization whose funds have been partially captured.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClientConfiguration", + "description": "Top-level fields returned from the client configuration query.", + "fields": [ + { + "name": "analyticsUrl", + "description": "URL to send analytics.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "This field is included for supporting SDKs that send analytics." + }, + { + "name": "applePay", + "description": "Configuration for Apple Pay on iOS.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "ApplePayConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "applePayWeb", + "description": "Configuration for Apple Pay on the web.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "ApplePayWebConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "assetsUrl", + "description": "A URL pointing to the base path of Braintree's web pages used for various browser switches and popups.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clientApiUrl", + "description": "A URL pointing to the base path of Braintree's client API.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "This field is included for supporting legacy clients." + }, + { + "name": "supportedFeatures", + "description": "A list of client features the merchant supports.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "ClientFeature", + "ofType": null + } + } + }, + "isDeprecated": true, + "deprecationReason": "This field is included for supporting legacy clients." + }, + { + "name": "braintreeApi", + "description": "Configuration for payment methods in legacy clients.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "BraintreeApiConfiguration", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "This field is included for supporting legacy clients." + }, + { + "name": "creditCard", + "description": "Configuration for credit card tokenization.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "CreditCardConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "environment", + "description": "The enum of the current environment.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ClientConfigurationEnvironment", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fraudProvider", + "description": "Configuration for fraud protection provider.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "FraudProviderConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "googlePay", + "description": "Configuration for Google Pay on Android and the web.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "GooglePayConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ideal", + "description": "Deprecated, this field will always be null.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "IDealConfiguration", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "This field is included for supporting legacy clients." + }, + { + "name": "kount", + "description": "Deprecated, formerly configuration for Kount fraud tools, now this configuration lives under fraudProvider.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "KountConfiguration", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "This field is included for supporting legacy clients." + }, + { + "name": "masterpass", + "description": "Configuration for Masterpass.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MasterpassConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merchantId", + "description": "The merchant ID.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paypal", + "description": "Configuration for PayPal.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PayPalConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "samsungPay", + "description": "Configuration for Samsung Pay.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "SamsungPayConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "unionPay", + "description": "Configuration for UnionPay cards.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "UnionPayConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "usBankAccount", + "description": "Configuration for US bank account processing.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "UsBankAccountConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "venmo", + "description": "Configuration for Pay with Venmo.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "VenmoConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "visaCheckout", + "description": "Configuration for Visa Checkout.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "VisaCheckoutConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "challenges", + "description": "A list of challenges that are required by the current merchant to process a given credit card.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "Challenge", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ClientConfigurationEnvironment", + "description": "The client configuration environment being used.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "DEVELOPMENT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRODUCTION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "QA", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SANDBOX", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TEST", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "development", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "production", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "qa", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sandbox", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "test", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ClientFeature", + "description": "A value used by Braintree client SDKs to determine what operations are supported through this GraphQL API.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "TOKENIZE_CREDIT_CARDS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenize_credit_cards", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ClientTokenInput", + "description": "Input fields for creating a client token.", + "fields": null, + "inputFields": [ + { + "name": "merchantAccountId", + "description": "The merchant account ID used to create the client token. Defaults to your default merchant account ID.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customerId", + "description": "The ID of an existing customer. Including this will allow your customer to vault and manage their payment methods.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ConfirmMicroTransferAmountsInput", + "description": "Top-level input field for confirming micro-transfer values.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "verificationId", + "description": "The ID of the verification from vaulting the bank account.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "amountsInCents", + "description": "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.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ConfirmMicroTransferAmountsPayload", + "description": "Top-level output field from confirming micro-transfer amounts on bank account.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verification", + "description": "The verification that was run on the payment method prior to vaulting.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Verification", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The status of the micro-transfer amounts confirmation.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ConfirmMicroTransferAmountsStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ConfirmMicroTransferAmountsStatus", + "description": "The status of a micro-transfer amount confirmation.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "AMOUNTS_DO_NOT_MATCH", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CONFIRMED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TOO_MANY_ATTEMPTS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ConfirmationPromptAlignment", + "description": "The alignment of the confirmation prompt text when displayed on the in-store reader.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CENTER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LEFT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "CountryCode", + "description": "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.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "CountryCodeAlpha2", + "description": "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).", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CreateClientTokenInput", + "description": "Top-level input field for generating a client token.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "clientToken", + "description": "Input fields for creating a client token.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ClientTokenInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CreateClientTokenPayload", + "description": "Top-level fields returned when creating a client token.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clientToken", + "description": "A Base64 encoded string used to initialize client SDKs.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CreateCustomerInput", + "description": "Top-level field for creating a customer.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customer", + "description": "Input fields for creating a customer.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CustomerInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CreateCustomerPayload", + "description": "Top-level fields returned when creating a customer.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "customer", + "description": "Information about the customer that was created. Can be used when vaulting payment methods or creating transactions to associate those objects.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Customer", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CreateDisputeFileEvidenceInput", + "description": "Top-level input fields for adding file evidence to a dispute.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "disputeId", + "description": "The ID of the dispute to be accepted.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "category", + "description": "The category for the evidence file.", + "type": { + "kind": "ENUM", + "name": "DisputeFileEvidenceCategory", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CreateDisputeFileEvidencePayload", + "description": "Top-level field returned when creating file evidence for a dispute.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "evidence", + "description": "The evidence object created.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "DisputeFileEvidence", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "dispute", + "description": "Information about the dispute the evidence is attached to.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Dispute", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CreateDisputeTextEvidenceInput", + "description": "Top-level input fields for creating text evidence for a dispute.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "disputeId", + "description": "The ID of the dispute to create the evidence for.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "category", + "description": "The category of the text evidence.", + "type": { + "kind": "ENUM", + "name": "DisputeTextEvidenceCategory", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "content", + "description": "The content of the text evidence.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CreateDisputeTextEvidencePayload", + "description": "Top-level field returned when creating text evidence for a dispute.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "evidence", + "description": "The evidence object created.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "DisputeTextEvidence", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CreateInStoreLocationInput", + "description": "Input fields for creating an in store location.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "location", + "description": "Input fields to create an in-store Location.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "InStoreLocationInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CreateInStoreLocationPayload", + "description": "Top-level fields returned when creating an in-store location.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "location", + "description": "The in-store location.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreLocation", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CreateNonInstantLocalPaymentContextInput", + "description": "Top-level input fields for creating a non-instant local payment context.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentContext", + "description": "Input fields for creating a non-instant local payment context.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NonInstantLocalPaymentContextInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CreateNonInstantLocalPaymentContextPayload", + "description": "The result of a request to make a local payment context.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentContext", + "description": "Details about the local payment context.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "LocalPaymentContext", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CreatePayPalBillingAgreementInput", + "description": "Top-level input field for creating a PayPal Billing Agreement Token.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "Braintree merchant account ID associated with the PayPal account to be used for the Billing Agreement creation.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "returnUrl", + "description": "URL for redirect back to merchant app on the client indicating successful approval.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "URL", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "cancelUrl", + "description": "URL for redirect back to merchant app on the client indicating unsuccessful approval.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "URL", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "description", + "description": "Description of the PayPal Billing Agreement, displayed to the PayPal user on paypal.com and other PayPal user experiences.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "email", + "description": "Email of the payer (if known). This will prepopulate the input field in the PayPal approval page.", + "type": { + "kind": "SCALAR", + "name": "EmailAddress", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "offerPayPalCredit", + "description": "Indicates whether PayPal Credit should be offered in the PayPal approval flow.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paypalRiskCorrelationId", + "description": "PayPal Risk correlation ID (also known as the Client Metadata ID).", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paypalExperienceProfile", + "description": "Defines the experience profile used to render the approval flow.", + "type": { + "kind": "INPUT_OBJECT", + "name": "PayPalExperienceProfileInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "shippingAddress", + "description": "Merchant-provided shipping address. Fields addressLine1, adminArea2, and countryCode are required for Billing Agreements.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AddressInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CreatePayPalBillingAgreementPayload", + "description": "Top-level fields returned from setting up a PayPal Billing Agreement Token.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "billingAgreementToken", + "description": "The Billing Agreement token.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "approvalUrl", + "description": "The URL for getting user approval of the PayPal Billing Agreement.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "URL", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CreatePayPalOneTimePaymentInput", + "description": "Top-level input field for creating a PayPal One-Time Payment.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "Braintree merchant account ID associated with the PayPal account to be used for the One-Time payment creation.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "Total amount for payment to be charged to consumer.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "MonetaryAmountInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "cancelUrl", + "description": "URL for redirect back to merchant app on the client indicating unsuccessful approval.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "URL", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "email", + "description": "Email of the payer. This will prepopulate the input field in the PayPal approval login page.", + "type": { + "kind": "SCALAR", + "name": "EmailAddress", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "intent", + "description": "The payment intent.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "PayPalIntent", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "lineItems", + "description": "The line items for this transaction. Maximum 249 line items.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PayPalLineItemInput", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "offerPayLater", + "description": "Indicates whether PayPal Pay Later should be offered in the PayPal approval flow.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paypalRiskCorrelationId", + "description": "PayPal Risk correlation ID (also known as the Client Metadata ID).", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paypalExperienceProfile", + "description": "Defines the experience profile used to render the approval flow.", + "type": { + "kind": "INPUT_OBJECT", + "name": "PayPalExperienceProfileInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "requestBillingAgreement", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "billingAgreementDescription", + "description": "A description of the Billing Agreement being requested. This is displayed to the customer on paypal.com when `requestBillingAgreement` is true. Maximum 127 characters.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "returnUrl", + "description": "URL for redirect back to merchant app on the client indicating successful approval.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "URL", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "shippingAddress", + "description": "Merchant-provided shipping address. If passing a shipping address, fields addressLine1, adminArea2, and countryCode are required.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AddressInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "shippingOptions", + "description": "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.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PayPalShippingOptionInput", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CreatePayPalOneTimePaymentPayload", + "description": "Top-level fields returned from setting up a PayPal One-Time Payment.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "approvalUrl", + "description": "The URL for getting user approval of the PayPal payment.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "URL", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentId", + "description": "The PayPal payment ID. This ID is prefixed with \"PAYID-\".", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CreateUniversalAccessTokenInput", + "description": "Top-level input field for generating a PayPal access token.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customerId", + "description": "The ID of an existing customer. Including this will allow the access token to interact with this customer's data.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "type", + "description": "Authentication context class reference for the universal access token.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "ACRType", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CreateUniversalAccessTokenPayload", + "description": "Top-level fields returned when creating a universal access token.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accessToken", + "description": "The created universal access token.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "AccessToken", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "CreditCardBrandCode", + "description": "A code identifying the card brand.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "AMERICAN_EXPRESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CITI", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DINERS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DISCOVER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ELO", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "HIPER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "HIPERCARD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INTERNATIONAL_MAESTRO", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "JCB", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MASTERCARD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SOLO", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SWITCH", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UK_MAESTRO", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNION_PAY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNKNOWN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VISA", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "american_express", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "citi", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "diners", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "discover", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "elo", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hiper", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hipercard", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "international_maestro", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "jcb", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mastercard", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "solo", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "switch", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "uk_maestro", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "union_pay", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "unknown", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "visa", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CreditCardConfiguration", + "description": "Configuration for credit card tokenization.", + "fields": [ + { + "name": "supportedCardBrands", + "description": "A list of card brands supported by the merchant for credit card processing.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "CreditCardBrandCode", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "challenges", + "description": "A list of challenges that are required by the merchant to process a given credit card.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "Challenge", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "threeDSecureEnabled", + "description": "Whether or not the merchant supports 3D Secure.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `threeDSecure` instead." + }, + { + "name": "threeDSecure", + "description": "Configuration for 3D Secure.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "ThreeDSecureConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fraudDataCollectionEnabled", + "description": "Whether or not fraud data collection is enabled for the merchant.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CreditCardDetails", + "description": "Details about a credit card.", + "fields": [ + { + "name": "brandCode", + "description": "A static code identifying the card brand.", + "args": [], + "type": { + "kind": "ENUM", + "name": "CreditCardBrandCode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "last4", + "description": "The last four digits of the card number.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bin", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "binData", + "description": "Information about the card based on its BIN.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "BinRecord", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "expirationMonth", + "description": "The month of the expiration date, formatted MM.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "expirationYear", + "description": "The year of the expiration date, formatted YYYY.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cardholderName", + "description": "The cardholder's name.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "uniqueNumberIdentifier", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "origin", + "description": "Additional information if the credit card was provided from a third-party origin, such as Apple Pay, Google Pay, or another digital wallet.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethodOrigin", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "billingAddress", + "description": "The billing address associated with the credit card.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Address", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "threeDSecure", + "description": "3D Secure information for the payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "ThreeDSecureDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "imageUrl", + "description": "A URL to an image logo representing the card brand.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "This field is included for supporting legacy clients." + }, + { + "name": "brand", + "description": "The display name of the card brand, e.g. \"Visa\" or \"American Express\".", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `brandCode` instead." + }, + { + "name": "cardOnFileNetworkTokenized", + "description": "Indicates whether the card on file is network tokenized.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CreditCardFraudToolsOptionsInput", + "description": "Input fields that allow you to skip certain fraud checks. These will override Control Panel settings.", + "fields": null, + "inputFields": [ + { + "name": "skipCvv", + "description": "Skip CVV checks. Will result in a `cvvResponse` of `BYPASS` in the response from the processor.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "skipAvs", + "description": "Skip AVS checks. Will result in an `avsPostalCodeResponse` of `BYPASS` in the response from the processor.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "skipAdvancedFraudChecking", + "description": "Skip [advanced fraud checks](https://developers.braintreepayments.com/guides/advanced-fraud-management-tools/overview).", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CreditCardInput", + "description": "Input fields for a credit card.", + "fields": null, + "inputFields": [ + { + "name": "number", + "description": "The 12-to-19-digit value that uniquely identifies this credit card, also known as the primary account number or PAN.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "expirationYear", + "description": "The two- or four-digit year associated with a credit card, formatted `YYYY` or `YY`.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "expirationMonth", + "description": "The expiration month of a credit card, formatted `MM`.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "cvv", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "cardholderName", + "description": "When supplied, the cardholder name that will be tokenized with the contents of the fields.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "billingAddress", + "description": "The billing address for the credit card.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AddressInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "CreditCardLast4", + "description": "A four-digit string.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "CreditCardNumber", + "description": "A number that passes Luhn validation.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CreditCardTransactionDetails", + "description": "Credit card specific details on a transaction or verification.", + "fields": [ + { + "name": "creditCard", + "description": "The details of the credit card itself.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "CreditCardDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "networkTransactionId", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accountType", + "description": "For combo cards, what account type was used for this specific transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "CardAccountType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "acquirerReferenceNumber", + "description": "Reference value assigned to a card transaction once it has been processed.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "processedWithCardOnFileNetworkToken", + "description": "Indicates whether the transaction was processed with a card on file network token.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accountBalance", + "description": "The remaining balance in the account after this transaction. This field is only returned for payment methods such as prepaid cards.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CreditCardTransactionOptionsInput", + "description": "Input fields for creating a transaction by authorizing or charging a credit card.", + "fields": null, + "inputFields": [ + { + "name": "externalVault", + "description": "Details about this transaction if it's being created from a credit card that is or will be stored in an non-Braintree vault.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TransactionExternalVaultOptionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "billingAddress", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AddressInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "accountType", + "description": "The type of account to be used when transacting with a combo card.", + "type": { + "kind": "ENUM", + "name": "CardAccountType", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "tokenizedCvv", + "description": "The CVV for the credit card to be used when creating this transction, securely tokenized with the `tokenizeCvv` mutation.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "fraudTools", + "description": "Control which fraud tools will be applied to this transaction. Fraud tools cannot be retroactively applied to a transaction if skipped.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CreditCardFraudToolsOptionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "threeDSecureAuthentication", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecureAuthenticationInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "scaExemption", + "description": "The type of Strong Customer Authentication Exemption requested.", + "type": { + "kind": "ENUM", + "name": "ScaExemptionType", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "installmentCount", + "description": "Number of monthly installments (can be anywhere between 2 and 12).", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CreditCardVerificationDetails", + "description": "Information specific to verifications of credit card payment methods.", + "fields": [ + { + "name": "amount", + "description": "The amount used when performing the verification. May be 0.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CreditCardVerificationOptionsInput", + "description": "Input fields that specify options for verifying the credit card.", + "fields": null, + "inputFields": [ + { + "name": "merchantAccountId", + "description": "Deprecated: Please use `merchantAccountId` in the base input instead.\n\nID of the merchant account to use when verifying the credit card.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "accountType", + "description": "The type of account to be used when verifying a combo card.", + "type": { + "kind": "ENUM", + "name": "CardAccountType", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "riskData", + "description": "Customer device information, which is sent directly to supported processors for fraud analysis.", + "type": { + "kind": "INPUT_OBJECT", + "name": "RiskDataInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "fraudTools", + "description": "Control which fraud tools will be applied to this verification. Fraud tools cannot be retroactively applied to a verification if skipped.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CreditCardFraudToolsOptionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "tokenizedCvv", + "description": "The CVV for the credit card to be used when verifying the credit card, securely tokenized with the `tokenizeCvv` mutation.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "The amount to use to verify the credit card.", + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "skip", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "CurrencyCodeAlpha", + "description": "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).", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CustomActionsPaymentContext", + "description": "Top-level fields returned from a Custom Actions payment context.", + "fields": [ + { + "name": "id", + "description": "The identifier of the payment context.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createdAt", + "description": "Date and time when the payment context was created.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "updatedAt", + "description": "Date and time when the payment context was updated.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "customFields", + "description": "A list of fields stored on a PaymentContext during execution of a Custom Actions handler (Five (5) entries maximum).", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CustomActionsPaymentContextField", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "PaymentContext", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CustomActionsPaymentContextField", + "description": "Fields returned by the createPaymentContext custom actions event handler.", + "fields": [ + { + "name": "name", + "description": "An alphanumeric string used as a key to lookup a CustomField value (255 characters maximum).", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "value", + "description": "An alphanumeric string used to store a CustomField value (7168 characters maximum).", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CustomActionsPaymentContextFieldInput", + "description": "Fields that are provided when creating the payment context.", + "fields": null, + "inputFields": [ + { + "name": "name", + "description": "An alphanumeric string used as a key to lookup a CustomField value (255 characters maximum).", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "value", + "description": "An alphanumeric string used to store a CustomField value (7168 characters maximum).", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CustomActionsPaymentMethodDetails", + "description": "Details about a custom actions payment method.", + "fields": [ + { + "name": "actionName", + "description": "The action to be invoked when using the payment method.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fields", + "description": "Fields that your action requires.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CustomActionsPaymentMethodField", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CustomActionsPaymentMethodField", + "description": "Fields that are provided during tokenization and are presented to the invoked action to be consumed.", + "fields": [ + { + "name": "name", + "description": "The name of this field, e.g. \"accountNumber\".", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "displayValue", + "description": "The value displayed in the Control Panel or API, e.g. \"*****6789\".", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CustomActionsPaymentMethodFieldInput", + "description": "Fields that are provided during tokenization and are presented to the invoked action to be consumed.", + "fields": null, + "inputFields": [ + { + "name": "name", + "description": "The name of this field. e.g. \"accountNumber\".", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "value", + "description": "The value of this field. e.g. \"123456789\".", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "displayValue", + "description": "The value displayed in the Control Panel or API. e.g. \"*****6789\".", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CustomActionsPaymentMethodInput", + "description": "Input fields for a Custom Actions payment method.", + "fields": null, + "inputFields": [ + { + "name": "actionName", + "description": "The action you wish to invoke when using the tokenized payment method.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "fields", + "description": "Fields that your action requires.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CustomActionsPaymentMethodFieldInput", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CustomField", + "description": "A merchant-defined custom field to store additional information.", + "fields": [ + { + "name": "name", + "description": "The name of the custom field.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "value", + "description": "The value of the custom field.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CustomFieldInput", + "description": "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.", + "fields": null, + "inputFields": [ + { + "name": "name", + "description": "Name of the custom field as defined in the Control Panel.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CustomFieldName", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "value", + "description": "Value for the named custom field. A null value will ignore (on create) or remove (on update) the custom field.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "CustomFieldName", + "description": "A string representing a custom field value. Contains letters, numbers, and underscores.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Customer", + "description": "Information about a customer and their associated payment methods and transactions.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "legacyId", + "description": "Legacy unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "company", + "description": "Company or business name associated with this customer.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createdAt", + "description": "Date and time at which the customer was created.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "customFields", + "description": "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).", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CustomField", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "defaultPaymentMethod", + "description": "Customer's default payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "email", + "description": "Email address for this customer.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "firstName", + "description": "Customer's first name.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lastName", + "description": "Customer's last name.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "phoneNumber", + "description": "The phone number for this customer.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethods", + "description": "Payment methods belonging to this customer.", + "args": [ + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "PaymentMethodConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactions", + "description": "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.", + "args": [ + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TransactionConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "CustomerAuthenticationIndicator", + "description": "A value indicating when to perform further customer authentication.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "OPTIONAL", + "description": "Indicates further authentication is optional.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "REQUIRED", + "description": "Indicates further authentication should be performed.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNAVAILABLE", + "description": "Customer authentication indicator information is unavailable at this time.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "CustomerAuthenticationRegulationEnvironment", + "description": "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/).", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "PSDTWO", + "description": "EU Regulation [PSD2 Strong Customer Authentication](https://www.braintreepayments.com/blog/understanding-and-preparing-for-psd2-strong-customer-authentication/) applies to this transaction.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RBI", + "description": "Reserve Bank of India regulations apply to this transactions.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNAVAILABLE", + "description": "Customer authentication regulation environment information is unavailable for this transaction at this time.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNREGULATED", + "description": "No customer authentication regulations apply to this transaction.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CustomerConnection", + "description": "A paginated list of customers.", + "fields": [ + { + "name": "edges", + "description": "A list of customers.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CustomerConnectionEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information about the page of customers contained in `edges`.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CustomerConnectionEdge", + "description": "A customer within a CustomerConnection.", + "fields": [ + { + "name": "cursor", + "description": "This customer's location within the CustomerConnection. Used for requesting additional pages.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The customer.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Customer", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CustomerInput", + "description": "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.", + "fields": null, + "inputFields": [ + { + "name": "company", + "description": "Company or business name associated with the customer.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customFields", + "description": "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.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CustomFieldInput", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "email", + "description": "Email address for the customer.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "firstName", + "description": "Customer's first name.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "lastName", + "description": "Customer's last name.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "phoneNumber", + "description": "The customer's phone number.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "taxIdentifiers", + "description": "A set of country code ID pairs, analogous to Social Security numbers in the United States.\n\nA 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.\n\n**Note:** You will only need to use these fields for processing in certain countries.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CustomerTaxIdentifierInput", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CustomerSearchInput", + "description": "Input fields for searching for customers.", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": "Find customers with an id or ids.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "company", + "description": "Find customers with a given company or business name.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "createdAt", + "description": "Find customers with a given created at time.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTimestampInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "email", + "description": "Find customers with a given email address.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "firstName", + "description": "Find customers with a given first name.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "lastName", + "description": "Find customers with a given last name.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "phoneNumber", + "description": "Find customers with a given phone number.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CustomerTaxIdentifierInput", + "description": "The customer's tax identifer for a given tax jurisdiction.", + "fields": null, + "inputFields": [ + { + "name": "identifier", + "description": "The identifier provided in the format required for the given tax jurisdiction.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "countryCode", + "description": "The country code of the tax jurisdiction for this tax identifier.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CountryCode", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Date", + "description": "A date in the format YYYY-MM-DD.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "DeleteCustomerInput", + "description": "Top-level input fields for deleting a customer.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customerId", + "description": "The ID of the customer to be deleted.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DeleteCustomerPayload", + "description": "Top-level output field from deleting a customer.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "DeleteDisputeEvidenceInput", + "description": "Input fields for deleting dispute evidence.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "evidenceId", + "description": "The ID of the evidence to be deleted.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "disputeId", + "description": "The ID of the dispute that the evidence belongs to.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DeleteDisputeEvidencePayload", + "description": "Top-level field returned when deleting evidence from a dispute.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "DeletePaymentMethodFromSingleUseTokenInput", + "description": "Top-level input fields for deleting a payment method referenced by a single-use token.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "singleUseTokenId", + "description": "A single-use token ID referencing a payment method.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DeletePaymentMethodFromSingleUseTokenPayload", + "description": "Top-level output field from deleting a payment method referenced by a single-use token.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "DeletePaymentMethodFromVaultInput", + "description": "Top-level input fields for deleting a multi-use payment method from the vault.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "The ID of the multi-use payment method to be deleted.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "initiatedBy", + "description": "Indicates whether this deletion was initiated by the merchant or the customer (via the merchant site/app).", + "type": { + "kind": "ENUM", + "name": "PaymentMethodDeletionInitiator", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "deleteRelatedPaymentMethods", + "description": "Additionally request deletion of all related payment methods (ones that store the same underlying payment instrument as the one specified by `paymentMethodId`) across all customers for current merchant.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "fraudRelated", + "description": "Indicates if this deletion is related to suspected fraud, as determined by the merchant.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DeletePaymentMethodFromVaultPayload", + "description": "Top-level output field from deleting a multi-use payment method.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "DetachedRefundInput", + "description": "Specific input fields for describing a detached refund.", + "fields": null, + "inputFields": [ + { + "name": "amount", + "description": "The amount to refund.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "orderId", + "description": "The refund's order ID.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "ID of the merchant account that will be used when performing the refund.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customFields", + "description": "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.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CustomFieldInput", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "descriptor", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TransactionDescriptorInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DisbursementBankAccount", + "description": "Details about the disbursement bank account.", + "fields": [ + { + "name": "last4", + "description": "The last four digits of the bank account number.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "routingNumber", + "description": "The routing number of the bank.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DisbursementDetails", + "description": "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.", + "fields": [ + { + "name": "date", + "description": "The date that the funds associated with this transaction were disbursed.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "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).", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "exchangeRate", + "description": "The exchange rate from the presentment currency to the settlement currency. If the currencies are the same, this will be 1.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fundsHeld", + "description": "Indicates whether funds have been withheld from a disbursement to the merchant's account.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "DisplayItemType", + "description": "The display item type to be displayed on the in-store reader.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CHARGE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DISCOUNT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LINE_BREAK", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TEXT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Dispute", + "description": "[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.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "legacyId", + "description": "Legacy unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amountDisputed", + "description": "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.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amountWon", + "description": "If an amount was disputed, the amount of money awarded back to the merchant if the dispute was reversed.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "caseNumber", + "description": "The case number for the dispute.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createdAt", + "description": "Date and time at which the dispute was created.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receivedDate", + "description": "Date the dispute was received by the merchant.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "referenceNumber", + "description": "The transaction reference number for the dispute.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "responseDeadline", + "description": "The deadline for the merchant to submit a response to the dispute.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "replyByDate", + "description": "The reply by date for the merchant to submit a response to the dispute.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": "The type of dispute.", + "args": [], + "type": { + "kind": "ENUM", + "name": "DisputeType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "evidence", + "description": "Evidence records submitted by the merchant for the dispute.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "DisputeEvidence", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "originalDispute", + "description": "If this dispute is a follow-up to a previous chargeback or retrieval, the original dispute.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Dispute", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "processorResponse", + "description": "Additional information from the payment processor.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "DisputeProcessorResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The status of the dispute.", + "args": [], + "type": { + "kind": "ENUM", + "name": "DisputeStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "statusHistory", + "description": "A log of history events containing status changes by date for this dispute.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DisputeStatusEvent", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transaction", + "description": "The disputed transaction which the customer is either requesting further information on or challenging.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "chargebackProtectionLevel", + "description": "The chargeback protection status of the dispute.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ChargebackProtectionLevel", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `protectionLevel` instead." + }, + { + "name": "protectionLevel", + "description": "The protection level of the dispute.", + "args": [], + "type": { + "kind": "ENUM", + "name": "DisputeProtectionLevel", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DisputeConnection", + "description": "A paginated list of disputes.", + "fields": [ + { + "name": "edges", + "description": "A list of disputes.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DisputeConnectionEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information about the page of disputes contained in `edges`.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DisputeConnectionEdge", + "description": "A dispute within a DisputeConnection.", + "fields": [ + { + "name": "cursor", + "description": "This dispute's location within the DisputeConnection. Used for requesting additional pages.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The dispute.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Dispute", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "DisputeEvidence", + "description": "Evidence provided by a merchant to respond to a dispute.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "legacyId", + "description": "Legacy unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createdAt", + "description": "Date and time when the evidence was created with Braintree.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sentToProcessorAt", + "description": "Date and time when the evidence was sent to the processor.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "category", + "description": "The evidence category.", + "args": [], + "type": { + "kind": "ENUM", + "name": "DisputeEvidenceCategory", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "DisputeFileEvidence", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "DisputeTextEvidence", + "ofType": null + } + ] + }, + { + "kind": "ENUM", + "name": "DisputeEvidenceCategory", + "description": "The evidence category that specifies which requirement it satisfies.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "AVS_RESPONSE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CARRIER_NAME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CARRIER_NAME_OTHER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CREDIT_ISSUED_AMOUNT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CREDIT_ISSUED_DATE_TIME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DEVICE_ID", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DEVICE_NAME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DOWNLOAD_DATE_TIME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "EVIDENCE_TYPE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GENERAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GEOGRAPHICAL_LOCATION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LEGIT_PAYMENTS_FOR_SAME_MERCHANDISE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MERCHANT_WEBSITE_OR_APP_ACCESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_DIGITAL_GOODS_TRANSACTION_ARN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_DIGITAL_GOODS_TRANSACTION_DATE_TIME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_DIGITAL_GOODS_TRANSACTION_ID", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_NON_DISPUTED_TRANSACTION_ARN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_NON_DISPUTED_TRANSACTION_DATE_TIME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_NON_DISPUTED_TRANSACTION_EMAIL_ADDRESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_NON_DISPUTED_TRANSACTION_ID", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_NON_DISPUTED_TRANSACTION_IP_ADDRESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_NON_DISPUTED_TRANSACTION_PHONE_NUMBER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_NON_DISPUTED_TRANSACTION_PHYSICAL_ADDRESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PROFILE_SETUP_OR_APP_ACCESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PROOF_OF_3D_SECURE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PROOF_OF_AUTHORIZED_SIGNER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PROOF_OF_DELIVERY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PROOF_OF_DELIVERY_EMP_ADDRESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PROOF_OF_POSSESSION_OR_USAGE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PURCHASER_EMAIL_ADDRESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PURCHASER_IP_ADDRESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PURCHASER_NAME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RECURRING_TRANSACTION_ARN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RECURRING_TRANSACTION_DATE_TIME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RECURRING_TRANSACTION_ID", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "REFUND_ID", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SIGNED_DELIVERY_FORM", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SIGNED_ORDER_FORM", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TICKET_PROOF", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TRACKING_NUMBER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TRACKING_URL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DisputeFileEvidence", + "description": "Images, files, or other evidence supporting a dispute case.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "legacyId", + "description": "Legacy unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createdAt", + "description": "Date and time at which the evidence was created with Braintree.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sentToProcessorAt", + "description": "Date and time at which the evidence was sent to the processor.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": "A URL where you can retrieve the dispute evidence.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "category", + "description": "The evidence category.", + "args": [], + "type": { + "kind": "ENUM", + "name": "DisputeEvidenceCategory", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "DisputeEvidence", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "DisputeFileEvidenceCategory", + "description": "For file evidence: the evidence category that specifies which requirement it satisfies.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "GENERAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LEGIT_PAYMENTS_FOR_SAME_MERCHANDISE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MERCHANT_WEBSITE_OR_APP_ACCESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PROFILE_SETUP_OR_APP_ACCESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PROOF_OF_3D_SECURE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PROOF_OF_AUTHORIZED_SIGNER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PROOF_OF_DELIVERY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PROOF_OF_DELIVERY_EMP_ADDRESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PROOF_OF_POSSESSION_OR_USAGE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SIGNED_DELIVERY_FORM", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SIGNED_ORDER_FORM", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TICKET_PROOF", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DisputeProcessorResponse", + "description": "Information about the dispute provided by the processor.", + "fields": [ + { + "name": "processorComments", + "description": "Additional comments forwarded by the processor.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reason", + "description": "The reason the dispute was created.", + "args": [], + "type": { + "kind": "ENUM", + "name": "DisputeReason", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reasonCode", + "description": "The reason code provided by the processor.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reasonDescription", + "description": "The reason code description based on the `reasonCode`.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receivedDate", + "description": "Date the dispute was received by the merchant.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "referenceNumber", + "description": "The string value representing the reference number provided by the processor (if any).", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "DisputeProtectionLevel", + "description": "The Protection level indicates if dispute is eligible for protection through any feature enabled on your account.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CHARGEBACK_PROTECTION_TOOL", + "description": "The dispute is protected by the standard chargeback protection product.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "EFFORTLESS_CHARGEBACK_PROTECTION_TOOL", + "description": "The dispute is protected by the effortless chargeback protection product.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NO_PROTECTION", + "description": "The merchant has not enrolled in any chargeback protection products, or the merchant is enrolled, but the dispute is not protected.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "DisputeReason", + "description": "The reason a customer opened a chargeback, pre-arbitration, or retrieval.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CANCELLED_RECURRING_TRANSACTION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CREDIT_NOT_PROCESSED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DUPLICATE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FRAUD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GENERAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INVALID_ACCOUNT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NOT_RECOGNIZED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRODUCT_NOT_RECEIVED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRODUCT_UNSATISFACTORY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RETRIEVAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TRANSACTION_AMOUNT_DIFFERS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "DisputeSearchInput", + "description": "Input fields for searching for Disputes.", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": "Find disputes with an id or ids.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "status", + "description": "Find disputes with a given status.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchDisputeStatusInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "type", + "description": "Find disputes with a given type.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchDisputeTypeInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "reason", + "description": "Find disputes with a given reason description.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchDisputeReasonInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "caseNumber", + "description": "Find disputes with a given processor's caseNumber.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "referenceNumber", + "description": "Find disputes with a given transaction referenceNumber.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "amountDisputed", + "description": "Find disputes for a given amount or currency.", + "type": { + "kind": "INPUT_OBJECT", + "name": "MonetaryAmountSearchInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "amountWon", + "description": "Find disputes by the amount won.", + "type": { + "kind": "INPUT_OBJECT", + "name": "MonetaryAmountSearchInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "receivedDate", + "description": "Find disputes by the date received.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchDateInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "replyByDate", + "description": "Find disputes by the reply by date.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchDateInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "effectiveDate", + "description": "Find disputes by the date a status change history event took effect.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchDateInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transaction", + "description": "Find disputes based on a set of transaction criteria.", + "type": { + "kind": "INPUT_OBJECT", + "name": "DisputeTransactionSearchInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "chargebackProtectionLevel", + "description": "Deprecated: Please use `protectionLevel` instead.\n\nFind disputes with a given computed chargeback protection level.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchChargebackProtectionLevelInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "protectionLevel", + "description": "Find disputes with a given protection level.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchDisputeProtectionLevelInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "DisputeStatus", + "description": "The status of the dispute.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ACCEPTED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DISPUTED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "EXPIRED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LOST", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OPEN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WON", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DisputeStatusEvent", + "description": "A record of a status the dispute has passed through.", + "fields": [ + { + "name": "disbursementDate", + "description": "The date any funds associated with this event were disbursed.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The status of the dispute.", + "args": [], + "type": { + "kind": "ENUM", + "name": "DisputeStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timestamp", + "description": "Date and time when the status event occurred.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "effectiveDate", + "description": "The date the status event took effect.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DisputeTextEvidence", + "description": "Text evidence supporting a dispute case.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "legacyId", + "description": "Legacy unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createdAt", + "description": "Date and time at which the evidence was created with Braintree.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sentToProcessorAt", + "description": "Date and time at which the evidence was sent to the processor.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "comment", + "description": "The body for text evidence.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `content` for name instead." + }, + { + "name": "content", + "description": "The body for text evidence.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "category", + "description": "The evidence category.", + "args": [], + "type": { + "kind": "ENUM", + "name": "DisputeEvidenceCategory", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "DisputeEvidence", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "DisputeTextEvidenceCategory", + "description": "For text evidence: the evidence category that specifies which requirement it satisfies.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "AVS_RESPONSE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CREDIT_ISSUED_AMOUNT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CREDIT_ISSUED_DATE_TIME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DEVICE_ID", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DEVICE_NAME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DOWNLOAD_DATE_TIME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GEOGRAPHICAL_LOCATION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_DIGITAL_GOODS_TRANSACTION_ARN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_DIGITAL_GOODS_TRANSACTION_DATE_TIME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_DIGITAL_GOODS_TRANSACTION_ID", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_NON_DISPUTED_TRANSACTION_ARN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_NON_DISPUTED_TRANSACTION_DATE_TIME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_NON_DISPUTED_TRANSACTION_EMAIL_ADDRESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_NON_DISPUTED_TRANSACTION_ID", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_NON_DISPUTED_TRANSACTION_IP_ADDRESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_NON_DISPUTED_TRANSACTION_PHONE_NUMBER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIOR_NON_DISPUTED_TRANSACTION_PHYSICAL_ADDRESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PURCHASER_EMAIL_ADDRESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PURCHASER_IP_ADDRESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PURCHASER_NAME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RECURRING_TRANSACTION_ARN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RECURRING_TRANSACTION_DATE_TIME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RECURRING_TRANSACTION_ID", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "DisputeTransactionSearchInput", + "description": "Transaction input fields for searching for disputes.", + "fields": null, + "inputFields": [ + { + "name": "transactionId", + "description": "Find disputes for a transaction id or ids.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customerId", + "description": "Find disputes for a customer id or ids.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transactionSource", + "description": "Find disputes with a given transaction source.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTransactionSourceInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodSnapshotType", + "description": "Find disputes on transactions charging payment methods of the given type.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentMethodSnapshotTypeInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "facilitatorOAuthApplicationClientId", + "description": "Find disputes on transactions created by a third party via the Grant API using a given OAuth application client ID.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "disbursementDate", + "description": "Find disputes by the transaction's disbursement date.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchDateInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "Find disputes on transactions associated with a merchant account ID or IDs.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "DisputeType", + "description": "Type of dispute.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CHARGEBACK", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRE_ARBITRATION", + "description": "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.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RETRIEVAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Duration", + "description": "An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) Duration that accepts Days, Hours, Minutes and Seconds.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ECommerceIndicator", + "description": "A card brand-specific two-digit string describing the mode of the transaction.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "EmailAddress", + "description": "The internationalized email address.
Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign.\nHowever, the generally accepted maximum length for an email address is 254 characters.\nThe pattern verifies that an unquoted @ sign exists.
\n\nminLength: 3\nmaxLength: 254\npattern: ^.+@[^\\\"\\\\-].+$.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "EmvCardOriginDetails", + "description": "Additional information about an integrated circuit card (ICC) payment method supplied by an in-store payment reader.", + "fields": [ + { + "name": "authorizationMode", + "description": "The authorization mode used to perform the transaction on the payment reader.", + "args": [], + "type": { + "kind": "ENUM", + "name": "InStoreReaderAuthorizationMode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pinVerified", + "description": "An indicator for whether the transaction was verified via pin.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "inputMode", + "description": "The input mode used on the payment reader to facilitate an in-store transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentReaderInputMode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminalId", + "description": "The ID of the terminal that was processed this transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "applicationPreferredName", + "description": "The preferred name associated with the application used to process an EMV transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "applicationIdentifier", + "description": "The identifier specifying which EMV application was used to process the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminalVerificationResult", + "description": "A status code representing the result of a series of validations performed against an EMV enabled credit card.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cardSequenceNumber", + "description": "A unique identifier for credit cards that share the same PAN.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "applicationInterchangeProfile", + "description": "An indicator of the credit card's capabilities within the processing application.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminalTransactionDate", + "description": "The local date that the transaction requested authorization from the payment reader, formatted YYMMDD.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminalTransactionType", + "description": "An indicator of the type of transaction specified during authorization processing.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cashbackAmount", + "description": "An additional amount associated with the transaction that represents the cashback amount requested by the cardholder.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "applicationUsageControl", + "description": "An indicator used to specify an issuer's restrictions for processing in a geographic region.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminalCountryCode", + "description": "The country code indicated by the payment reader to process the transaction with.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "applicationCryptogram", + "description": "The cryptogram provided by an integrated circuit card (ICC) used for processing the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cryptogramInformationData", + "description": "An indicator for the type of application cryptogram provided by an integrated circuit card (ICC) to process the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cardholderVerificationMethodResults", + "description": "An indicator of the cardholder verification method and if it was successful or unsuccessful.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "applicationTransactionCounter", + "description": "A counter managed by an integrated circuit card (ICC) that provides a reference to each transaction using that card.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "unpredictableNumber", + "description": "A value used to uniquely differentiate an application cryptogram used during authorization processing.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "issuerActionCodeDefault", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "issuerActionCodeDenial", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "issuerActionCodeOnline", + "description": "An indicator of the conditions that caused the payment reader to attempt to make a processor request.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "InStoreReaderOriginDetails", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ExchangeRate", + "description": "A value with more than one decimal place, representing an exchange rate between currencies. For example, `0.93014065558374`.\nminLength: 3\npattern: ^\\\\d+[.]\\\\d+$", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ExchangeRateQuote", + "description": "Details of the generated exchange rate quote.", + "fields": [ + { + "name": "id", + "description": "Unique identifier, which must be passed in the payment request in order to honor the exchange rate during settlement.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "baseAmount", + "description": "The amount in the `baseCurrency` to be converted to the `quoteCurrency`. If no amount was provided, then this amount is 1 unit of `baseCurrency`.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "quoteAmount", + "description": "The amount in the `quoteCurrency` converted from the `baseCurrency`.\nIf no amount was provided, then this amount is converted from 1 unit of `baseCurrency`, which will be the same as `exchangeRate` after rounding-off.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "exchangeRate", + "description": "This much of `quoteCurrency` is required to buy 1 unit of `baseCurrency`. This includes merchant `markupPercentage` if any.\nIf a `markupPercentage` is specified, this field will be the sum of that percentage and the `tradeRate`.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ExchangeRate", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tradeRate", + "description": "This is the rate at which PayPal will settle with the merchant.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ExchangeRate", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "expiresAt", + "description": "When the exchange rate quote represents expires.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "refreshesAt", + "description": "When the exchange rate quote represents will be refreshed.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ExchangeRateQuoteInput", + "description": "Input to generate the exchange rate quote.", + "fields": null, + "inputFields": [ + { + "name": "baseCurrency", + "description": "The currency code from which the exchange rate will be used to convert to the `quoteCurrency`.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyCodeAlpha", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "quoteCurrency", + "description": "The currency code to which the exchange rate will be used to convert from `baseCurrency`.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyCodeAlpha", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "baseAmount", + "description": "The amount in the `baseCurrency` to be converted to the `quoteCurrency`. If this is provided, the result will include the converted amount properly rounded.", + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "markup", + "description": "A percentage added into the exchange rate. This allows the merchant to settle for more than the quoted `tradeRate`.", + "type": { + "kind": "SCALAR", + "name": "Percentage", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ExchangeRateQuotePayload", + "description": "Exchange rate quotes for a specific customer.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "quotes", + "description": "Exchange rate quote details for each base and quote currency combination.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ExchangeRateQuote", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ExternalVaultStatus", + "description": "A credit card's assocation with an external vault.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "VAULTED", + "description": "The payment method for this transaction has been vaulted in an external vault.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WILL_VAULT", + "description": "The payment method has not been vaulted in an exernal vault, but it will be if this transaction is successfully processed.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "FacilitatorDetails", + "description": "Fields capturing information about a third party that provided payment information for this transaction via the Grant API, Shared Vault, or Google Pay.", + "fields": [ + { + "name": "oauthApplication", + "description": "The OAuth application that owns the payment information used to create the transaction.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "OAuthApplication", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "FailedEvent", + "description": "Accompanying information for a transaction that failed because it could not be successfully sent to the processor.", + "fields": [ + { + "name": "status", + "description": "The new status of the transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timestamp", + "description": "Date and time when the transaction failed.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "The amount of the transaction for this status event.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "The source for the transaction change to the new status.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "processorResponse", + "description": "Fields describing the payment processor response, or an explanation for the lack thereof.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "TransactionAuthorizationProcessorResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "networkResponse", + "description": "Fields describing the network response to the authorization request.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentNetworkResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "riskDecision", + "description": "Risk decision for this transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "RiskDecision", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminal", + "description": "Whether or not this is the final state for the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "PaymentStatusEvent", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "FinalizeDisputeInput", + "description": "Top-level input fields for finalizing a dispute.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "disputeId", + "description": "The ID of the dispute to be finalized.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "FinalizeDisputePayload", + "description": "Top-level field returned when finalizing a dispute.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "dispute", + "description": "Information about the dispute that was finalized.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Dispute", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Float", + "description": "Built-in Float", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "FraudProviderConfiguration", + "description": "Configuration for fraud protection provider.", + "fields": [ + { + "name": "merchantId", + "description": "The merchant ID used by the fraud protection provider to identify the fraud data collection request.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "The name of the fraud provider.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "FraudServiceProvider", + "description": "The fraud service provider used to generate the risk decision.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CHARGEBACK_PROTECTION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "EFFORTLESS_CHARGEBACK_PROTECTION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FRAUD_PROTECTION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FRAUD_PROTECTION_ADVANCED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FRAUD_PROTECTION_ENTERPRISE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "KOUNT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GatewayRejectedEvent", + "description": "Accompanying information for a gateway rejected transaction.", + "fields": [ + { + "name": "status", + "description": "The new status of the transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timestamp", + "description": "Date and time when the transaction was rejected by the gateway.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "The amount of the transaction for this status event.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "The source for the transaction change to the new status.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "gatewayRejectionReason", + "description": "The reason the transaction was rejected, based on your gateway settings.", + "args": [], + "type": { + "kind": "ENUM", + "name": "GatewayRejectionReason", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "processorResponse", + "description": "Fields describing the payment processor response. Depending on your gateway settings, the AVS and CVV responses may be the reason for the rejection.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "TransactionAuthorizationProcessorResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "networkResponse", + "description": "Fields describing the network response to the authorization request.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentNetworkResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "riskDecision", + "description": "Risk decision for this transaction. If the gatewayRejectionReason is fraud, this may be the reason for the rejection.", + "args": [], + "type": { + "kind": "ENUM", + "name": "RiskDecision", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminal", + "description": "Whether or not this is the final state for the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "duplicateOf", + "description": "The original transaction if the gateway rejection reason was `DUPLICATE`.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "PaymentStatusEvent", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "GatewayRejectionReason", + "description": "Possible reasons why a transaction was rejected by the gateway.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "APPLICATION_INCOMPLETE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AVS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AVS_AND_CVV", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CVV", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DUPLICATE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "EXCESSIVE_RETRY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FRAUD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MANUAL_TRANSACTIONS_DISABLED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAYMENT_METHOD_BLOCKED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RISK_THRESHOLD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "THREE_D_SECURE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TOKEN_ISSUANCE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TOO_MANY_CONFIRMATION_ATTEMPTS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNION_PAY_ENROLLMENT_REQUIRED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "GenerateExchangeRateQuoteInput", + "description": "Input to generate a list of exchange rate quotes.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "quotes", + "description": "Base and quote currency combinations for which the quote will be generated.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ExchangeRateQuoteInput", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GeoCoordinates", + "description": "Coordinates describing a geographic position.", + "fields": [ + { + "name": "latitude", + "description": "The angular distance of a place north or south of the earth's equator.\nA positive value is north of the equator, a negative value is south of the equator.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "longitude", + "description": "The angular distance of a place east or west of the meridian at Greenwich, England.\nA positive value is east of the prime meridian, a negative value is west of the prime meridian.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "GeoCoordinatesInput", + "description": "Coordinates describing a geographic position.", + "fields": null, + "inputFields": [ + { + "name": "latitude", + "description": "The angular distance of a place north or south of the earth's equator.\nA positive value is north of the equator, a negative value is south of the equator.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "longitude", + "description": "The angular distance of a place east or west of the meridian at Greenwich, England.\nA positive value is east of the prime meridian, a negative value is west of the prime meridian.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GooglePayConfiguration", + "description": "Configuration for Google Pay on Android and the web.", + "fields": [ + { + "name": "countryCode", + "description": "The country code of the acquiring bank where the transaction is likely to be processed.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "CountryCodeAlpha2", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "displayName", + "description": "A string used to identify the merchant to the customer.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "environment", + "description": "The environment being used for Google Pay.", + "args": [], + "type": { + "kind": "ENUM", + "name": "GooglePayEnvironment", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "googleAuthorization", + "description": "Authorization to use when tokenizing a Google Pay payment method.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "This field is included for supporting legacy clients." + }, + { + "name": "paypalClientId", + "description": "A string used to identify the merchant's PayPal account when generating a PayPal Closed Loop Token.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "supportedCardBrands", + "description": "A list of card brands supported by the merchant for Google Pay.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "CreditCardBrandCode", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "GooglePayEnvironment", + "description": "The environment being used for Google Pay.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "PRODUCTION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SANDBOX", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "production", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sandbox", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GooglePayOriginDetails", + "description": "Additional information about the payment method specific to Google Pay.", + "fields": [ + { + "name": "googleTransactionId", + "description": "A reference ID for the Google transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bin", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "HyperwalletAccountDetails", + "description": "Details about a Hyperwallet account.", + "fields": [ + { + "name": "userId", + "description": "The ID of the Hyperwallet account.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ID", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "IDealConfiguration", + "description": "Configuration for iDEAL.", + "fields": [ + { + "name": "routeId", + "description": "The route ID used to process an iDEAL payment.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "assetsUrl", + "description": "A URL used to redirect the customer to the bank's web page.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "InStoreContext", + "description": "Reference object for an in-store request.", + "fields": [ + { + "name": "id", + "description": "A unique ID for this in-store request.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "Use the id field from the InStoreContextPayload" + }, + { + "name": "transaction", + "description": "The transaction representing the charge on the payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use a Node query for a RequestTransactionInStoreContext" + }, + { + "name": "refund", + "description": "The refund representing the refund on the payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Refund", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use a Node query for a RequestRefundInStoreContext" + }, + { + "name": "reader", + "description": "The reader associated with the in-store request.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreReader", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use the reader field from the InStoreContextPayload" + }, + { + "name": "status", + "description": "The status of the context created.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "InStoreContextStatus", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "Use the status field from the InStoreContextPayload" + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "InStoreContextResult", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "InStoreContextPayload", + "description": "Top-level fields returned when requesting a state change on an in-store reader.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "inStoreContext", + "description": "The in-store context created when an in-store flow is initiated.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreContext", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use top-level fields" + }, + { + "name": "id", + "description": "A unique ID for this in-store context request.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reader", + "description": "The reader associated with the in-store request.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreReader", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The status of the context created.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "InStoreContextStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "InStoreContextResult", + "description": "Reference object for an in-store request.", + "fields": [ + { + "name": "id", + "description": "A unique ID for this in-store request.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reader", + "description": "The reader associated with the in-store request.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreReader", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "InStoreContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "RequestChargeInStoreContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "RequestConfirmationPromptInStoreContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "RequestDisplayInStoreContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "RequestFirmwareUpdateInStoreContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "RequestRefundInStoreContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "RequestSignaturePromptInStoreContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "RequestVaultInStoreContext", + "ofType": null + } + ] + }, + { + "kind": "ENUM", + "name": "InStoreContextStatus", + "description": "Potential statuses of a context created as part of an in-store request.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CANCELLED", + "description": "The context was successfully canceled.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "COMPLETE", + "description": "Successful. The context was ended.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FAILED", + "description": "Not successful. The context was ended.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PENDING", + "description": "Flow in-progress. Waiting for reader or point of sale interaction.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PROCESSING", + "description": "Payment flow in-progress. Customer payment method submitted for transaction processing.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "InStoreDisplayItemInput", + "description": "Input fields for an individual display item on an in-store reader.", + "fields": null, + "inputFields": [ + { + "name": "kind", + "description": "The display item type to be displayed on the in-store reader.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "DisplayItemType", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "description", + "description": "The display item text to be displayed on the in-store reader. 35 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "quantity", + "description": "The number of units for a CHARGE or DISCOUNT item. Must be greater than 0.", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "The total amount of a CHARGE or DISCOUNT item.", + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "InStoreLocation", + "description": "An in-store location.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "Name of the in-store location.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "internalName", + "description": "A merchant-assigned internal name of this location, unique to this merchant.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "address", + "description": "The address of the in-store location.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreLocationAddress", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "geoCoordinates", + "description": "The coordinates of this location.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "GeoCoordinates", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "payerId", + "description": "The PayPal account ID to which this location was added.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "qrCodePaymentsEnabled", + "description": "Whether QR code payments will be enabled for this location.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "InStoreLocationAddress", + "description": "Input fields for an in-store location address.", + "fields": [ + { + "name": "streetAddress", + "description": "The street address.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "extendedAddress", + "description": "Extended address information, such as an apartment or suite number.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "locality", + "description": "Locality/city.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": "State or province.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "postalCode", + "description": "Postal code in any country's format, otherwise known as CAP, CEP, Eircode, NPA, PIN, PLZ, or ZIP code.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "countryCode", + "description": "Country code for the address.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "CountryCode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "InStoreLocationAddressInput", + "description": "Input fields for an in-store Location Address.", + "fields": null, + "inputFields": [ + { + "name": "streetAddress", + "description": "The street address.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "extendedAddress", + "description": "Extended address information, such as an apartment or suite number.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "locality", + "description": "Locality/city.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "region", + "description": "State or province.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "postalCode", + "description": "Postal code in any country's format, otherwise known as CAP, CEP, Eircode, NPA, PIN, PLZ, or ZIP code.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "countryCode", + "description": "Country code for the address.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CountryCode", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "InStoreLocationAddressUpdateInput", + "description": "Input fields for an in-store Location Address update.", + "fields": null, + "inputFields": [ + { + "name": "streetAddress", + "description": "The street address.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "extendedAddress", + "description": "Extended address information, such as an apartment or suite number.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "locality", + "description": "Locality/city.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "region", + "description": "State or province.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "postalCode", + "description": "Postal code in any country's format, otherwise known as CAP, CEP, Eircode, NPA, PIN, PLZ, or ZIP code.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "countryCode", + "description": "Country code for the address.", + "type": { + "kind": "SCALAR", + "name": "CountryCode", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "InStoreLocationConnection", + "description": "A paginated list of in-store locations.", + "fields": [ + { + "name": "edges", + "description": "A list of in-store locations.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "InStoreLocationConnectionEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information about the page of in-store locations contained in `edges`.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "InStoreLocationConnectionEdge", + "description": "An in-store location within an InStoreLocationConnection.", + "fields": [ + { + "name": "cursor", + "description": "The in-store locations's location within the InStoreLocationConnection. Used for requesting additional pages.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The in-store location.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreLocation", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "InStoreLocationInput", + "description": "Fields required for an instore location.", + "fields": null, + "inputFields": [ + { + "name": "name", + "description": "The publicly visible label of this Location.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "internalName", + "description": "Name assigned by the merchant to uniquely identify this Location.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "address", + "description": "The address of the in-store Location.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "InStoreLocationAddressInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "geoCoordinates", + "description": "The coordinates of this location.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "GeoCoordinatesInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "payerId", + "description": "The PayPal account ID to which this Location will be added.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "enableQRCodePayments", + "description": "Whether QR code payments will be enabled for this location.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "InStoreLocationUpdateInput", + "description": "Fields required to update an in-store location.", + "fields": null, + "inputFields": [ + { + "name": "name", + "description": "The publicly visible label of this location.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "internalName", + "description": "Name assigned by the merchant to uniquely identify this location.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "address", + "description": "The address of the location.", + "type": { + "kind": "INPUT_OBJECT", + "name": "InStoreLocationAddressUpdateInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "geoCoordinates", + "description": "The coordinates of this location.", + "type": { + "kind": "INPUT_OBJECT", + "name": "GeoCoordinatesInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "payerId", + "description": "The PayPal account ID to which this location will be added.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "enableQRCodePayments", + "description": "Whether QR code payments will be enabled for this location.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "InStoreReader", + "description": "An in-store payment card reader.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "Name given to the reader.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vendor", + "description": "Vendor-specific information about the reader.", + "args": [], + "type": { + "kind": "UNION", + "name": "InStoreReaderVendor", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "location", + "description": "The in-store location the reader is attached to.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreLocation", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "Current status of the reader.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ReaderStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pairedAt", + "description": "Date and time when the reader was paired.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lastSeenAt", + "description": "Date and time when the reader last established a connection.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "offlineSince", + "description": "Date and time when the reader last disconnected.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "softwareVersion", + "description": "The version of the payment application running on the Reader.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "InStoreReaderAuthorizationMode", + "description": "The authorization mode used to perform the transaction.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CARD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ISSUER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "InStoreReaderConnection", + "description": "A paginated list of in-store readers.", + "fields": [ + { + "name": "edges", + "description": "A list of in-store readers.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "InStoreReaderConnectionEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information about the page of in-store readers contained in `edges`.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "InStoreReaderConnectionEdge", + "description": "An in-store reader within an InStoreReaderConnection.", + "fields": [ + { + "name": "cursor", + "description": "The in-store reader's location within the InStoreReaderConnection. Used for requesting additional pages.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The in-store reader.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreReader", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "InStoreReaderOriginDetails", + "description": "Additional information about the payment method supplied by an in-store payment reader.", + "fields": [ + { + "name": "authorizationMode", + "description": "The authorization mode used to perform the transaction on the payment reader.", + "args": [], + "type": { + "kind": "ENUM", + "name": "InStoreReaderAuthorizationMode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pinVerified", + "description": "An indicator for whether the transaction was verified via pin.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "inputMode", + "description": "The input mode used on the payment reader to facilitate an in-store transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentReaderInputMode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminalId", + "description": "The ID of the terminal that was processed this transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "CardPresentOriginDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "EmvCardOriginDetails", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "InStoreReaderPayload", + "description": "Top-level fields returned for an in-store reader.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reader", + "description": "The reader.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreReader", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "InStoreReaderSearchInput", + "description": "Input fields for searching for in-store readers.", + "fields": null, + "inputFields": [ + { + "name": "locationId", + "description": "Find in-store readers with location ID or IDs.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "softwareVersion", + "description": "Find in-store readers with software version.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchSoftwareVersionInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "readerStatus", + "description": "Find in-store readers with reader status.", + "type": { + "kind": "ENUM", + "name": "ReaderStatus", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "InStoreReaderSetupInput", + "description": "Fields that are reader specific for pairing a reader.", + "fields": null, + "inputFields": [ + { + "name": "locationId", + "description": "In-Store Location to attach Reader to.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "name", + "description": "Name given to the Reader.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "UNION", + "name": "InStoreReaderVendor", + "description": "A union of all possible in-store reader vendors.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "VerifoneVendor", + "ofType": null + } + ] + }, + { + "kind": "INPUT_OBJECT", + "name": "InStoreRefundInput", + "description": "Input fields for creating an in-store transaction.", + "fields": null, + "inputFields": [ + { + "name": "amount", + "description": "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.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "orderId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customFields", + "description": "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.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CustomFieldInput", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "descriptor", + "description": "Fields used to define what will appear on a customer's bank statement for a specific purchase.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TransactionDescriptorInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "InStoreTransactionInput", + "description": "Input fields for creating an in-store transaction.", + "fields": null, + "inputFields": [ + { + "name": "amount", + "description": "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.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "orderId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customFields", + "description": "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.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CustomFieldInput", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "descriptor", + "description": "Fields used to define what will appear on a customer's bank statement for a specific purchase.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TransactionDescriptorInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customerId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "vaultPaymentMethodAfterTransacting", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "VaultInStorePaymentMethodAfterTransactingInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "channel", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Int", + "description": "Built-in Int", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "KountConfiguration", + "description": "Configuration for Kount fraud tools.", + "fields": [ + { + "name": "merchantId", + "description": "The Kount merchant ID used to identify the fraud data collection request.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Language", + "description": "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.\nThe 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).\nmaxLength: 10\nminLength: 2\npattern: ^[a-z]{2}(?:-[A-Z][a-z]{3})?(?:-(?:[A-Z]{2}))?$", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "LegacyIdType", + "description": "The type of object the legacy ID represents when converting it to a global ID.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CUSTOMER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DISPUTE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MERCHANT_ACCOUNT_APPLICATION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAYMENT_CONTEXT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAYMENT_METHOD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "REFUND", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TRANSACTION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "US_BANK_ACCOUNT_VERIFICATION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VERIFICATION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "LiabilityShift", + "description": "A scenario detailing which party assumes liability for certain conditions in the event of a transaction being disputed.", + "fields": [ + { + "name": "responsibleParty", + "description": "The party taking responsibility for liability.", + "args": [], + "type": { + "kind": "ENUM", + "name": "LiabilityShiftResponsibleParty", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "conditions", + "description": "The specific conditions under which the responsible party assumes liability, in the event of a chargeback.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "LiabilityShiftCondition", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "LiabilityShiftCondition", + "description": "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.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ITEM_NOT_RECEIVED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNAUTHORIZED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "LiabilityShiftResponsibleParty", + "description": "If enrolled in Effortless Chargeback Protection, and in the event the transaction is disputed, these are the possible parties which can assume liability.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ISSUER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "LocalPaymentAddressInput", + "description": "Input fields for local payment addresses.", + "fields": null, + "inputFields": [ + { + "name": "streetAddress", + "description": "The street address.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "extendedAddress", + "description": "Extended address information, such as an apartment or suite number.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "locality", + "description": "Locality/city.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "region", + "description": "State or province.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "postalCode", + "description": "Postal code in any country's format, otherwise known as CAP, CEP, Eircode, NPA, PIN, PLZ, or ZIP code.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "countryCode", + "description": "Country code for the address.", + "type": { + "kind": "SCALAR", + "name": "CountryCode", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "LocalPaymentContext", + "description": "The LocalPayment object.", + "fields": [ + { + "name": "id", + "description": "Unique identifier for the payment context.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "legacyId", + "description": "Legacy unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": "The type of the local payment.", + "args": [], + "type": { + "kind": "ENUM", + "name": "LocalPaymentMethodType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "approvalUrl", + "description": "The URL to which a customer should be redirected to approve the local payment.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "The amount charged in this local payment.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merchantAccountId", + "description": "The merchant account used to create the payment context.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactedAt", + "description": "Date and time when the local payment context was used to create a transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "approvedAt", + "description": "Date and time when the local payment context was approved by the customer.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createdAt", + "description": "Date and time when the local payment context was created.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "updatedAt", + "description": "Date and time when the local payment context was updated.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "expiredAt", + "description": "Date and time when the local payment context was expired.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentId", + "description": "Unique identifier for the local payment.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "orderId", + "description": "The PayPal Invoice ID.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "PaymentContext", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "LocalPaymentDetails", + "description": "Local payment specific details on a transaction.", + "fields": [ + { + "name": "origin", + "description": "Additional information about the local payment method provided from a third-party origin, such as PayPal or another regional payment method provider.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethodOrigin", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": "Regional payment method selected by the customer.", + "args": [], + "type": { + "kind": "ENUM", + "name": "LocalPaymentMethodType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "displayName", + "description": "Description of the payment method that can be displayed to customers.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "LocalPaymentMethodType", + "description": "A value identifying the type of regional payment method.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ALIPAY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "BANCONTACT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "BLIK", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "BOLETOBANCARIO", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "EPS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GIROPAY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GRABPAY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "IDEAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MULTIBANCO", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MYBANK", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OXXO", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "P24", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAYU", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAY_UPON_INVOICE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SATISPAY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SEPA", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SOFORT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SWISH", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TRUSTLY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VERKKOPANKKI", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VIPPS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WECHAT_PAY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "LocalPaymentPayerInfoInput", + "description": "Input fields for the payer of a local payment.", + "fields": null, + "inputFields": [ + { + "name": "givenName", + "description": "The payer's given (first) name.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "surname", + "description": "The payer's surname (last name).", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "email", + "description": "The payer's email.", + "type": { + "kind": "SCALAR", + "name": "EmailAddress", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "phoneNumber", + "description": "The payer's phone number.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "shippingAddress", + "description": "The payer's shipping address.", + "type": { + "kind": "INPUT_OBJECT", + "name": "LocalPaymentAddressInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "billingAddress", + "description": "The payer's billing address.", + "type": { + "kind": "INPUT_OBJECT", + "name": "LocalPaymentAddressInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "taxInfo", + "description": "The payer's tax information. This is only required for Boleto Bancário payments.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TaxInfoInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "MVVAcceptanceChannel", + "description": "Means by which customers by their bills.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "FACE_TO_FACE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MAIL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PHONE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WEB", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "MVVRegistrationType", + "description": "Supported MVV (Merchant Verification Value) programs.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "LOAN_VPP", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TAX_DEBIT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UTIL_RATE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UTIL_VPP", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "MVVUtilityType", + "description": "Supported MVV (Merchant Verification Value) utility types.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ELECTRIC", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GAS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TRASH", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WATER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "MandateType", + "description": "Mandate type for SEPA Direct Debit Account.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ONE_OFF", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RECURRENT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MasterpassConfiguration", + "description": "Configuration for Masterpass.", + "fields": [ + { + "name": "merchantCheckoutId", + "description": "The Masterpass merchant checkout ID used to identify the merchant in Masterpass requests.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "supportedCardBrands", + "description": "A list of card brands supported by the merchant for Masterpass.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "CreditCardBrandCode", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MasterpassOriginDetails", + "description": "Additional information about the payment method specific to Masterpass.", + "fields": [ + { + "name": "bin", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Merchant", + "description": "Details about a merchant and its current settings.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "Current status.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "companyName", + "description": "Company name.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "website", + "description": "The merchant's main website.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timezone", + "description": "The timezone that the merchant operates in.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merchantAccounts", + "description": "A paginated list of merchant accounts that belong to this merchant. Filtered by search criteria, if provided.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "MerchantAccountSearchInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "MerchantAccountConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MerchantAccount", + "description": "Information about a merchant account associated with a merchant.", + "fields": [ + { + "name": "id", + "description": "Unique identifier for the merchant account. Used to determine what merchant account processed or will process a given Payment.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bankAccount", + "description": "The disbursement bank account linked with the merchant account.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "DisbursementBankAccount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "currencyCode", + "description": "The ISO code for the currency the merchant account uses.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "CurrencyCodeAlpha", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "dbaName", + "description": "Business name of the account.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "externalId", + "description": "A unique identifier for this account in external systems.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The status of a merchant account. This determines whether the merchant account can be used to create a Payment.", + "args": [], + "type": { + "kind": "ENUM", + "name": "MerchantAccountStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isDefault", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paypalAccount", + "description": "The PayPal account linked with the merchant account.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PayPalAccountDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hyperwalletAccount", + "description": "The Hyperwallet account linked with the merchant account.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "HyperwalletAccountDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "venmoAccount", + "description": "The Venmo account linked with the merchant account.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "VenmoAccountDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "threeDSecure", + "description": "The 3D Secure configuration for the merchant account.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MerchantAccountThreeDSecureConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MerchantAccountApplication", + "description": "A record of a merchant account application.", + "fields": [ + { + "name": "id", + "description": "A unique ID for the account application. Can be used to query the status of the onboarding request in the future.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "legacyId", + "description": "Legacy unique ID.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The status of the application.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ApplicationStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MerchantAccountConnection", + "description": "A paginated list of merchant accounts.", + "fields": [ + { + "name": "edges", + "description": "A list of merchant accounts.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "MerchantAccountConnectionEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information about the page of merchant accounts contained in `edges`.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MerchantAccountConnectionEdge", + "description": "A merchant account within a MerchantAccountConnection.", + "fields": [ + { + "name": "cursor", + "description": "This merchant account's location within the MerchantAccountConnection. Used for requesting additional pages.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The merchant account.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MerchantAccount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "MerchantAccountSearchInput", + "description": "Input fields for searching for merchant accounts.", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": "Find merchant accounts with an id or ids.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paypalAccountId", + "description": "Find merchant accounts associated with a given PayPal account ID.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "MerchantAccountStatus", + "description": "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.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ACTIVE", + "description": "The merchant account can be used to create transactions and refunds.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PENDING", + "description": "The merchant account is still being set up, and cannot be used to create transactions or refunds yet.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SUSPENDED", + "description": "The merchant account cannot be used to process transactions or refunds.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MerchantAccountThreeDSecureConfiguration", + "description": "Details about the 3D Secure configuration of the merchant account.", + "fields": [ + { + "name": "v1", + "description": "Configuration for 3D Secure v1.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MerchantAccountThreeDSecureVersionConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "v2", + "description": "Configuration for 3D Secure v2.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MerchantAccountThreeDSecureVersionConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MerchantAccountThreeDSecureVersionConfiguration", + "description": "Details about the configuration of a version of 3D Secure for the merchant account.", + "fields": [ + { + "name": "supportedCardBrands", + "description": "Card types enabled for this 3D Secure version.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "CreditCardBrandCode", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MonetaryAmount", + "description": "A monetary amount with currency.", + "fields": [ + { + "name": "value", + "description": "The amount of money, either a whole number or a number with up to 3 decimal places.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "currencyIsoCode", + "description": "The ISO code for the money's currency.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "CurrencyCodeAlpha", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `currencyCode` instead." + }, + { + "name": "currencyCode", + "description": "The currency code for the monetary amount.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "CurrencyCodeAlpha", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "MonetaryAmountInput", + "description": "Input fields representing an amount with currency.", + "fields": null, + "inputFields": [ + { + "name": "value", + "description": "The amount of money, either a whole number or a number with up to 3 decimal places.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "currencyCode", + "description": "The currency code for the monetary amount.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyCodeAlpha", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "MonetaryAmountSearchInput", + "description": "Input fields for searching for a transaction or refund amount.", + "fields": null, + "inputFields": [ + { + "name": "value", + "description": "Find transactions for a given amount.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchRangeInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "currencyIsoCode", + "description": "Deprecated: Please use `currencyCode` instead.\n\nFind transactions with a given currency.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "currencyCode", + "description": "Find transactions with a given currency.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Month", + "description": "A two-digit, zero-padded month.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Mutation", + "description": "The top-level Mutation type. Mutations are used to make requests that create or modify data.", + "fields": [ + { + "name": "authorizePaymentMethod", + "description": "Authorize an eligible payment method and return a payload that includes details of the resulting transaction.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AuthorizePaymentMethodInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TransactionPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorizePayPalAccount", + "description": "Authorize an eligible PayPal account and return a payload that includes details of the resulting transaction.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AuthorizePayPalAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "PayPalTransactionPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorizeVenmoAccount", + "description": "Authorize an eligible Venmo account and return a payload that includes details of the resulting transaction.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AuthorizeVenmoAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TransactionPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorizeCreditCard", + "description": "Authorize a credit card of any origin and return a payload that includes details of the resulting transaction.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AuthorizeCreditCardInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TransactionPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "captureTransaction", + "description": "Capture an authorized transaction and return a payload that includes details of the transaction.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CaptureTransactionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TransactionPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "chargePaymentMethod", + "description": "Charge any payment method and return a payload that includes details of the resulting transaction.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ChargePaymentMethodInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TransactionPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "chargeUsBankAccount", + "description": "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.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ChargeUsBankAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TransactionPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "chargePayPalAccount", + "description": "Charge a PayPal account and return a payload that includes details of the resulting transaction.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ChargePayPalAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "PayPalTransactionPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "chargeVenmoAccount", + "description": "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.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ChargeVenmoAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TransactionPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "chargeCreditCard", + "description": "Charge a credit card of any origin and return a payload that includes details of the resulting transaction.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ChargeCreditCardInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TransactionPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vaultPaymentMethod", + "description": "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.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VaultPaymentMethodInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "VaultPaymentMethodPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vaultUsBankAccount", + "description": "Vault payment information from a single-use US bank account payment method and return a payload that includes a new multi-use payment method.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VaultUsBankAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "VaultPaymentMethodPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vaultCreditCard", + "description": "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.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VaultCreditCardInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "VaultPaymentMethodPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "refundTransaction", + "description": "Refund a settled transaction and return a payload that includes details of the refund.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RefundTransactionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "RefundTransactionPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reverseTransaction", + "description": "Reverse a transaction and return a payload that includes either the voided transaction or a refund.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ReverseTransactionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "ReverseTransactionPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reverseRefund", + "description": "Reverse a refund and return a payload that includes voided refund.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ReverseRefundInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "RefundTransactionPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "refundCreditCard", + "description": "Create a detached refund (unassociated with any previous Braintree payment) to a credit card and return a payload that includes details of the refund.\n\nWe 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.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RefundCreditCardInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "RefundCreditCardPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "refundUsBankAccount", + "description": "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.\n\nWe 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.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RefundUsBankAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "RefundUsBankAccountPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "updateTransactionCustomFields", + "description": "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).", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateTransactionCustomFieldsInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "UpdateTransactionCustomFieldsPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verifyPaymentMethod", + "description": "Run a verification on a multi-use payment method.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VerifyPaymentMethodInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "VerifyPaymentMethodPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verifyCreditCard", + "description": "Run a verification on a multi-use credit card payment method.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VerifyCreditCardInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "VerifyPaymentMethodPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verifyUsBankAccount", + "description": "Run a verification on a multi-use US bank account payment method.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VerifyUsBankAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "VerifyPaymentMethodPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "confirmMicroTransferAmounts", + "description": "Confirm micro-transfer amounts initiated by vaultUsBankAccount or verifyUsBankAccount, completing the verification process for a US Bank Account via micro-transfer.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ConfirmMicroTransferAmountsInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "ConfirmMicroTransferAmountsPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deletePaymentMethodFromVault", + "description": "Delete a multi-use payment method from the vault.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DeletePaymentMethodFromVaultInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "DeletePaymentMethodFromVaultPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createClientToken", + "description": "Create a client token that can be used to initialize a client in order to tokenize payment information.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "CreateClientTokenInput", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "CreateClientTokenPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createUniversalAccessToken", + "description": "Create a PayPal access token that can be used to make additional API calls or initialize a client.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateUniversalAccessTokenInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "CreateUniversalAccessTokenPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "partialCaptureTransaction", + "description": "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.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PartialCaptureTransactionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "PartialCaptureTransactionPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenizeCustomActionsPaymentMethod", + "description": "Tokenize Custom Actions fields and return a payload that includes a single-use payment method.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TokenizeCustomActionsPaymentMethodInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TokenizeCustomActionsPaymentMethodPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenizeCreditCard", + "description": "Tokenize credit card fields and return a payload that includes a single-use payment method.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TokenizeCreditCardInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TokenizeCreditCardPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenizeCvv", + "description": "Tokenize a credit card's CVV and return a payload that includes a single-use payment method.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TokenizeCvvInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TokenizeCvvPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenizeNetworkToken", + "description": "Tokenize a network tokenized payment instrument and return a payload that includes a single-use payment method.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TokenizeNetworkTokenInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TokenizeNetworkTokenPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenizeSamsungPayCard", + "description": "Tokenize Samsung Pay card fields and return a payload that includes a single-use payment method.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TokenizeSamsungPayCardInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TokenizeSamsungPayCardPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenizeUsBankAccount", + "description": "Tokenize US bank account fields and return a payload that includes a single-use payment method.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TokenizeUsBankAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TokenizeUsBankAccountPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenizeUsBankLogin", + "description": "Tokenize US bank login fields and return a payload that includes a single-use payment method.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TokenizeUsBankLoginInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TokenizeUsBankAccountPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenizePayPalOneTimePayment", + "description": "Tokenize PayPal One-Time Payment and return a payload that includes a single-use payment method.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TokenizePayPalOneTimePaymentInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TokenizePayPalOneTimePaymentPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createPayPalOneTimePayment", + "description": "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.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreatePayPalOneTimePaymentInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "CreatePayPalOneTimePaymentPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenizePayPalBillingAgreement", + "description": "Tokenize PayPal account and return a payload that includes a single-use payment method.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TokenizePayPalBillingAgreementInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TokenizePayPalBillingAgreementPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createPayPalBillingAgreement", + "description": "Set up a PayPal Billing Agreement Token for approval by a PayPal user.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreatePayPalBillingAgreementInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "CreatePayPalBillingAgreementPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createCustomer", + "description": "Create a customer for storing individual customer information and/or grouping transactions and multi-use payment methods.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "CreateCustomerInput", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "CreateCustomerPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "updateCustomer", + "description": "Update a customer's information.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateCustomerInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "UpdateCustomerPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deleteCustomer", + "description": "Delete a customer, breaking association between any of the customer's transactions. Will not delete if the customer has existing payment methods.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DeleteCustomerInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "DeleteCustomerPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deletePaymentMethodFromSingleUseToken", + "description": "Delete a payment method referenced by a single-use token.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DeletePaymentMethodFromSingleUseTokenInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "DeletePaymentMethodFromSingleUseTokenPayload", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `deletePaymentMethodFromVault` instead." + }, + { + "name": "updateCreditCardBillingAddress", + "description": "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.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateCreditCardBillingAddressInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "UpdateCreditCardBillingAddressPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "performThreeDSecureLookup", + "description": "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.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PerformThreeDSecureLookupInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "PerformThreeDSecureLookupPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "acceptDispute", + "description": "Accepts a dispute and returns a payload that includes the dispute that was accepted. Only disputes with a status of OPEN can be accepted.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AcceptDisputeInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "AcceptDisputePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "finalizeDispute", + "description": "Finalizes a dispute and returns a payload that includes the dispute that was finalized. Only disputes with a status of OPEN can be finalized.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "FinalizeDisputeInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "FinalizeDisputePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createDisputeTextEvidence", + "description": "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.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateDisputeTextEvidenceInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "CreateDisputeTextEvidencePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deleteDisputeEvidence", + "description": "Deletes evidence from a dispute.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DeleteDisputeEvidenceInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "DeleteDisputeEvidencePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createDisputeFileEvidence", + "description": "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.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateDisputeFileEvidenceInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "CreateDisputeFileEvidencePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vaultPayPalBillingAgreement", + "description": "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.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VaultPayPalBillingAgreementInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "VaultPayPalBillingAgreementPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sandboxSettleTransaction", + "description": "Force a transaction to settle in the sandbox environment. Generates an error elsewhere.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SandboxSettleTransactionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TransactionPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createInStoreLocation", + "description": "Creates a new In-Store Location to associate Readers.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateInStoreLocationInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "CreateInStoreLocationPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "updateInStoreLocation", + "description": "Updates an In-Store Location.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateInStoreLocationInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "UpdateInStoreLocationPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pairInStoreReader", + "description": "Pairs a Reader to an account and In-Store Location.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PairInStoreReaderInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "InStoreReaderPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "updateInStoreReader", + "description": "Updates an In-Store Reader.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateInStoreReaderInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "InStoreReaderPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "requestChargeFromInStoreReader", + "description": "Request an in-store reader to begin the charge flow.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RequestChargeFromInStoreReaderInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "InStoreContextPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "requestCancelFromInStoreReader", + "description": "Request an in-store reader to cancel the charge flow.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RequestCancelFromInStoreReaderInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "InStoreContextPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "requestRefundFromInStoreReader", + "description": "Request an in-store reader to start an unreferenced refund flow.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RequestRefundFromInStoreReaderInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "InStoreContextPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "requestVaultFromInStoreReader", + "description": "Request an in-store reader to vault a payment method.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RequestVaultFromInStoreReaderInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "InStoreContextPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "requestTextDisplayFromInStoreReader", + "description": "Request an in-store reader to display text.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RequestTextDisplayFromInStoreReaderInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "InStoreContextPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "requestItemDisplayFromInStoreReader", + "description": "Request an in-store reader to display line items.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RequestItemDisplayFromInStoreReaderInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "InStoreContextPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "requestFirmwareUpdateFromInStoreReader", + "description": "Request an in-store reader to update to the latest version of software.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RequestFirmwareUpdateFromInStoreReaderInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "InStoreContextPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "requestSignaturePromptFromInStoreReader", + "description": "Request an in-store reader to display a signature prompt.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RequestSignaturePromptFromInStoreReaderInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "InStoreContextPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "requestConfirmationPromptFromInStoreReader", + "description": "Request an in-store reader to display a confirmation prompt.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RequestConfirmationPromptFromInStoreReaderInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "InStoreContextPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "updateTransactionAmount", + "description": "Updates the authorization amount of the transaction.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateTransactionAmountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TransactionPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "generateExchangeRateQuote", + "description": "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.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "GenerateExchangeRateQuoteInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "ExchangeRateQuotePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createNonInstantLocalPaymentContext", + "description": "Creates a non-instant local payment context. Your account must be enabled to use this feature.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateNonInstantLocalPaymentContextInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "CreateNonInstantLocalPaymentContextPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "NameInput", + "description": "The name of the party.", + "fields": null, + "inputFields": [ + { + "name": "prefix", + "description": "The prefix, or title, to the party name.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "givenName", + "description": "The party's given, or first, name. Required if the party is a person.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "surname", + "description": "The party's surname or family name. Also known as the last name. Required if\nthe party is a person. Use also to store multiple surnames including the\nmatronymic, or mother's, surname.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "middleName", + "description": "The party's middle name. Use also to store multiple middle names including the patronymic, or father's, middle name.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "suffix", + "description": "The suffix for the party's name.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "alternateFullName", + "description": "The party's alternate name. Can be a business name, nickname, or any other\nname that cannot be split into first, last name. Required for a business party name.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "NetworkTokenInput", + "description": "Input fields for a network tokenized card.", + "fields": null, + "inputFields": [ + { + "name": "cryptogram", + "description": "A one-time-use string generated by the token requester to validate the transaction.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "eCommerceIndicator", + "description": "A two-digit string that should be passed along in the authorization message.", + "type": { + "kind": "SCALAR", + "name": "ECommerceIndicator", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "expirationMonth", + "description": "A two-digit string representing the expiration month of the DPAN.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Month", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "expirationYear", + "description": "A four-digit string representing the expiration year of the DPAN.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Year", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "number", + "description": "The card number used in processing. This is a device PAN (DPAN), not the backing card number (FPAN).", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CreditCardNumber", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "originDetails", + "description": "Additional information about a network token.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NetworkTokenOriginDetailsInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "NetworkTokenOrigin", + "description": "The source of the network token.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "APPLE_PAY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GOOGLE_PAY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NETWORK_TOKEN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NetworkTokenOriginDetails", + "description": "Additional information about the payment method specific to Network Token.", + "fields": [ + { + "name": "bin", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "NetworkTokenOriginDetailsInput", + "description": "Information about the network token, such as the origin of the network token, source card details, and other token requestor data.", + "fields": null, + "inputFields": [ + { + "name": "origin", + "description": "The origin of the network token.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "NetworkTokenOrigin", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "sourceCardDescription", + "description": "A string, suitable for display, that describes the backing card.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "sourceCardLast4", + "description": "The last 4 digits of the backing card number (FPAN).", + "type": { + "kind": "SCALAR", + "name": "CreditCardLast4", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "sourceCardType", + "description": "The card type of the backing card.", + "type": { + "kind": "ENUM", + "name": "CreditCardBrandCode", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "tokenRequestorId", + "description": "The token requestor ID of the entity that generated this network token.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transactionId", + "description": "The transaction ID for this network token.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "Node", + "description": "Relay compatible Node interface.", + "fields": [ + { + "name": "id", + "description": "Global ID for a given object.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "BusinessAccountCreationRequest", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "CustomActionsPaymentContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "Customer", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "Dispute", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "InStoreContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "LocalPaymentContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "Refund", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "RequestChargeInStoreContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "RequestConfirmationPromptInStoreContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "RequestDisplayInStoreContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "RequestFirmwareUpdateInStoreContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "RequestRefundInStoreContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "RequestSignaturePromptInStoreContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "RequestVaultInStoreContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "Verification", + "ofType": null + } + ] + }, + { + "kind": "INPUT_OBJECT", + "name": "NonInstantLocalPaymentContextInput", + "description": "Input fields for non-instant local payment context.", + "fields": null, + "inputFields": [ + { + "name": "orderId", + "description": "The order id of the eventual Braintree transaction and the invoice number of the local payment context. Maximum 127 characters.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "The amount of the local payment.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "MonetaryAmountInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "type", + "description": "The type of the non-instant local payment.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "NonInstantLocalPaymentMethodType", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "countryCode", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "CountryCode", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "locale", + "description": "The language tag for the language in which to localize the error-related strings.", + "type": { + "kind": "SCALAR", + "name": "Language", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "returnUrl", + "description": "The URL where the customer is redirected after the customer approves the payment.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "cancelUrl", + "description": "The URL where the customer is redirected after the customer cancels the payment.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "ID of the PayPal merchant account that will be used when charging this payment method.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "payerInfo", + "description": "The payer's information.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "LocalPaymentPayerInfoInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "expiryDate", + "description": "Overrides the default date at which the local payment context will expire. MULTIBANCO is not overridable.", + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "NonInstantLocalPaymentMethodType", + "description": "A value identifying the type of non-instant regional payment method.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "BOLETOBANCARIO", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MULTIBANCO", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OXXO", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "OAuthApplication", + "description": "Information about an OAuth Application.", + "fields": [ + { + "name": "clientId", + "description": "The unique identifier of the OAuth application.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "The name of the OAuth application.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "OAuthTokenType", + "description": "OAuth access token type.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "BEARER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "OwnerAddressType", + "description": "The owner's address type.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "HOME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MAILING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "OwnerIDType", + "description": "The type of identity number provided for the owner.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "SOCIAL_SECURITY_NUMBER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "OwnerPhoneType", + "description": "The owner's phone type.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "HOME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MOBILE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "OwnerPosition", + "description": "The position that the owner holds in the business.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "BENEFICIAL_OWNER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CHAIRMAN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DIRECTOR", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PARTNER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SECRETARY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TREASURER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "OwnerRole", + "description": "The role that the owner holds in the business.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "BENEFICIAL_OWNER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SIGNIFICANT_RESPONSIBILITY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PageInfo", + "description": "The page information for a connection.", + "fields": [ + { + "name": "hasNextPage", + "description": "Whether or not there is a next page available.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hasPreviousPage", + "description": "Always false; backwards pagination is not supported. Present to comply with Relay specifications.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "startCursor", + "description": "The cursor for the first item in the connection page.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "endCursor", + "description": "The cursor for the last item in the connection page.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PairInStoreReaderInput", + "description": "Input fields for pairing an in store reader.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "userCode", + "description": "Code displayed on Reader during pairing.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "reader", + "description": "Inputs for Reader.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "InStoreReaderSetupInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ParentAuthorization", + "description": "An original authorization's relationship to all its partial capture transactions.", + "fields": [ + { + "name": "childCaptures", + "description": "The captures on a partially captured authorization.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalAmountAuthorized", + "description": "The total amount authorized by this transaction. This amount will not change as this transaction is partially captured.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "UNION", + "name": "PartialCaptureDetails", + "description": "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.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "ChildCapture", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "ParentAuthorization", + "ofType": null + } + ] + }, + { + "kind": "INPUT_OBJECT", + "name": "PartialCaptureTransactionInput", + "description": "Top-level input fields for capturing outstanding funds authorized by a transaction.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transactionId", + "description": "ID of the original authorized transaction to be partially captured.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "transaction", + "description": "Input fields for the capture, with details that will define the resulting capture transaction.", + "type": { + "kind": "INPUT_OBJECT", + "name": "PartialCaptureTransactionOptionsInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PartialCaptureTransactionOptionsInput", + "description": "Input fields for the capture, with details that will define the resulting capture transaction.", + "fields": null, + "inputFields": [ + { + "name": "amount", + "description": "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).", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "discountAmount", + "description": "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.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "lineItems", + "description": "Line items for this transaction. Up to 249 line items may be specified.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TransactionLineItemInput", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "orderId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "purchaseOrderNumber", + "description": "A purchase order identification value you associate with this transaction.\n\n*Required for Level 2 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "shipping", + "description": "Shipping information.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TransactionShippingInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "tax", + "description": "Tax information about the transaction.\n\n*Required for Level 2 processing*.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TransactionTaxInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "descriptor", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TransactionDescriptorInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PartialCaptureTransactionPayload", + "description": "Top-level output field from partially capturing a transaction.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "capture", + "description": "The transaction representing the partial capture.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PayPalAccountDetails", + "description": "Details about a PayPal account.", + "fields": [ + { + "name": "billingAgreementId", + "description": "The ID of the billing agreement for this PayPal account.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "billingAddress", + "description": "The billing address associated with the PayPal account.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Address", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "shippingAddress", + "description": "The shipping address associated with the PayPal account.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Address", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "email", + "description": "The email address associated with the PayPal account.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "phone", + "description": "The primary phone number associated with the PayPal account.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "payerId", + "description": "The PayPal ID of the PayPal account.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "firstName", + "description": "The first name on the PayPal account.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lastName", + "description": "The last name on the PayPal account.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cobrandedCardLabel", + "description": "The label of the co-branded card used as a funding source.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "origin", + "description": "Additional information if the PayPal account was provided from a third-party origin, such as Apple Pay, Google Pay, or another digital wallet.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethodOrigin", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "limitedUseOrderId", + "description": "Limited use PayPal provided Order ID (starts with O-).", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PayPalAccountInput", + "description": "Input for identifying a PayPal account.", + "fields": null, + "inputFields": [ + { + "name": "payerId", + "description": "The unique PayPal ID of the PayPal account.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PayPalBillingAgreementInput", + "description": "Input fields for a PayPal account to be vaulted.", + "fields": null, + "inputFields": [ + { + "name": "billingAgreementToken", + "description": "The Billing Agreement token.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PayPalConfiguration", + "description": "Configuration for PayPal.", + "fields": [ + { + "name": "displayName", + "description": "The merchant's company name for displaying to customers in the PayPal UI.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clientId", + "description": "The merchant's PayPal client ID.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "privacyUrl", + "description": "The merchant's privacy policy URL.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "userAgreementUrl", + "description": "The merchant's user agreement URL.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "assetsUrl", + "description": "A URL pointing to the base path of Braintree's web pages used for various browser switches and popups.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "environment", + "description": "The PayPal environment.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PayPalEnvironment", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "environmentNoNetwork", + "description": "For internal use only.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "This field is only included for internal testing purposes." + }, + { + "name": "unvettedMerchant", + "description": "Whether or not the merchant has been vetted.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "braintreeClientId", + "description": "Braintree's PayPal client ID.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "billingAgreementsEnabled", + "description": "Whether billing agreements are enabled and should be used instead of future payments.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merchantAccountId", + "description": "The merchant account being used. This affects the currency code and other options.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "currencyCode", + "description": "The currency code to use.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "CurrencyCodeAlpha", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "payeeEmail", + "description": "The email address of the PayPal account that will receive the funds when a transaction is created.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "directBaseUrl", + "description": "For internal use only.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "This field is only included for internal testing purposes." + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "PayPalEnvironment", + "description": "The environment being used for PayPal.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CUSTOM", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LIVE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OFFLINE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "custom", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "live", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "offline", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PayPalExperienceProfileInput", + "description": "Controls the experience in a PayPal approval flow.", + "fields": null, + "inputFields": [ + { + "name": "brandName", + "description": "Merchant brand name to be displayed on the PayPal approval pages.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "collectShippingAddress", + "description": "Indicates whether a shipping address will be collected from the customer during the agreement approval flow.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "landingPageType", + "description": "Specifies the PayPal page to display when a user lands on the PayPal site to complete the payment.", + "type": { + "kind": "ENUM", + "name": "PayPalLandingPageType", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "locale", + "description": "Locale of the PayPal payment approval experience.", + "type": { + "kind": "SCALAR", + "name": "Language", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "shippingAddressEditable", + "description": "Indicates whether to enable user editing of the shipping address. Only applies when shipping address is provided by merchant.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "PayPalFinancingCreditProductIdentifier", + "description": "Possible identifiers for credit products provided via PayPal.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CREDIT_CARD_INSTALLMENTS_BR", + "description": "Brazil Credit Card Installments.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CREDIT_CARD_INSTALLMENTS_MX", + "description": "Mexico Credit Card Installments.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CREDIT_CARD_US", + "description": "United States Credit Card.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAYPAL_CREDIT_DE", + "description": "Germany PayPal Credit.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAYPAL_CREDIT_UK", + "description": "United Kingdom PayPal Credit.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAYPAL_CREDIT_US", + "description": "United States PayPal Credit.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAY_LATER_FR", + "description": "France Pay Later.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAY_LATER_GB", + "description": "Great Britain Pay Later.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAY_LATER_US", + "description": "United States Pay Later.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAY_UPON_INVOICE_DE", + "description": "Germany Pay Upon Invoice.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PayPalFinancingOption", + "description": "PayPal financing options available for a transaction.", + "fields": [ + { + "name": "creditProductIdentifier", + "description": "The credit product identifier.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PayPalFinancingCreditProductIdentifier", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "qualifyingFinancingOptions", + "description": "Financing options the transaction qualifies for.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PayPalQualifyingFinancingOption", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "PayPalFinancingOptionCreditType", + "description": "PayPal Financing option credit type.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "INSTALLMENT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NO_INTEREST", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAY_UPON_INVOICE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SAME_AS_CASH", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PayPalFinancingOptionsInput", + "description": "Input fields for requesting information about PayPal financing options.", + "fields": null, + "inputFields": [ + { + "name": "paymentMethodId", + "description": "ID of an existing multi-use PayPal payment method to request financing options for.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "The transaction currency and total amount to finance.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "MonetaryAmountInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "countryCode", + "description": "The financing country code.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CountryCodeAlpha2", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PayPalFinancingOptionsPayload", + "description": "PayPal financing options response payload.", + "fields": [ + { + "name": "financingOptions", + "description": "PayPal financing options.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PayPalFinancingOption", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "PayPalIntent", + "description": "The intent for PayPal payments.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "AUTHORIZE", + "description": "Merchant will authorize the payment, but the funds will be captured separately.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ORDER", + "description": "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.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SALE", + "description": "Merchant will authorize and captures funds simultaneously.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "PayPalLandingPageType", + "description": "The type of landing page to display on the PayPal site for user checkout.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "BILLING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DEFAULT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LOGIN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PayPalLineItemInput", + "description": "Line items for a PayPal payment.", + "fields": null, + "inputFields": [ + { + "name": "name", + "description": "Item name. Maximum 127 characters.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "quantity", + "description": "Number of units of the item purchased. This value can't be negative or zero.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "unitAmount", + "description": "Per-unit price of the item. Can include up to 2 decimal places. This value can't be negative or zero.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "type", + "description": "Indicates whether the line item is a debit (sale) or credit (refund or discount) to the customer.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "TransactionLineItemType", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "description", + "description": "Item description. Maximum 127 characters.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "productCode", + "description": "Product or UPC code for the item. Maximum 127 characters.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "unitTaxAmount", + "description": "Per-unit tax price of the item. Can include up to 2 decimal places. This value can't be negative or zero.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "url", + "description": "The URL to product information.", + "type": { + "kind": "SCALAR", + "name": "URL", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PayPalLocalPaymentOriginDetails", + "description": "Additional information about the local payment method specific to PayPal.", + "fields": [ + { + "name": "captureId", + "description": "If funds for the transaction have settled, the PayPal ID for the capture of funds.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "customField", + "description": "A string of field/value pairs passed directly to PayPal.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentId", + "description": "The identification value of the payment within PayPal's API.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionFee", + "description": "The fee charged by PayPal for the transaction.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PayPalLocalPaymentRefundDetails", + "description": "PayPal local payment specific refund details.", + "fields": [ + { + "name": "refundId", + "description": "The PayPal refund ID.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "refundedFee", + "description": "Refunded transaction fee charged by PayPal.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PayPalOneTimePaymentInput", + "description": "Input fields for a PayPal account for a One-Time payment.", + "fields": null, + "inputFields": [ + { + "name": "payerId", + "description": "The PayPal payer ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "paymentId", + "description": "The PayPal payment ID. This ID is prefixed with \"PAYID-\".", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "paymentToken", + "description": "The PayPal payment token, also known as an Express Checkout token. This token is prefixed with \"EC-\".", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PayPalPayeeOptionsInput", + "description": "Input fields for a PayPal account receiving transaction funds.", + "fields": null, + "inputFields": [ + { + "name": "email", + "description": "The email address associated with the payee PayPal account.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PayPalQualifyingFinancingOption", + "description": "PayPal qualifying financing options for a product.", + "fields": [ + { + "name": "apr", + "description": "APR percentage.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Percentage", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nominalRate", + "description": "Nominal rate percentage.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Percentage", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "term", + "description": "Total number of payments over which to finance the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "intervalDuration", + "description": "The duration between each interval or payment.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Duration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "countryCode", + "description": "The country or region for the financing option.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "CountryCodeAlpha2", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "creditType", + "description": "Credit type.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PayPalFinancingOptionCreditType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "minimumAmount", + "description": "The minimum qualifying amount for a transaction.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "monthlyInterestRate", + "description": "The monthly interest rate for this financing option.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Percentage", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "periodicPayment", + "description": "The amount for transaction periodic payments.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "monthlyPayment", + "description": "The amount for transaction monthly payments.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "discountAmount", + "description": "The discount amount on the transaction for this financing option.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "discountPercentage", + "description": "The discount percentage for this financing option.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Percentage", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalInterest", + "description": "The total interest cost for this financing option.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalCost", + "description": "The total amount for the transaction, including interest.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paypalSubsidized", + "description": "Indicates whether the financing option's credit fee is funded by PayPal.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PayPalRefundDetails", + "description": "PayPal-specific refund details.", + "fields": [ + { + "name": "refundId", + "description": "The PayPal refund ID.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "refundedFee", + "description": "Refunded transaction fee charged by PayPal.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": "The description of this refund.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reason", + "description": "The reason this refund was created.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "PayPalRetailAppUsedForScanning", + "description": "The app used to scan an in-store QR code.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VENMO", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PayPalShippingOptionInput", + "description": "A shipping option for a PayPal One-Time payment.", + "fields": null, + "inputFields": [ + { + "name": "amount", + "description": "The cost for this shipping option.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "MonetaryAmountInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "id", + "description": "A unique ID that identifies a shipping option.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "description", + "description": "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ò`.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "selected", + "description": "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.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "type", + "description": "The method by which the payer wants to receive their items.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "PayPalShippingOptionType", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "PayPalShippingOptionType", + "description": "The method by which the payer wants to receive their items.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "PICKUP", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SHIPPING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PayPalTransactionDetails", + "description": "PayPal-specific details on a transaction.", + "fields": [ + { + "name": "authorizationId", + "description": "If the transaction was successfully authorized, the PayPal ID for the authorization.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "captureId", + "description": "If funds for the transaction have settled, the PayPal ID for the capture of funds.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "customField", + "description": "A string of field/value pairs passed directly to PayPal.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "payer", + "description": "Details about the payer or owner of the PayPal account.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PayPalAccountDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "payee", + "description": "Details about the PayPal account that received the funds.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PayPalAccountDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "payerStatus", + "description": "Whether or not the PayPal account has been verified by PayPal.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentId", + "description": "The identification value of the payment within PayPal's API.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "refundId", + "description": "If the transaction is a refund, the PayPal refund ID.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "This field will never be populated as it only appears on refunds. Use `details.paypalId` on a refund instead." + }, + { + "name": "sellerProtectionStatus", + "description": "Whether or not the transaction qualifies for PayPal Seller Protection.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "taxId", + "description": "Payer's tax ID. Only returned for payments from Brazilian accounts.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "taxIdType", + "description": "Payer's tax ID type. Only returned for payments from Brazilian accounts. Allowed values BR_CPF or BR_CNPJ.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionFee", + "description": "The fee charged by PayPal for the transaction.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionFeeAmount", + "description": "The fee charged by PayPal for the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `transactionFee.value` instead." + }, + { + "name": "transactionFeeCurrencyIsoCode", + "description": "The currency code for the currency of the PayPal transaction fee.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `transactionFee.currencyCode` instead." + }, + { + "name": "description", + "description": "Description of the transaction that is displayed to customers in PayPal email receipts.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "origin", + "description": "Additional information if the credit card was provided from a third-party origin, such as Google Pay.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethodOrigin", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "selectedFinancingOption", + "description": "Buyer selected financing option at the time of creating a transaction.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "SelectedPayPalFinancingOptionDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "appUsedForScanning", + "description": "The application used by the payer to scan the QR code.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PayPalRetailAppUsedForScanning", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PayPalTransactionPayload", + "description": "Top-level output field from creating a PayPal transaction.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transaction", + "description": "The transaction representing the charge on the payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "billingAgreementWithPurchasePaymentMethod", + "description": "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.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "Payment", + "description": "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).", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "legacyId", + "description": "Legacy unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createdAt", + "description": "Date and time when the payment was created.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "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.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "orderId", + "description": "The order ID.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The current status of this payment.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "statusHistory", + "description": "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.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "PaymentStatusEvent", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merchantAccountId", + "description": "The ID of the merchant account that processed this payment.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "How the payment was created.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethodSnapshot", + "description": "Snapshot of payment method details used to create the payment, preserved at the time the transaction was created. This will always be present.", + "args": [], + "type": { + "kind": "UNION", + "name": "PaymentMethodSnapshot", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "Refund", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "PaymentConnection", + "description": "A paginated list of transactions and refunds.", + "fields": [ + { + "name": "edges", + "description": "A list of transactions and refunds.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PaymentConnectionEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information about the page of transactions and refunds contained in `edges`.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PaymentConnectionEdge", + "description": "A transaction or refund within a PaymentConnection.", + "fields": [ + { + "name": "cursor", + "description": "This transaction or refund's location within the PaymentConnection. Used for requesting additional pages.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The transaction or refund.", + "args": [], + "type": { + "kind": "INTERFACE", + "name": "Payment", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "PaymentContext", + "description": "Context associated with a transaction.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createdAt", + "description": "Date and time when the payment context was created.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "updatedAt", + "description": "Date and time when the payment context was updated.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "CustomActionsPaymentContext", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "LocalPaymentContext", + "ofType": null + } + ] + }, + { + "kind": "ENUM", + "name": "PaymentInitiator", + "description": "The initiator of the payment. Payment can either be merchant-initiated or customer-initiated.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "MOTO", + "description": "Transactions that are initiated by the customer via the merchant by mail or telephone.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RECURRING", + "description": "Transactions that are initiated by the merchant for subsequent recurring payments (e.g. subscriptions with a fixed amount on a predefined schedule).", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RECURRING_FIRST", + "description": "Transactions initiated by the customer that represent the first in a series of recurring payments or subscription.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNSCHEDULED", + "description": "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).", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PaymentLevelFeeReport", + "description": "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).", + "fields": [ + { + "name": "url", + "description": "The URL where the generated report is stored. Download the report from this URL.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PaymentMethod", + "description": "Top-level field representing a payment method.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "legacyId", + "description": "Legacy unique identifier. May be the same as ID for single-use payment methods.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "usage", + "description": "Whether a payment method may be used only once or multiple times.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentMethodUsage", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createdAt", + "description": "Date and time when the payment method was vaulted.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "details", + "description": "Details about the payment method specific to the type (e.g. credit card, PayPal account).", + "args": [], + "type": { + "kind": "UNION", + "name": "PaymentMethodDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verifications", + "description": "A paginated list of verifications that have been run against the payment method.", + "args": [ + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "VerificationConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "customer", + "description": "The customer that the payment method belongs to.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Customer", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PaymentMethodConnection", + "description": "A paginated list of payment methods.", + "fields": [ + { + "name": "edges", + "description": "A list of payment methods.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PaymentMethodConnectionEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information about the page of payment methods contained in `edges`.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PaymentMethodConnectionEdge", + "description": "A payment method within a PaymentMethodConnection.", + "fields": [ + { + "name": "cursor", + "description": "This payment method's location within the PaymentMethodConnection. Used for requesting additional pages.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "PaymentMethodDeletionInitiator", + "description": "Initiator of a payment method delete request.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CUSTOMER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MERCHANT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "UNION", + "name": "PaymentMethodDetails", + "description": "A union of all possible payment method details. PaymentMethodDetails contain information for display purposes, payment method management, and processing.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "CustomActionsPaymentMethodDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "CreditCardDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "PayPalAccountDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "SamsungPayCardDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "VenmoAccountDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "UsBankAccountDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "SEPADirectDebitAccountDetails", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "PaymentMethodOrigin", + "description": "Information about how the customer provided a payment method, such as via a digital wallet.", + "fields": [ + { + "name": "type", + "description": "An enum identifying the origin of the payment method.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentMethodOriginType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "details", + "description": "When available, additional details specific to the origin.", + "args": [], + "type": { + "kind": "UNION", + "name": "PaymentMethodOriginDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "UNION", + "name": "PaymentMethodOriginDetails", + "description": "A union of all possible payment method origin details. PaymentMethodOriginDetails contain additional information specific to the third party the payment method was provided by.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "ApplePayOriginDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "GooglePayOriginDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "MasterpassOriginDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NetworkTokenOriginDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "SamsungPayOriginDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "VisaCheckoutOriginDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "PayPalLocalPaymentOriginDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "CardPresentOriginDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "EmvCardOriginDetails", + "ofType": null + } + ] + }, + { + "kind": "ENUM", + "name": "PaymentMethodOriginType", + "description": "A value identifying the third-party origin from which a customer provided their payment method.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "APPLE_PAY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GOOGLE_PAY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "IN_STORE_READER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MASTERPASS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NETWORK_TOKEN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SAMSUNG_PAY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VISA_CHECKOUT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "UNION", + "name": "PaymentMethodSnapshot", + "description": "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.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "CustomActionsPaymentMethodDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "CreditCardDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "PayPalTransactionDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "VenmoAccountDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "UsBankAccountDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "LocalPaymentDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "CreditCardTransactionDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "SEPADirectDebitTransactionDetails", + "ofType": null + } + ] + }, + { + "kind": "ENUM", + "name": "PaymentMethodSnapshotSearchType", + "description": "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.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ALIPAY_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "BANCONTACT_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "BLIK_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "BOLETOBANCARIO_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CREDIT_CARD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CREDIT_CARD_VIA_APPLE_PAY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CREDIT_CARD_VIA_GOOGLE_PAY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CREDIT_CARD_VIA_MASTERPASS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CREDIT_CARD_VIA_NETWORK_TOKEN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CREDIT_CARD_VIA_SAMSUNG_PAY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CREDIT_CARD_VIA_VISA_CHECKOUT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "EPS_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GIROPAY_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GRABPAY_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "IDEAL_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LOCAL_PAYMENT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MULTIBANCO_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MYBANK_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OXXO_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "P24_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAYU_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAY_UPON_INVOICE_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SATISPAY_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SEPA_DIRECT_DEBIT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SEPA_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SOFORT_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SWISH_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TRUSTLY_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "US_BANK_ACCOUNT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VENMO_ACCOUNT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VERKKOPANKKI_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VIPPS_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WECHAT_PAY_VIA_PAYPAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "PaymentMethodUsage", + "description": "Possible usages for payment methods.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "MULTI_USE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SINGLE_USE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PaymentMethodVerificationOptionsInput", + "description": "Input fields that specify options for verifying the vaulted payment method. Only applicable for payment method types that suport verification.", + "fields": null, + "inputFields": [ + { + "name": "merchantAccountId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "skip", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PaymentNetworkResponse", + "description": "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.", + "fields": [ + { + "name": "code", + "description": "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).", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "message", + "description": "The network response text.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "PaymentReaderInputMode", + "description": "The input mode used on the payment reader to facilitate an in-store transaction.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CONTACT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CONTACTLESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MAGSTRIPE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MAGSTRIPE_FALLBACK", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MANUAL_KEY_ENTRY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VAULT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PaymentSearchInput", + "description": "Input fields for searching for any type of Payment.", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": "Find payments with an ID or IDs.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "type", + "description": "Find payments by their type. Use this field to search for payments by the direction of money movement.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentTypeInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "status", + "description": "Find payments with a given status.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentStatusInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "statusTransition", + "description": "Find payments based on the time at which they transitioned to a given status.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentStatusTransitionInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "createdAt", + "description": "Find payments based on the time they were created.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTimestampInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "Find payments for a given amount or currency.", + "type": { + "kind": "INPUT_OBJECT", + "name": "MonetaryAmountSearchInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "orderId", + "description": "Find payments with a given orderId.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "Find payments processed through a merchant account ID or IDs.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customer", + "description": "Find payments with a given customer.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentCustomerInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "disbursementDate", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchDateInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "source", + "description": "Find payments created with a given source.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentSourceInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "settlementBatchId", + "description": "Find payments by the batch ID under which the payment was submitted for settlement.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethod", + "description": "Find payments based on information about the payment method used for the payment.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentPaymentMethodInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "facilitatorOAuthApplicationClientId", + "description": "Find payments created by a third party via the Grant API using a given OAuth application client ID.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "userId", + "description": "Find payments with a user ID or IDs.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "storeId", + "description": "Find payments by the ID of the store that the transaction was processed in.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "PaymentSearchType", + "description": "The type of a Payment, based primarily on implementing type.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "DETACHED_REFUND", + "description": "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.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "REFUND", + "description": "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.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TRANSACTION", + "description": "The payment is a Transaction.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "PaymentSource", + "description": "The origin of a request that created or changed a transaction or refund.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "API", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CONTROL_PANEL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAYMENT_READER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RECURRING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNKNOWN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "PaymentStatus", + "description": "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`.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "AUTHORIZATION_EXPIRED", + "description": "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.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AUTHORIZED", + "description": "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.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AUTHORIZING", + "description": "If a payment remains in a status of `AUTHORIZING`, [contact us for assistance](https://help.braintreepayments.com?issue=TransactionProcessingQuestion).", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FAILED", + "description": "An error occurred when sending the payment to the downstream processor. See the payment's `statusHistory` for the exact error.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GATEWAY_REJECTED", + "description": "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.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PROCESSOR_DECLINED", + "description": "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.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SETTLED", + "description": "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.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SETTLEMENT_CONFIRMED", + "description": "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.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SETTLEMENT_DECLINED", + "description": "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.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SETTLEMENT_PENDING", + "description": "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.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SETTLING", + "description": "The payment is in the process of being settled. This is a transitory state, and will resolve to a status of `SETTLED`.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SUBMITTED_FOR_SETTLEMENT", + "description": "The payment has been successfully captured, and will be included in the next settlement batch, at which time it will become settled.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VOIDED", + "description": "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.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "PaymentStatusEvent", + "description": "Status event in the [lifecycle of a payment](https://articles.braintreepayments.com/get-started/transaction-lifecycle).", + "fields": [ + { + "name": "status", + "description": "New status of the payment.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timestamp", + "description": "Date and time when the status event occurred.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "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`.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "Source that caused the status event to occur.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminal", + "description": "Whether this is the final state for the payment. If false, this transaction will pass into another subsequent state.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "AuthorizationExpiredEvent", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "AuthorizedEvent", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "FailedEvent", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "GatewayRejectedEvent", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "ProcessorDeclinedEvent", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "SettledEvent", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "SettlementConfirmedEvent", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "SettlementDeclinedEvent", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "SettlementPendingEvent", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "SettlingEvent", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "SubmittedForSettlementEvent", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "VoidedEvent", + "ofType": null + } + ] + }, + { + "kind": "SCALAR", + "name": "Percentage", + "description": "The percentage, as a fixed-point, signed decimal number. For example, define a 19.99% interest rate as `19.99`.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PerformThreeDSecureLookupInput", + "description": "Top-level fields for performing a 3D Secure Lookup.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "ID of the merchant account that will be used when charging the payment method.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "dfReferenceId", + "description": "Reference ID used by our MPI provider CardinalCommerce to connect the lookup request to the device data that was previously collected.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "ID of a payment method to perform the lookup on.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "The amount you plan to charge the payment method after the 3D Secure authentication.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "transactionInformation", + "description": "Additional information about the transaction when authenticating through 3D Secure.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecureLookupTransactionInformationInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "cardholderInformation", + "description": "Additional information about the cardholder when authenticating through 3D Secure.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecureLookupCardholderInformationInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "requestAuthenticationChallenge", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "clientInformation", + "description": "Information about the client-side lookup process.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecureLookupClientInformationInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "dataOnlyRequested", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "cardAdd", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PerformThreeDSecureLookupPayload", + "description": "Top-level fields returned when performing a 3D Secure Lookup.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "threeDSecureLookupData", + "description": "Data fields containing information from the MPI provider about the 3D Secure Lookup result.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "ThreeDSecureLookupData", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethod", + "description": "A single-use payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PhoneInput", + "description": "The phone number in its international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", + "fields": null, + "inputFields": [ + { + "name": "countryPhoneCode", + "description": "The country calling code (CC), in its canonical international [E.164 numbering\nplan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of\nthe CC and the national number must not be greater than 15 digits. The\nnational number consists of a national destination code (NDC) and subscriber number (SN).", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "phoneNumber", + "description": "The phone number, in its canonical international [E.164 numbering plan\nformat](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the\ncountry calling code (CC) and the national number must not be greater than 15\ndigits. The national number consists of a national destination code (NDC) and\nsubscriber number (SN).", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "extensionNumber", + "description": "The extension number.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ProcessorDeclineType", + "description": "Whether the decline is likely to be temporary or persistent. Can be taken into consideration when determining whether to retry a declined charge.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "HARD", + "description": "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.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SOFT", + "description": "Soft declines result from a temporary issue and can be retried; subsequent charges on the same payment method may be successful.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ProcessorDeclinedEvent", + "description": "Accompanying information for a processor declined transaction.", + "fields": [ + { + "name": "status", + "description": "The new status of the transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timestamp", + "description": "Date and time when the transaction was declined by the processor.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "The amount of the transaction for this status event.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "The source for the transaction change to the new status.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "declineType", + "description": "Whether or not the decline is the result of a temporary issue.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ProcessorDeclineType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "processorResponse", + "description": "Fields describing the payment processor response and why they declined the transaction.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "TransactionAuthorizationProcessorResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "networkResponse", + "description": "Fields describing the network response to the authorization request.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentNetworkResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "riskDecision", + "description": "Risk decision for this transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "RiskDecision", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminal", + "description": "Whether or not this is the final state for the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "PaymentStatusEvent", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Query", + "description": "The top-level Query type. Queries are used to fetch data.", + "fields": [ + { + "name": "ping", + "description": "Returns the literal string 'pong'.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pingInStoreReader", + "description": "Triggers a beep on a connected Reader and returns the Reader information or an error if unable to ping the device.", + "args": [ + { + "name": "readerId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "InStoreReader", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "viewer", + "description": "The currently authenticated viewer.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Viewer", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clientConfiguration", + "description": "The client-side environment and payment method configuration.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "ClientConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "Fetch any object that extends the Node interface using its ID.", + "args": [ + { + "name": "id", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "idFromLegacyId", + "description": "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.", + "args": [ + { + "name": "legacyId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "type", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "LegacyIdType", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "report", + "description": "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.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Report", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "search", + "description": "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.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Search", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paypalFinancingOptions", + "description": "Retrieve PayPal financing options that include payment installment plans.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PayPalFinancingOptionsInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "PayPalFinancingOptionsPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "inStoreLocations", + "description": "Retrieve a paginated list of all in-store locations.", + "args": [ + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "InStoreLocationConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ReaderStatus", + "description": "Indicates the status of a Reader.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "OFFLINE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ONLINE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "RecurringType", + "description": "The type of recurring payment a transaction represents.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "FIRST", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SUBSEQUENT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNSCHEDULED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Refund", + "description": "A refund of a charge on a payment method, representing an attempt to send money from a previous transaction back to the customer.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "legacyId", + "description": "Legacy unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createdAt", + "description": "Date and time when the refund was created.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "The amount that will be refunded, which can be less than or equal to the original charge amount.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "orderId", + "description": "The order ID for this refund. For PayPal transactions, the PayPal Invoice ID.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The current status of this refund.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "statusHistory", + "description": "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.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "PaymentStatusEvent", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "details", + "description": "Payment method specific details about the refund.", + "args": [], + "type": { + "kind": "UNION", + "name": "RefundPaymentMethodDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merchantAccountId", + "description": "The ID of the merchant account that processed this refund.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "How the refund was created.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "refundedTransaction", + "description": "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.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethodSnapshot", + "description": "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`.", + "args": [], + "type": { + "kind": "UNION", + "name": "PaymentMethodSnapshot", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethod", + "description": "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).", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "customer", + "description": "The customer that the vaulted payment method (if it exists) belongs to. Equivalent to `refundedTransaction.customer` (if present).", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Customer", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lineItems", + "description": "Line items for this refund.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TransactionLineItem", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "customFields", + "description": "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.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CustomField", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "descriptor", + "description": "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).", + "args": [], + "type": { + "kind": "OBJECT", + "name": "TransactionDescriptor", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "disbursementDetails", + "description": "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.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "DisbursementDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "Payment", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RefundConnection", + "description": "A paginated list of refunds.", + "fields": [ + { + "name": "edges", + "description": "A list of refunds.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RefundConnectionEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information about the page of refunds contained in `edges`.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RefundConnectionEdge", + "description": "A transaction within a RefundConnection.", + "fields": [ + { + "name": "cursor", + "description": "This refund's location within the RefundConnection. Used for requesting additional pages.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The refund.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Refund", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "RefundCreditCardInput", + "description": "Top-level input fields for creating a detached refund on a credit card.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "ID of the credit card to be refunded.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "refund", + "description": "Input fields containing details about the refund.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DetachedRefundInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RefundCreditCardPayload", + "description": "Top-level output field from creating a detached refund for a credit card.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "refund", + "description": "The information about the created refund.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Refund", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "RefundInput", + "description": "Specific input fields for describing a refund.", + "fields": null, + "inputFields": [ + { + "name": "amount", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "orderId", + "description": "The refund's order ID. Defaults to the order ID of the original transaction.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "ID of the merchant account that will be used when performing the refund.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "description", + "description": "Description of the refund that is displayed to customers in PayPal email receipts.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "reason", + "description": "Reason of the refund transaction. This field maps to the PayPal refund reason.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "lineItems", + "description": "Line items for this refund. Up to 249 line items may be specified.\n\nOnly allowed for Custom Actions transactions.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TransactionLineItemInput", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "UNION", + "name": "RefundPaymentMethodDetails", + "description": "A union of all possible payment method refund details.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "PayPalRefundDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "PayPalLocalPaymentRefundDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "SEPADirectDebitRefundDetails", + "ofType": null + } + ] + }, + { + "kind": "ENUM", + "name": "RefundPolicy", + "description": "Supported refund policies.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "EXCHANGE_ONLY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NO_REFUND_OR_EXCHANGE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "REFUND_CARDHOLDER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "RefundSearchInput", + "description": "Input fields for searching for refunds.", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": "Find refunds with an ID or IDs.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "status", + "description": "Find refunds with the given status.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTransactionStatusInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "statusTransition", + "description": "Find payments based on the time at which they transitioned to a given status.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentStatusTransitionInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "createdAt", + "description": "Find refunds based on the time they were created.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTimestampInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "Find refunds with a given amount or currency.", + "type": { + "kind": "INPUT_OBJECT", + "name": "MonetaryAmountSearchInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "orderId", + "description": "Find refunds with a given orderId.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "Find refunds processed through a merchant account ID or IDs. In most cases, this will be the merchant account of the original refunded transaction.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customer", + "description": "Find refunds with a given customer.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentCustomerInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "disbursementDate", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchDateInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "source", + "description": "Find refunds created with a given source.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentSourceInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "settlementBatchId", + "description": "Find refunds by the batch ID under which the refund was submitted for settlement.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethod", + "description": "Find refunds based on information about the payment method used for the refund.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentPaymentMethodInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "facilitatorOAuthApplicationClientId", + "description": "Find refunds created by a third party via the Grant API using a given OAuth application client ID.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "userId", + "description": "Find refunds with a user ID or IDs.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "storeId", + "description": "Find refunds by the ID of the store that the transaction was processed in.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "RefundTransactionInput", + "description": "Top-level input fields for refunding a transaction.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transactionId", + "description": "The ID of a transaction to be refunded.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "refund", + "description": "Input fields for the details of the refund.", + "type": { + "kind": "INPUT_OBJECT", + "name": "RefundInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RefundTransactionPayload", + "description": "Top-level output field from refunding a transaction.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "refund", + "description": "The information about the created refund.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Refund", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "RefundUsBankAccountInput", + "description": "Top-level input fields for creating a detached refund on a US Bank Account.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "ID of the US Bank Account to be refunded.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "options", + "description": "Input fields related to the US bank account being charged.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ChargeUsBankAccountOptionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "refund", + "description": "Input fields containing details about the refund.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DetachedRefundInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RefundUsBankAccountPayload", + "description": "Top-level output field from creating a detached refund for a US Bank Account.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "refund", + "description": "The information about the created refund.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Refund", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Report", + "description": "Top-level fields returned for a report query.", + "fields": [ + { + "name": "transactionLevelFees", + "description": "Top-level fields returned in the transaction-level fee report query.", + "args": [ + { + "name": "date", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": null, + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TransactionLevelFeeReport", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "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." + }, + { + "name": "paymentLevelFees", + "description": "Top-level fields returned in the payment-level fee report query.", + "args": [ + { + "name": "date", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": null, + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "PaymentLevelFeeReport", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "RequestCancelFromInStoreReaderInput", + "description": "Input fields for requesting a cancel during an in-store charge flow.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "inStoreContextId", + "description": "Unique ID for the charge flow.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "RequestChargeFromInStoreReaderInput", + "description": "Input fields for beginning the in-store charge flow.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "readerId", + "description": "ID of the Reader to request a charge from.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "transaction", + "description": "Information about the requested in-store transaction.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "InStoreTransactionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RequestChargeInStoreContext", + "description": "Reference object for an in-store charge request.", + "fields": [ + { + "name": "id", + "description": "A unique ID for this charge request.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reader", + "description": "The reader from which the charge was requested.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreReader", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The status of the context created when the charge was requested. A status of COMPLETE does not indicate a successful payment.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "InStoreContextStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transaction", + "description": "The transaction representing the charge on the payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "InStoreContextResult", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "RequestConfirmationPromptFromInStoreReaderInput", + "description": "Input fields for requesting a confirmation prompt on an in-store reader.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "readerId", + "description": "ID of the Reader to request a confirmation prompt from.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "title", + "description": "Title to be displayed on the in-store reader. 50 character maximum.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "text", + "description": "Text to be displayed on the in-store reader. 65536 character maximum. '\\n' line breaks will be respected.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "alignment", + "description": "The way the text is aligned when displayed on an in-store reader. Defaults to CENTER.", + "type": { + "kind": "ENUM", + "name": "ConfirmationPromptAlignment", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "cancellationText", + "description": "Text for the cancellation option to be displayed on the in-store reader. 20 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "confirmationText", + "description": "Text for the confirmation option to be displayed on the in-store reader. 20 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RequestConfirmationPromptInStoreContext", + "description": "Reference object for an in-store reader confirmation prompt.", + "fields": [ + { + "name": "id", + "description": "A unique ID for this confirmation prompt request.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reader", + "description": "The reader from which the confirmation prompt was requested.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreReader", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The status of the context created when the confirmation prompt was requested.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "InStoreContextStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "confirmed", + "description": "The confirmation response collected by the in-store reader.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "InStoreContextResult", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RequestDisplayInStoreContext", + "description": "Reference object for an in-store display request.", + "fields": [ + { + "name": "id", + "description": "A unique ID for this display request.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reader", + "description": "The reader from which the display was requested.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreReader", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The status of the context created when the display was requested.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "InStoreContextStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "InStoreContextResult", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "RequestFirmwareUpdateFromInStoreReaderInput", + "description": "Input fields for requesting a firmware update for an in-store reader.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "readerId", + "description": "The in-store reader to receive the firmware update.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RequestFirmwareUpdateInStoreContext", + "description": "Reference object for an in-store reader firmware update.", + "fields": [ + { + "name": "id", + "description": "A unique ID for this firmware update request.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reader", + "description": "The reader for which the firmware update was requested.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreReader", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The status of the context created when the firmware update was requested.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "InStoreContextStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "InStoreContextResult", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "RequestItemDisplayFromInStoreReaderInput", + "description": "Input fields for beginning the in-store display line items flow.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "readerId", + "description": "ID of the Reader to display items on.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "displayItems", + "description": "Items to be displayed on the in-store reader. Up to 249 items may be specified.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "InStoreDisplayItemInput", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "tax", + "description": "The total tax amount for the entire transaction, including all display line items.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "The total amount for the entire transaction, including tax.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "discountAmount", + "description": "The total discount amount for the entire transaction.", + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "RequestRefundFromInStoreReaderInput", + "description": "Input fields for beginning the in-store refund flow.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "readerId", + "description": "ID of the Reader to request a refund from.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "refund", + "description": "Information about the requested in-store refund.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "InStoreRefundInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RequestRefundInStoreContext", + "description": "Reference object for an in-store refund request.", + "fields": [ + { + "name": "id", + "description": "A unique ID for this refund request.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reader", + "description": "The reader from which the refund was requested.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreReader", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The status of the context created when the refund was requested. A status of COMPLETE does not indicate a successful payment.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "InStoreContextStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "refund", + "description": "The refund representing the refund on the payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Refund", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "InStoreContextResult", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "RequestSignaturePromptFromInStoreReaderInput", + "description": "Input fields for requesting a signature prompt on an in-store reader.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "readerId", + "description": "ID of the Reader to request a signature prompt from.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "title", + "description": "Title to be displayed on the in-store reader. 50 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "cancellationText", + "description": "Text for the cancellation option to be displayed on the in-store reader. 20 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "confirmationText", + "description": "Text for the confirmation option to be displayed on the in-store reader. 20 character maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RequestSignaturePromptInStoreContext", + "description": "Reference object for an in-store reader signature prompt.", + "fields": [ + { + "name": "id", + "description": "A unique ID for this signature prompt request.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reader", + "description": "The reader from which the signature prompt was requested.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreReader", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The status of the context created when the signature prompt was requested.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "InStoreContextStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "signatureData", + "description": "The signature data collected by the in-store reader. Base64 encoded PNG image.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "InStoreContextResult", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "RequestTextDisplayFromInStoreReaderInput", + "description": "Input fields for beginning the in-store display text flow.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "readerId", + "description": "ID of the Reader to request a text display from.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "text", + "description": "Text to be displayed on the in-store reader. 255 character maximum. '\\n' line breaks will be respected.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "RequestVaultFromInStoreReaderInput", + "description": "Input fields for beginning the in-store charge flow.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "readerId", + "description": "ID of the Reader to request a vault from.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "verification", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "PaymentMethodVerificationOptionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customerId", + "description": "ID of the customer to associate the resulting multi-use payment method with.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RequestVaultInStoreContext", + "description": "Reference object for an in-store vault request.", + "fields": [ + { + "name": "id", + "description": "A unique ID for this vault request.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reader", + "description": "The reader from which the vault was requested.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreReader", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The status of the context created when the vault was requested.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "InStoreContextStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethod", + "description": "A payment method that has been stored in a merchant's vault and can be reused.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verification", + "description": "The verification that was run on the payment method prior to vaulting.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Verification", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "InStoreContextResult", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ReverseRefundInput", + "description": "Input fields for reversing a refund.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "refundId", + "description": "The ID of the refund to reverse.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ReverseTransactionInput", + "description": "Input fields for reversing a transaction.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transactionId", + "description": "The ID of the transaction to reverse.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ReverseTransactionPayload", + "description": "Top-level output field for reversing a transaction.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reversal", + "description": "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.", + "args": [], + "type": { + "kind": "UNION", + "name": "TransactionReversal", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Right", + "description": "A right assigned to a user.", + "fields": [ + { + "name": "name", + "description": "A human-readable name.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RiskData", + "description": "Data from advanced risk evaluations.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "decision", + "description": "The risk decision on whether the transaction should be permitted.", + "args": [], + "type": { + "kind": "ENUM", + "name": "RiskDecision", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "decisionReasons", + "description": "The reasons for the decision from the fraud service provider.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deviceDataCaptured", + "description": "Whether data associated with the customer's device was captured and used in the decision process.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fraudServiceProvider", + "description": "The fraud service provider used to generate the risk decision.", + "args": [], + "type": { + "kind": "ENUM", + "name": "FraudServiceProvider", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "liabilityShift", + "description": "Liability Shift information in the event of a chargeback.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "LiabilityShift", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "score", + "description": "The numeric risk score assigned by the fraud service provider.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "RiskDataInput", + "description": "Input fields for data used by processors for risk analysis.", + "fields": null, + "inputFields": [ + { + "name": "customerBrowser", + "description": "The User-Agent header provided by the customer's browser, which gives information about the browser. Maximum 255 characters.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customerIp", + "description": "The customer's IP address.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "deviceData", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "RiskDecision", + "description": "The risk decision provides further context on how a transaction was scored for risk by Braintree.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "APPROVE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DECLINE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NOT_EVALUATED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "REVIEW", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Role", + "description": "Groups of rights assigned to the user.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "A human-readable name.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isAccountAdmin", + "description": "Whether the role grants account admin status.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "rights", + "description": "The rights associated with the role.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Right", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SEPADirectDebitAccountDetails", + "description": "Details about a SEPA Direct Debit account.", + "fields": [ + { + "name": "merchantOrPartnerCustomerId", + "description": "Merchant or Partner Customer ID.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "last4", + "description": "Last 4 characters of IBAN number.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bankReferenceToken", + "description": "Bank reference token.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mandateType", + "description": "Mandate type.", + "args": [], + "type": { + "kind": "ENUM", + "name": "MandateType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SEPADirectDebitRefundDetails", + "description": "Refund-related details for SEPA Direct Debit transactions.", + "fields": [ + { + "name": "refundId", + "description": "The SEPA Direct Debit refund ID.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "refundedFee", + "description": "Refunded transaction fee charged by SEPA Direct Debit.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentId", + "description": "PayPal V2 OrderId.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SEPADirectDebitTransactionDetails", + "description": "Details about a SEPA Direct Debit account.", + "fields": [ + { + "name": "captureId", + "description": "If funds for the transaction have settled, the PayPal ID for the capture of funds.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionFee", + "description": "The fee charged by PayPal for the transaction.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentId", + "description": "PayPal V2 OrderId.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SamsungPayCardDetails", + "description": "Details about a Samsung Pay card.", + "fields": [ + { + "name": "brand", + "description": "The display name of the card brand, e.g. \"Visa\" or \"American Express\".", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "brandCode", + "description": "A static code identifying the card brand of the FPAN (the customer's actual backing card).", + "args": [], + "type": { + "kind": "ENUM", + "name": "CreditCardBrandCode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bin", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "binData", + "description": "Information about the card based on its BIN. This BIN will differ from the BIN of the source (customer's actual) card.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "BinRecord", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sourceCardLast4", + "description": "The last four digits of the FPAN (the customer's actual backing card).", + "args": [], + "type": { + "kind": "SCALAR", + "name": "CreditCardLast4", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SamsungPayCardInput", + "description": "Input fields for a Samsung Pay card.", + "fields": null, + "inputFields": [ + { + "name": "cryptogram", + "description": "A one-time-use string generated by the token requester to validate the transaction.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "eCommerceIndicator", + "description": "A two-digit string that should be passed along in the authorization message.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ECommerceIndicator", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "expirationMonth", + "description": "A two-digit string representing the expiration month of the DPAN.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Month", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "expirationYear", + "description": "A four-digit string representing the expiration year of the DPAN.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Year", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "number", + "description": "The card number provided by Samsung and used in processing. This is a digitized PAN (DPAN), not the backing card number (FPAN).", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CreditCardNumber", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "sourceCardLast4", + "description": "The last four digits of the FPAN (the cardholder's backing card).", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CreditCardLast4", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SamsungPayConfiguration", + "description": "Configuration for Samsung Pay on Android.", + "fields": [ + { + "name": "displayName", + "description": "A string used to identify the merchant to the customer.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "environment", + "description": "The Samsung Pay environment.", + "args": [], + "type": { + "kind": "ENUM", + "name": "SamsungPayEnvironment", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "serviceId", + "description": "The Samsung Pay service ID.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "samsungAuthorization", + "description": "Authorization to use when tokenizing Samsung Pay.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "supportedCardBrands", + "description": "A list of card brands supported by the merchant for Samsung Pay.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "CreditCardBrandCode", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "SamsungPayEnvironment", + "description": "The environment being used for Samsung Pay.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "PRODUCTION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SANDBOX", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SamsungPayOriginDetails", + "description": "Additional information about the payment method specific to Samsung Pay.", + "fields": [ + { + "name": "bin", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SandboxSettleTransactionInput", + "description": "Top-level input fields for settling a transaction in the sandbox environment.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transactionId", + "description": "Id of the transaction to force settlement in the sandbox environment.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "settlementState", + "description": "The target settlement state for the transaction in the sandbox environment.", + "type": { + "kind": "ENUM", + "name": "SandboxSettlementState", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "SandboxSettlementState", + "description": "The settlement state when forcing transaction settlement in the sandbox environment.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "SETTLED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SETTLEMENT_DECLINED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ScaExemptionType", + "description": "The type of Strong Customer Authentication Exemption.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "LOW_VALUE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SECURE_CORPORATE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TRANSACTION_RISK_ANALYSIS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TRUSTED_BENEFICIARY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Search", + "description": "Top-level fields returned for a search query.", + "fields": [ + { + "name": "transactions", + "description": "A paginated list of transactions that match the TransactionSearchInput.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TransactionSearchInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "TransactionConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "refunds", + "description": "A paginated list of refunds that match the RefundSearchInput.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RefundSearchInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "RefundConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "payments", + "description": "A paginated list of all types of Payment that match the PaymentSearchInput.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PaymentSearchInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "PaymentConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "disputes", + "description": "A paginated list of disputes that match the DisputeSearchInput.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DisputeSearchInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "DisputeConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verifications", + "description": "A paginated list of verifications that match the VerificationSearchInput.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VerificationSearchInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "VerificationConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "customers", + "description": "A paginated list of customers that match the CustomerSearchInput.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CustomerSearchInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "CustomerConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "businessAccountCreationRequests", + "description": "A paginated list of business account creation requests that match the BusinessAccountCreationRequestSearchInput.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "BusinessAccountCreationRequestSearchInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "BusinessAccountCreationRequestConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "inStoreReaders", + "description": "A paginated list of in-store readers that match the InStoreReaderSearchInput.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "InStoreReaderSearchInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "first", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "after", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "InStoreReaderConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchChargebackProtectionLevelInput", + "description": "Deprecated: Please use `SearchDisputeProtectionLevelInput` instead.\n\nInput fields for searching for a dispute with a given chargeback protection level.", + "fields": null, + "inputFields": [ + { + "name": "is", + "description": "The dispute's chargeback protection level is exactly this value.", + "type": { + "kind": "ENUM", + "name": "ChargebackProtectionLevel", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "in", + "description": "Dispute's chargeback protection level is one of these values.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "ChargebackProtectionLevel", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchCreditCardBrandCodeInput", + "description": "Input fields for searching for payments by credit card brand.", + "fields": null, + "inputFields": [ + { + "name": "is", + "description": "Credit card brand code is exactly this value.", + "type": { + "kind": "ENUM", + "name": "CreditCardBrandCode", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "in", + "description": "Credit card brand code is one of these values.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "CreditCardBrandCode", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchCreditCardExpirationDateInput", + "description": "Input fields for searching for payments by payment method snapshot credit card expiration date criteria.", + "fields": null, + "inputFields": [ + { + "name": "is", + "description": "Field is exactly this value.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchCreditCardExpirationMonthYearInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "isNot", + "description": "Field is not this value.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchCreditCardExpirationMonthYearInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchCreditCardExpirationMonthYearInput", + "description": "Input fields for searching for payments by payment method snapshot credit card expiration date criteria.", + "fields": null, + "inputFields": [ + { + "name": "expirationMonth", + "description": "The month of the credit card expiration as MM.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "expirationYear", + "description": "The year of the credit card expiration as YYYY.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchCreditCardNumberInput", + "description": "Input fields for searching for payments by payment method snapshot credit card number criteria.", + "fields": null, + "inputFields": [ + { + "name": "startsWith", + "description": "Up to the first six digits of the credit card number (the credit card's BIN).", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "endsWith", + "description": "Up to four digits of the last four digits of the credit card number.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchDateInput", + "description": "Input fields for searching for a date. These ranges are precise to the day.", + "fields": null, + "inputFields": [ + { + "name": "greaterThanOrEqualTo", + "description": "Date is greater than or equal to this value.", + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "lessThanOrEqualTo", + "description": "Date is less than or equal to this value.", + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchDisputeProtectionLevelInput", + "description": "Input fields for searching for a dispute with a given protection level.", + "fields": null, + "inputFields": [ + { + "name": "is", + "description": "The dispute's protection level is exactly this value.", + "type": { + "kind": "ENUM", + "name": "DisputeProtectionLevel", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "in", + "description": "The dispute's protection level is one of these values.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "DisputeProtectionLevel", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchDisputeReasonInput", + "description": "Input fields for searching for a dispute with a given reason description.", + "fields": null, + "inputFields": [ + { + "name": "in", + "description": "The dispute reason is one of these values.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "DisputeReason", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchDisputeStatusInput", + "description": "Input fields for searching for a dispute with a given status.", + "fields": null, + "inputFields": [ + { + "name": "is", + "description": "The dispute status is exactly this value.", + "type": { + "kind": "ENUM", + "name": "DisputeStatus", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "in", + "description": "The dispute status is one of these values.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "DisputeStatus", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchDisputeTypeInput", + "description": "Input fields for searching for a dispute with a given type.", + "fields": null, + "inputFields": [ + { + "name": "is", + "description": "The dispute type is exactly this value.", + "type": { + "kind": "ENUM", + "name": "DisputeType", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "in", + "description": "The dispute type is one of these values.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "DisputeType", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentCreditCardDetailsInput", + "description": "Input fields for searching for payments by payment method snapshot credit card details criteria.", + "fields": null, + "inputFields": [ + { + "name": "number", + "description": "The credit card number used for the payment.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchCreditCardNumberInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "expirationDate", + "description": "Find payments based on the expiration date of the credit card used for the payment.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchCreditCardExpirationDateInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "uniqueNumberIdentifier", + "description": "The unique identifier of the credit card number used for the payment.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "cardholderName", + "description": "The card holder name of the credit card number used for the payment.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "brandCode", + "description": "The brand code of the credit card number used for the payment.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchCreditCardBrandCodeInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentCustomerInput", + "description": "Input fields for searching payments by customer.", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": "Find payments with a given customer ID.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "firstName", + "description": "Find payments with a given first name.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "lastName", + "description": "Find payments with a given last name.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "company", + "description": "Find payments with a given customer company.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "email", + "description": "Find payments with a customer email.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentMethodSnapshotTypeInput", + "description": "Input fields for searching transactions by payment method snapshot type.", + "fields": null, + "inputFields": [ + { + "name": "is", + "description": "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.", + "type": { + "kind": "ENUM", + "name": "PaymentMethodSnapshotSearchType", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "in", + "description": "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.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "PaymentMethodSnapshotSearchType", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentPayPalDetailsInput", + "description": "Input fields for searching for payments by payment method snapshot PayPal details criteria.", + "fields": null, + "inputFields": [ + { + "name": "email", + "description": "\"The email address of the PayPal payer.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentPaymentMethodInput", + "description": "Input fields for searching for payments by payment method criteria.", + "fields": null, + "inputFields": [ + { + "name": "paymentMethodId", + "description": "The ID of the vaulted payment method used for the payment.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodSnapshot", + "description": "The snapshot of the payment method at the time of payment creation.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentPaymentMethodSnapshotInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentPaymentMethodSnapshotInput", + "description": "Input fields for searching for payments by payment method snapshot criteria.", + "fields": null, + "inputFields": [ + { + "name": "type", + "description": "Find payments based on the payment instrument type.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentMethodSnapshotTypeInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "creditCardDetails", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentCreditCardDetailsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "payPalDetails", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentPayPalDetailsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "sepaDirectDebitDetails", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentSEPADirectDebitDetailsInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentSEPADirectDebitDetailsInput", + "description": "Input field for searching for payments by payment method snapshot SEPA Direct Debit details criteria.", + "fields": null, + "inputFields": [ + { + "name": "paymentId", + "description": "PayPal V2 OrderId.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentSourceInput", + "description": "Input fields for searching for a transaction or refund created with a given source.", + "fields": null, + "inputFields": [ + { + "name": "in", + "description": "The transaction source is one of these values.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentStatusInput", + "description": "Input fields for searching for a transaction or refund with a given status.", + "fields": null, + "inputFields": [ + { + "name": "in", + "description": "The transaction status is one of these values.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentStatusTransitionInput", + "description": "Payment status transition times.", + "fields": null, + "inputFields": [ + { + "name": "failedAt", + "description": "Find transactions with a given failed at time.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTimestampInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "settledAt", + "description": "Find transactions with a given settled at time.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTimestampInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "submittedForSettlementAt", + "description": "Find transactions with a given submitted for settlement time.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTimestampInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "voidedAt", + "description": "Find transactions with a given voided at time.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTimestampInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentTypeInput", + "description": "Input fields for searching for payments by implementing type.", + "fields": null, + "inputFields": [ + { + "name": "in", + "description": "The payment is a transaction and/or a refund.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "PaymentSearchType", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchRangeInput", + "description": "Input fields for searching for a range.", + "fields": null, + "inputFields": [ + { + "name": "is", + "description": "Field is exactly this value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "greaterThanOrEqualTo", + "description": "Field is greater than or equal to this value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "lessThanOrEqualTo", + "description": "Field is less than or equal to this value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchSoftwareVersionInput", + "description": "Input fields for searching for a version number.", + "fields": null, + "inputFields": [ + { + "name": "is", + "description": "Field is exactly this value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "isNot", + "description": "Field is not this value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "startsWith", + "description": "Field starts with this value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "contains", + "description": "Field contains this value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "description": "Input fields for searching text fields.", + "fields": null, + "inputFields": [ + { + "name": "is", + "description": "Field is exactly this value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "isNot", + "description": "Field is not this value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "startsWith", + "description": "Field starts with this value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "endsWith", + "description": "Field ends with this value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "contains", + "description": "Field contains this value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchTimestampInput", + "description": "Input fields for searching by timestamp. These ranges are precise to the minute; the results of searching for an object created between 12/17/2015 17:00 and 12/17/2015 17:00 (i.e., the same minute) will include objects created at 12/17/2015 17:00:59. If no timezone is provided, it will be assumed to be UTC.", + "fields": null, + "inputFields": [ + { + "name": "greaterThanOrEqualTo", + "description": "Timestamp is greater than or equal to this value.", + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "lessThanOrEqualTo", + "description": "Timestamp is less than or equal to this value.", + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchTransactionSourceInput", + "description": "Input fields for searching for a transaction created with a given source.", + "fields": null, + "inputFields": [ + { + "name": "in", + "description": "The transaction source is one of these values.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchTransactionStatusInput", + "description": "Input fields for searching for a transaction with a given status.", + "fields": null, + "inputFields": [ + { + "name": "is", + "description": "The transaction status is exactly this value.", + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "in", + "description": "The transaction status is one of these values.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchTransactionStatusTransitionInput", + "description": "Transaction status transition times.", + "fields": null, + "inputFields": [ + { + "name": "failedAt", + "description": "Find transactions with a given failed at time.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTimestampInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "settledAt", + "description": "Find transactions with a given settled at time.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTimestampInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "submittedForSettlementAt", + "description": "Find transactions with a given submitted for settlement time.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTimestampInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "voidedAt", + "description": "Find transactions with a given voided at time.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTimestampInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "description": "Input fields for searching for specific values.", + "fields": null, + "inputFields": [ + { + "name": "is", + "description": "Field is exactly this value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "in", + "description": "Field is one of these values.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SearchVerificationStatusInput", + "description": "Input fields for searching for a verification with a given status.", + "fields": null, + "inputFields": [ + { + "name": "is", + "description": "The verification status is exactly this value.", + "type": { + "kind": "ENUM", + "name": "VerificationStatus", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "in", + "description": "The verification status is one of these values.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "VerificationStatus", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SelectedPayPalFinancingOptionDetails", + "description": "Details about a selected financing option by a PayPal buyer.", + "fields": [ + { + "name": "term", + "description": "Total number of payments over which to finance the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "monthlyPayment", + "description": "The amount for each monthly payment.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "discountPercentage", + "description": "The percent discount off the total transaction amount due to the selected financing option.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Percentage", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "discountAmount", + "description": "The amount reduced from the total transaction amount.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SelectedPayPalFinancingOptionInput", + "description": "Input fields indicating a selected financing option by a PayPal buyer.", + "fields": null, + "inputFields": [ + { + "name": "term", + "description": "Total number of payments over which to finance the transaction.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "currencyCode", + "description": "The currency code for the monthly payment and discount amount.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyCodeAlpha", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "monthlyPayment", + "description": "The amount for each monthly payment.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "discountPercentage", + "description": "The percent discount off the total transaction amount due to the selected financing option.", + "type": { + "kind": "SCALAR", + "name": "Percentage", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "discountAmount", + "description": "The amount reduced from the total transaction amount.", + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SettledEvent", + "description": "Accompanying information for a settled transaction.", + "fields": [ + { + "name": "status", + "description": "The new status of the transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timestamp", + "description": "Date and time when the transaction was settled.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "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.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "The source for the transaction change to the new status.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "processorResponse", + "description": "Fields describing the payment processor response.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "TransactionSettlementProcessorResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminal", + "description": "Whether or not this is the final state for the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "settlementBatchId", + "description": "The ID of the settlement batch in which the transaction was processed.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "PaymentStatusEvent", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SettlementConfirmedEvent", + "description": "Accompanying information for a settlement confirmed transaction.", + "fields": [ + { + "name": "status", + "description": "The new status of the transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timestamp", + "description": "Date and time when the transaction became settlement confirmed.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "The amount of the transaction for this status event.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "The source for the transaction change to the new status.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "processorResponse", + "description": "Fields describing the payment processor response to the settlement request.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "TransactionSettlementProcessorResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminal", + "description": "Whether or not this is the final state for the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "PaymentStatusEvent", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SettlementDeclinedEvent", + "description": "Accompanying information for a settlement declined transaction.", + "fields": [ + { + "name": "status", + "description": "The new status of the transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timestamp", + "description": "Date and time when the processor declined to settle this transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "The amount of the transaction for this status event.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "The source for the transaction change to the new status.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "processorResponse", + "description": "Fields describing the payment processor response to the settlement request.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "TransactionSettlementProcessorResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminal", + "description": "Whether or not this is the final state for the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "PaymentStatusEvent", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SettlementPendingEvent", + "description": "Accompanying information for a settlement pending transaction. This typically only occurs for PayPal transactions.", + "fields": [ + { + "name": "status", + "description": "The new status of the transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timestamp", + "description": "Date and time when the transaction became settlement pending.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "The amount of the transaction for this status event.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "The source for the transaction change to the new status.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "processorResponse", + "description": "Fields describing the payment processor response to the settlement request.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "TransactionSettlementProcessorResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminal", + "description": "Whether or not this is the final state for the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "PaymentStatusEvent", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SettlingEvent", + "description": "Accompanying information for a transaction that is settling. This is typically a transient state during which the transaction is being settled with the processor.", + "fields": [ + { + "name": "status", + "description": "The new status of the transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timestamp", + "description": "Date and time when the transaction began settling.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "The amount of the transaction for this status event. This should match the amount submitted for settlement.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "The source for the transaction change to the new status.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminal", + "description": "Whether or not this is the final state for the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "PaymentStatusEvent", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "String", + "description": "Built-in String", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SubmittedForSettlementEvent", + "description": "Accompanying information for a transaction that is submitted for settlement. This status indicates that the transaction is scheduled to be settled.", + "fields": [ + { + "name": "status", + "description": "The new status of the transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timestamp", + "description": "Date and time when the transaction was submitted for settlement.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "The amount that was submitted for settlement. This can differ from the authorized amount, but by default is the same.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "The source for the transaction change to the new status.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminal", + "description": "Whether or not this is the final state for the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "PaymentStatusEvent", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TaxInfoInput", + "description": "Input fields for local payment tax information.", + "fields": null, + "inputFields": [ + { + "name": "identifier", + "description": "The payer's tax identifier value.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "type", + "description": "The payer's tax identifier type.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "TaxInfoType", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "TaxInfoType", + "description": "The type of tax identifier.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "BR_CNPJ", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "BR_CPF", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ThreeDSecureAuthentication", + "description": "Information about the 3D Secure authentication for a payment method.", + "fields": [ + { + "name": "cavv", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "directoryServerTransactionId", + "description": "A unique identifier for the 3D Secure interaction with the card brand directory server.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "eciFlag", + "description": "The electronic commerce indicator.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ECommerceIndicator", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "liabilityShifted", + "description": "A boolean indicating if the card has received liability shift.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "liabilityShiftPossible", + "description": "A boolean indicating if the card is eligible for liability shift.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cardEnrolled", + "description": "Indicates whether the card is enrolled in a 3D Secure program.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ThreeDSecureCardEnrolled", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authenticationStatus", + "description": "The 3D Secure authentication status of the card.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "version", + "description": "The version of the 3D Secure protocol used during authentication.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "xId", + "description": "A unique identifier for the 3D Secure interaction with the provider.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "threeDSecureServerTransactionId", + "description": "A unique identifier for the 3D Secure interaction with the 3D Secure server.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "acsTransactionId", + "description": "A unique identifier for the 3D Secure interaction with the access control server.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paresStatus", + "description": "Indicates the current status of the 3D Secure authentication from the 3D Secure server for 3D Secure 1.0 authentications.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationStatusIndicator", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionStatus", + "description": "Indicates the current status of the 3D Secure authentication from the 3D Secure server for 3D Secure 2.0 authentications.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationStatusIndicator", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionStatusReason", + "description": "Indicates the reason for the transaction status. This will be null if status is `SUCCESSFUL_AUTHENTICATION`.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationAcsWindowSize", + "description": "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.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "FULL_PAGE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "W250_H400", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "W390_H400", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "W500_H600", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "W600_H400", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationDeliveryTimeframe", + "description": "Indicates the delivery timeframe if applicable.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ELECTRONIC_DELIVERY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OVERNIGHT_SHIPPING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SAME_DAY_SHIPPING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TWO_OR_MORE_DAY_SHIPPING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecureAuthenticationInput", + "description": "Input fields for passing auxillary 3D Secure information manually, as opposed to tokenized on a single-use payment method ID.", + "fields": null, + "inputFields": [ + { + "name": "authenticationId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "passThrough", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecurePassThroughInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationMerchantProductCode", + "description": "Merchant product code.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ACCOMMODATION_RETAIL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AIRLINE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CAR_RENTAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CASH_DISPENSING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DIGITAL_GOODS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FUEL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GENERAL_RETAIL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LUXURY_RETAIL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OTHER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RESTAURANT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SERVICES", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TRAVEL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationShippingType", + "description": "Indicates the shipping type for the transaction.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "DIGITAL_GOODS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OTHER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SHIP_TO_ADDRESS_ON_FILE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SHIP_TO_BILLING_ADDRESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SHIP_TO_OTHER_ADDRESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SHIP_TO_STORE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TICKETS_NOT_SHIPPED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationStatus", + "description": "The 3D Secure authentication status of the card.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "AUTHENTICATE_ATTEMPT_SUCCESSFUL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AUTHENTICATE_ERROR", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AUTHENTICATE_FAILED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AUTHENTICATE_FAILED_ACS_ERROR", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AUTHENTICATE_FRICTIONLESS_FAILED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AUTHENTICATE_REJECTED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AUTHENTICATE_SIGNATURE_VERIFICATION_FAILED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AUTHENTICATE_SUCCESSFUL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AUTHENTICATE_SUCCESSFUL_ISSUER_NOT_PARTICIPATING", + "description": null, + "isDeprecated": true, + "deprecationReason": "No longer applicable." + }, + { + "name": "AUTHENTICATE_UNABLE_TO_AUTHENTICATE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AUTHENTICATION_BYPASSED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AUTHENTICATION_UNAVAILABLE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CHALLENGE_REQUIRED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DATA_ONLY_SUCCESSFUL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LOOKUP_BYPASSED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LOOKUP_CARD_ERROR", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LOOKUP_ENROLLED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LOOKUP_ERROR", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LOOKUP_FAILED_ACS_ERROR", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LOOKUP_NOT_ENROLLED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LOOKUP_SERVER_ERROR", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNSUPPORTED_ACCOUNT_TYPE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNSUPPORTED_CARD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNSUPPORTED_THREE_D_SECURE_VERSION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationStatusIndicator", + "description": "Indicates the current status of the 3D Secure authentication.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "AUTHENTICATION_REJECTED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CHALLENGE_REQUIRED_DECOUPLED_AUTHENTICATION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CHALLENGE_REQUIRED_FOR_AUTHENTICATION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FAILED_AUTHENTICATION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INFORMATIONAL_CHALLENGE_PREFERENCE_ACKNOWLEDGED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SUCCESSFUL_ATTEMPTS_TRANSACTION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SUCCESSFUL_AUTHENTICATION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNABLE_TO_COMPLETE_AUTHENTICATION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationTransactionType", + "description": "Indicates the type of transaction for 3D Secure authentication.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ADD_CARD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CARDHOLDER_VERIFICATION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INSTALLMENT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MAINTAIN_CARD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PAYMENT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RECURRING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ThreeDSecureCardEnrolled", + "description": "Indicates whether the card is enrolled in a 3D Secure program.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "BYPASS", + "description": "Authentication has been bypassed. This status will be returned if you set up bypass rules with CardinalCommerce, and they are triggered.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ERROR", + "description": "There was an error in determining whether the card is enrolled in a 3D Secure program.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NO", + "description": "The card is not enrolled.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNAVAILABLE", + "description": "The DS (directory server) or ACS (access control server) is not available for authentication at the time of the request.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "YES", + "description": "The card is enrolled.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ThreeDSecureCavvAlgorithm", + "description": "A 3D Secure CAVV algorithm. Possible Values: 2 - CVV with ATN, 3 - Mastercard SPA algorithm.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ThreeDSecureConfiguration", + "description": "Configuration for 3D Secure.", + "fields": [ + { + "name": "cardinalAuthenticationJWT", + "description": "Authentication information for initializing Cardinal's songbird.js library.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ThreeDSecureDetails", + "description": "3D Secure information for the payment method.", + "fields": [ + { + "name": "authentication", + "description": "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.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "ThreeDSecureAuthentication", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authenticationInsight", + "description": "Information about the [customer authentication regulation environment](https://developers.braintreepayments.com/guides/3d-secure/migration/javascript/v3#authentication-insight) 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.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AuthenticationInsightInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "AuthenticationInsight", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cavv", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use ThreeDSecureDetails.authentication.cavv instead." + }, + { + "name": "directoryServerTransactionId", + "description": "A unique identifier for the 3D Secure interaction with the card brand directory server.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use ThreeDSecureDetails.authentication.directoryServerTransactionId instead." + }, + { + "name": "eciFlag", + "description": "The electronic commerce indicator.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ECommerceIndicator", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use ThreeDSecureDetails.authentication.eciFlag instead." + }, + { + "name": "liabilityShifted", + "description": "A boolean indicating if the card has received liability shift.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use ThreeDSecureDetails.authentication.liabilityShifted instead." + }, + { + "name": "liabilityShiftPossible", + "description": "A boolean indicating if the card is eligible for liability shift.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use ThreeDSecureDetails.authentication.liabilityShiftPossible instead." + }, + { + "name": "cardEnrolled", + "description": "Indicates whether the card is enrolled in a 3D Secure program.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ThreeDSecureCardEnrolled", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use ThreeDSecureDetails.authentication.cardEnrolled instead." + }, + { + "name": "authenticationStatus", + "description": "The 3D Secure authentication status of the card.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationStatus", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use ThreeDSecureDetails.authentication.authenticationStatus instead." + }, + { + "name": "version", + "description": "The version of the 3D Secure protocol used during authentication.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use ThreeDSecureDetails.authentication.version instead." + }, + { + "name": "xId", + "description": "A unique identifier for the 3D Secure interaction with the provider.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use ThreeDSecureDetails.authentication.xId instead." + }, + { + "name": "threeDSecureServerTransactionId", + "description": "A unique identifier for the 3D Secure interaction with the 3D Secure server.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use ThreeDSecureDetails.authentication.threeDSecureServerTransactionId instead." + }, + { + "name": "acsTransactionId", + "description": "A unique identifier for the 3D Secure interaction with the access control server.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use ThreeDSecureDetails.authentication.acsTransactionId instead." + }, + { + "name": "paresStatus", + "description": "Indicates the current status of the 3D Secure authentication from the 3D Secure server for 3D Secure 1.0 authentications.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationStatusIndicator", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use ThreeDSecureDetails.authentication.paresStatus instead." + }, + { + "name": "transactionStatus", + "description": "Indicates the current status of the 3D Secure authentication from the 3D Secure server for 3D Secure 2.0 authentications.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationStatusIndicator", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use ThreeDSecureDetails.authentication.transactionStatus instead." + }, + { + "name": "transactionStatusReason", + "description": "Indicates the reason for the transaction status. This will be null if status is `SUCCESSFUL_AUTHENTICATION`.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use ThreeDSecureDetails.authentication.transactionStatusReason instead." + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecureLookupBillingAddressInput", + "description": " The billing address of the cardholder sent with 3D Secure Lookup requests.", + "fields": null, + "inputFields": [ + { + "name": "givenName", + "description": "The given (first) name associated with the billing address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "surname", + "description": "The surname (last name) associated with the billing address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "phoneNumber", + "description": "The billing phone number used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "line1", + "description": "Line 1 of the billing address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "line2", + "description": "Line 2 of the billing address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "line3", + "description": "Line 3 of the billing address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "locality", + "description": "City or locality of billing address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "region", + "description": "State or region of billing address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "countryCode", + "description": "Country code of billing address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "postalCode", + "description": "Postal code of billing address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecureLookupCardholderInformationInput", + "description": "Additional information about the cardholder when authenticating through 3D Secure.", + "fields": null, + "inputFields": [ + { + "name": "billingAddress", + "description": "The billing address of the cardholder.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecureLookupBillingAddressInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecureLookupClientInformationInput", + "description": "Information about the client side lookup process.", + "fields": null, + "inputFields": [ + { + "name": "sdkVersion", + "description": "Version of the Braintree client-side SDK being used.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "requestedThreeDSecureVersion", + "description": "Version of 3D Secure requested when performing the lookup.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "issuerDeviceDataCollectionMillisecondsElapsed", + "description": "Number of milliseconds taken for the issuer to collect device data.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "issuerDeviceDataCollectionResult", + "description": "Whether device data collection by the issuer succeeded.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "threeDSecureServerDeviceDataCollectionMillisecondsElapsed", + "description": "Number of milliseconds taken for the 3D Secure server to collect device data.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ThreeDSecureLookupData", + "description": "Data fields containing information from the MPI provider about the 3D Secure Lookup result.", + "fields": [ + { + "name": "acsUrl", + "description": "The URL to use to issue a challenge to the cardholder for 3D Secure authentication.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authenticationId", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "version", + "description": "The version of the 3D Secure protocol used in the authentication.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pareq", + "description": "The \"PAReq\" or \"Payment Authentication Request\" is the encoded request message used to initiate authentication.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "md", + "description": "The unique 3D Secure identifier assigned by Braintree to track the 3D Secure call as it progresses.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "termUrl", + "description": "A fully qualified URL that the customer will be redirected to once the authentication completes.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionId", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecureLookupShippingAddressInput", + "description": " The shipping address of the transaction to be sent with 3D Secure Lookup requests.", + "fields": null, + "inputFields": [ + { + "name": "givenName", + "description": "The given (first) name associated with the shipping address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "surname", + "description": "The surname (last name) associated with the shipping address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "phoneNumber", + "description": "The shipping phone number used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "line1", + "description": "Line 1 of the shipping address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "line2", + "description": "Line 2 of the shipping address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "line3", + "description": "Line 3 of the shipping address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "locality", + "description": "City or locality of shipping address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "region", + "description": "State or region of shipping address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "countryCode", + "description": "Country code of shipping address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "postalCode", + "description": "Postal code of shipping address used for verification.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ThreeDSecureLookupShippingMethod", + "description": "Indicates the shipping method chosen for the transaction in the 3D Secure lookup.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ELECTRONIC_DELIVERY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GROUND", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OVERNIGHT_EXPEDITED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIORITY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SAME_DAY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SHIP_TO_STORE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecureLookupTransactionInformationInput", + "description": "Additional information about the transaction when authenticating through 3D Secure.", + "fields": null, + "inputFields": [ + { + "name": "email", + "description": "The email associated with the transaction.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "shippingMethod", + "description": "Indicates the shipping method chosen for the transaction in the 3D Secure lookup.", + "type": { + "kind": "ENUM", + "name": "ThreeDSecureLookupShippingMethod", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "phoneNumber", + "description": "The phone number associated with the transaction.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "shippingAddress", + "description": "The shipping address for the transaction.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecureLookupShippingAddressInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "workPhoneNumber", + "description": "The work phone number associated with the transaction.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transactionType", + "description": "Indicates the type of transaction.", + "type": { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationTransactionType", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "deliveryTimeframe", + "description": "Indicates the delivery timeframe if applicable.", + "type": { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationDeliveryTimeframe", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "deliveryEmail", + "description": "For electronic delivery, email address to which the product was delivered.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "shippingType", + "description": "Indicates shipping type chosen for the transaction.", + "type": { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationShippingType", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "productCode", + "description": "Merchant product code.", + "type": { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationMerchantProductCode", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "reorderIndicator", + "description": "Indicates whether the cardholder is reordering merchandise purchased in a previous order.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "preorderIndicator", + "description": "Indicates whether cardholder is placing an order with a future availability or release date.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "preorderDate", + "description": "Expected date that a pre-ordered purchase will be available.", + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "giftCardAmount", + "description": "The purchase amount total for prepaid gift cards.", + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "giftCardCurrencyCode", + "description": "ISO 4217 currency code for the gift card purchased.", + "type": { + "kind": "SCALAR", + "name": "CurrencyCodeAlpha", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "giftCardCount", + "description": "Total count of individual prepaid gift cards purchased.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "accountCreatedDuringTransaction", + "description": "Indicates whether the cardholder created the account during this transaction.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "accountCreateDate", + "description": "Date the cardholder opened the account.", + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "accountChangedDuringTransaction", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "accountChangeDate", + "description": "Date the cardholder's account was last changed. This includes changes to the billing or shipping address, new payment accounts or new users added.", + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "accountPasswordChangedDuringTransaction", + "description": "Indicates whether the cardholder changed or reset the password on the account during this transaction.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "accountPasswordChangeDate", + "description": "Date the cardholder changed or reset the password on the account.", + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "firstUseOfShippingAddress", + "description": "Indicates whether this transaction represents the first use of this shipping address.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "shippingAddressFirstUsageDate", + "description": "Date when the shipping address used for this transaction was first used.", + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transactionCountDay", + "description": "Number of transactions (successful or incomplete) for this cardholder account within the last 24 hours.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transactionCountYear", + "description": "Number of transactions (successful or incomplete) for this cardholder account within the last year.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "addCardAttempts", + "description": "Number of attempts that have been made to add a card to this account in the last 24 hours.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "accountPurchases", + "description": "Number of purchases with this cardholder account during the previous six months.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "suspiciousActivityObserved", + "description": "Indicates whether the merchant experienced suspicious activity (including previous fraud) on the account.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "accountNameMatchesShippingName", + "description": "Indicates if the cardholder name on the account is identical to the shipping name used for the transaction.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodAddedDuringTransaction", + "description": "Indicates whether the payment method was added to the cardholder account during this transaction.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodAddedToAccountDate", + "description": "Date the payment method was added to the cardholder account.", + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "acsWindowSize", + "description": "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.", + "type": { + "kind": "ENUM", + "name": "ThreeDSecureAuthenticationAcsWindowSize", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "sdkMaxTimeout", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "billingAddressMatchesShippingAddress", + "description": "Indicates whether cardholder billing and shipping addresses match.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "accountId", + "description": "Additional cardholder account information.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "ipAddress", + "description": "The IP address of the cardholder. Both IPv4 and IPv6 formats are supported.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "orderDescription", + "description": "Brief Description of items purchased.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "taxAmount", + "description": "Tax amount.", + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "userAgent", + "description": "The exact content of the HTTP user agent header.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "installment", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "purchaseDate", + "description": "Datetime of original purchase.", + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "recurringEnd", + "description": "The date after which no further recurring authorizations should be performed.", + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "recurringFrequency", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecurePassThroughInput", + "description": "Results of a merchant-performed 3D Secure authentication.", + "fields": null, + "inputFields": [ + { + "name": "eciFlag", + "description": "The value of the electronic commerce indicator (ECI) flag, which indicates the outcome of the 3D Secure authentication.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ECommerceIndicator", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "cavv", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "xId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "threeDSecureServerTransactionId", + "description": "3D Secure server transaction identifier resulting from 3D Secure authentication.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "version", + "description": "The version of 3D Secure authentication used for the transaction. Required on Visa and Mastercard authentications.", + "type": { + "kind": "SCALAR", + "name": "ThreeDSecureVersion", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "authenticationResponse", + "description": "The 3D Secure authentication response status code.", + "type": { + "kind": "SCALAR", + "name": "ThreeDSecureStatusCode", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "directoryServerResponse", + "description": "The 3D Secure directory server response.", + "type": { + "kind": "SCALAR", + "name": "ThreeDSecureStatusCode", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "cavvAlgorithm", + "description": "The algorithm used to generate the CAVV value. This is only returned for Mastercard SecureCode transactions (3DS 1.0).", + "type": { + "kind": "SCALAR", + "name": "ThreeDSecureCavvAlgorithm", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "directoryServerTransactionId", + "description": "A unique identifier for the 3D Secure 2 interaction with the card brand directory server. This field must be supplied for Mastercard Identity Check.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ThreeDSecureStatusCode", + "description": "A raw 3D Secure PARes or VARes response code (e.g. 'Y').", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ThreeDSecureVersion", + "description": "A 3D Secure authentication version. Must be composed of digits separated by periods (e.g. '1.0.2').", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Timestamp", + "description": "An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Times) timestamp with microsecond precision, in UTC.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TokenizeCreditCardInput", + "description": "Top-level input fields for tokenizing a credit card.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "creditCard", + "description": "Input fields for a credit card.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreditCardInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "options", + "description": "Credit card tokenization options.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenizeCreditCardOptionsInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TokenizeCreditCardOptionsInput", + "description": "Credit card tokenization options.", + "fields": null, + "inputFields": [ + { + "name": "validate", + "description": "Whether to run validations on credit card fields. Validations are not run by default.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TokenizeCreditCardPayload", + "description": "Top-level fields returned from a tokenized credit card.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": "A one-time-use reference to tokenized sensitive information.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `paymentMethod.id` instead." + }, + { + "name": "creditCard", + "description": "Details about the tokenized card.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "CreditCardDetails", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `paymentMethod.details` instead." + }, + { + "name": "singleUseToken", + "description": "A single-use payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `paymentMethod` instead." + }, + { + "name": "paymentMethod", + "description": "A single-use payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authenticationInsight", + "description": "Information about the [customer authentication regulation environment](https://developers.braintreepayments.com/guides/3d-secure/migration/javascript/v3#authentication-insight) 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.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AuthenticationInsightInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "AuthenticationInsight", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use paymentMethod.details.threeDSecure.authenticationInsight instead." + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TokenizeCustomActionsPaymentMethodInput", + "description": "Top-level input fields for tokenizing Custom Actions.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customActionsPaymentMethod", + "description": "Input fields for a Custom Actions payment method.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CustomActionsPaymentMethodInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TokenizeCustomActionsPaymentMethodPayload", + "description": "Top-level fields returned from tokenizing a CustomActionsPaymentMethod.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethod", + "description": "A single-use payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TokenizeCvvInput", + "description": "Top-level input fields for tokenizing a CVV, otherwise known as CSC or CVC.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "cvv", + "description": "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.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CVV", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TokenizeCvvPayload", + "description": "Top-level fields returned from a tokenized CVV.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenizedCvv", + "description": "A single-use tokenized CVV.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "TokenizedCvv", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "singleUseToken", + "description": "A single-use payment method representing just a CVV.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "This mutation does not create a full PaymentMethod. Use `tokenizedCvv` instead." + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TokenizeNetworkTokenInput", + "description": "Top-level input field for tokenizing a network token.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "networkToken", + "description": "Input fields for a network token object.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NetworkTokenInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TokenizeNetworkTokenPayload", + "description": "Top-level fields returned from a tokenized Network Token.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethod", + "description": "A single-use payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TokenizePayPalBillingAgreementInput", + "description": "Top-level input fields for tokenizing a PayPal account.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "billingAgreement", + "description": "Input fields for a PayPal Billing Agreement.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PayPalBillingAgreementInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TokenizePayPalBillingAgreementPayload", + "description": "Top-level fields returned from a tokenized PayPal account.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethod", + "description": "A single-use payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TokenizePayPalOneTimePaymentInput", + "description": "Top-level input fields for tokenizing a PayPal account.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "Braintree merchant account ID associated with the PayPal account to be used for the One-Time payment tokenization.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paypalOneTimePayment", + "description": "Input fields for a PayPal One-Time Payment.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PayPalOneTimePaymentInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TokenizePayPalOneTimePaymentPayload", + "description": "Top-level fields returned from a tokenized PayPal account.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethod", + "description": "A single-use payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TokenizeSamsungPayCardInput", + "description": "Top-level input field for tokenizing a Samsung Pay card.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "samsungPayCard", + "description": "Input fields for a Samsung Pay card.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SamsungPayCardInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TokenizeSamsungPayCardPayload", + "description": "Top-level fields returned from a tokenized Samsung Pay card.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "singleUseToken", + "description": "A one-time-use reference to tokenized sensitive information.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `paymentMethod` instead." + }, + { + "name": "paymentMethod", + "description": "A single-use payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TokenizeUsBankAccountInput", + "description": "Top-level input fields for tokenizing a US bank account.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "usBankAccount", + "description": "Input fields for a US bank account object.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UsBankAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TokenizeUsBankAccountPayload", + "description": "Top-level fields returned from a tokenized US bank account.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethod", + "description": "A single-use payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TokenizeUsBankLoginInput", + "description": "Top-level input fields for tokenizing a US bank login.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "usBankLogin", + "description": "Input fields for a US bank login.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UsBankLoginInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TokenizedCvv", + "description": "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.", + "fields": [ + { + "name": "id", + "description": "Unique identifier for the tokenized CVV.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Transaction", + "description": "A charge on a payment method.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "legacyId", + "description": "Legacy unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createdAt", + "description": "Date and time when the transaction was created.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethodSnapshot", + "description": "Snapshot of payment method details used to create the transaction, preserved at the time the transaction was created. This will always be present.", + "args": [], + "type": { + "kind": "UNION", + "name": "PaymentMethodSnapshot", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethod", + "description": "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.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "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`.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "initialRequestedAuthorizationAmount", + "description": "The initial requested authorization amount for this transaction.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "customFields", + "description": "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).", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CustomField", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merchantId", + "description": "The ID of the merchant that processed this transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merchantAccountId", + "description": "The ID of the merchant account that processed this transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merchantName", + "description": "The display name of the merchant that processed this transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merchantAddress", + "description": "The address of the merchant that processed this transaction.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Address", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "orderId", + "description": "The order ID for this transaction. For PayPal transactions, the PayPal Invoice ID.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "purchaseOrderNumber", + "description": "A purchase order identification value you associate with this transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The current status of this transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "processorResponse", + "description": "Fields describing the payment processor response.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "TransactionAuthorizationProcessorResponse", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use relevant events in `statusHistory` instead." + }, + { + "name": "riskData", + "description": "Risk data evaluated for this transaction.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "RiskData", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "descriptor", + "description": "Fields used to define what will appear on customers' credit card statements for a specific purchase.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "TransactionDescriptor", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "statusHistory", + "description": "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.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "PaymentStatusEvent", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "channel", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "How the transaction was created.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "customer", + "description": "Customer associated with the transaction, if applicable.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Customer", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "shipping", + "description": "Shipping information.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "TransactionShipping", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tax", + "description": "Tax information.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "TransactionTaxInformation", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "scaExemptionRequested", + "description": "The type of Strong Customer Authentication Exemption that was requested for this transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ScaExemptionType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "discountAmount", + "description": "Discount amount that was included in the total transaction amount.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lineItems", + "description": "Line items for this transaction.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TransactionLineItem", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "refunds", + "description": "The list of refunds issued against this transaction.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Refund", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "partialCaptureDetails", + "description": "For transactions created or captured using the `partialCaptureTransaction` mutation. This field links a given transaction to its original authorization or all its partial captures.", + "args": [], + "type": { + "kind": "UNION", + "name": "PartialCaptureDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "disputes", + "description": "A collection of disputes associated with the transaction.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Dispute", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "facilitatorDetails", + "description": "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.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "FacilitatorDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "disbursementDetails", + "description": "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.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "DisbursementDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "billingAddress", + "description": "The billing address associated with the transaction.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Address", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorizationAdjustments", + "description": "A collection of AuthorizationAdjustments associated with the transaction.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AuthorizationAdjustment", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "retried", + "description": "Whether or not the transaction was automatically retried by Braintree's internal systems.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "installmentDetails", + "description": "Installment details associated with the transaction.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "TransactionInstallmentDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentInitiatedAt", + "description": "The transaction date and time as reported by the in-store payment terminal.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "Payment", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TransactionAuthorizationAdjustmentProcessorResponse", + "description": "Record of processor response data received in response to authorization adjustment requests.", + "fields": [ + { + "name": "legacyCode", + "description": "The [processor response code](https://developers.braintreepayments.com/reference/general/processor-responses/authorization-responses) indicating the result of attempting the adjustment.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "message", + "description": "The text explanation of the processor response code.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "declineType", + "description": "Whether or not the decline is the result of a temporary issue. Only present if adjustment is declined.", + "args": [], + "type": { + "kind": "ENUM", + "name": "ProcessorDeclineType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TransactionAuthorizationProcessorResponse", + "description": "Detailed response information from the processor when attempting to authorize a transaction.", + "fields": [ + { + "name": "legacyCode", + "description": "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).", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "message", + "description": "The text explanation of the processor response legacyCode.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cvvResponse", + "description": "The processing bank's response to the provided CVV.", + "args": [], + "type": { + "kind": "ENUM", + "name": "AvsCvvResponseCode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "avsPostalCodeResponse", + "description": "The processing bank's response to the provided billing postal or zip code.", + "args": [], + "type": { + "kind": "ENUM", + "name": "AvsCvvResponseCode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "avsStreetAddressResponse", + "description": "The processing bank's response to the provided billing street address.", + "args": [], + "type": { + "kind": "ENUM", + "name": "AvsCvvResponseCode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorizationId", + "description": "The processor's unique ID or \"code\" for the authorization.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "additionalInformation", + "description": "If present, any additional information recieved from the processor. May provide further insight into the `legacyCode`.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "retrievalReferenceNumber", + "description": "The processor's reference number for the authorization.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "emvData", + "description": "Response EMV data provided by the processor if this was an EMV transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TransactionConnection", + "description": "A paginated list of transactions.", + "fields": [ + { + "name": "edges", + "description": "A list of transactions.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TransactionConnectionEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information about the page of transactions contained in `edges`.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TransactionConnectionEdge", + "description": "A transaction within a TransactionConnection.", + "fields": [ + { + "name": "cursor", + "description": "This transaction's location within the TransactionConnection. Used for requesting additional pages.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The transaction.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TransactionCustomerDetailsInput", + "description": "Customer details to be stored on the transaction itself, if the transaction is not associated with a customer. Used for fraud detection purposes.", + "fields": null, + "inputFields": [ + { + "name": "email", + "description": "Email address for the customer.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "phoneNumber", + "description": "Phone number for the customer.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TransactionDescriptor", + "description": "Fields used to define what will appear on a customer's bank statement for a specific purchase.", + "fields": [ + { + "name": "name", + "description": "The value in the business name field of a customer's statement.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "phone", + "description": "The value in the phone number field of a customer's statement.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": "The value in the URL/web address field of a customer's statement.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TransactionDescriptorInput", + "description": "Fields used to define what will appear on a customer's bank statement for a specific purchase.", + "fields": null, + "inputFields": [ + { + "name": "name", + "description": "The value in the business name field of a customer's statement.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "phone", + "description": "The value in the phone number field of a customer's statement.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "url", + "description": "The value in the URL/web address field of a customer's statement.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TransactionExternalVaultOptionsInput", + "description": "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.", + "fields": null, + "inputFields": [ + { + "name": "status", + "description": "The credit card's assocation with an external vault.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "ExternalVaultStatus", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "verifyingNetworkTransactionId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TransactionInput", + "description": "Input fields for creating a transaction.", + "fields": null, + "inputFields": [ + { + "name": "amount", + "description": "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.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "orderId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "exchangeRateQuoteId", + "description": "ID of exchange rate quote to be used for the transaction.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "purchaseOrderNumber", + "description": "A purchase order identification value you associate with this transaction.\n\n*Required for Level 2 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "riskData", + "description": "Customer device information, which is sent directly to supported processors for fraud analysis.", + "type": { + "kind": "INPUT_OBJECT", + "name": "RiskDataInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customFields", + "description": "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.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CustomFieldInput", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "descriptor", + "description": "Fields used to define what will appear on a customer's bank statement for a specific purchase.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TransactionDescriptorInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "recurring", + "description": "Deprecated: This field is included for supporting legacy clients. Please use `paymentInitiator` instead.", + "type": { + "kind": "ENUM", + "name": "RecurringType", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentInitiator", + "description": "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.", + "type": { + "kind": "ENUM", + "name": "PaymentInitiator", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "channel", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customerId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "shipping", + "description": "Shipping information.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TransactionShippingInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "tax", + "description": "Tax information about the transaction.\n\n*Required for Level 2 processing*.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TransactionTaxInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "discountAmount", + "description": "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.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "lineItems", + "description": "Line items for this transaction. Up to 249 line items may be specified.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TransactionLineItemInput", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "threeDSecurePassThrough", + "description": "Deprecated: This field is included for supporting legacy clients. This field is specific to credit card payment methods only, and cannot be applied to transactions with other payment method types. If you need to pass this field, please use `authorizeCreditCard` or `chargeCreditCard`. See the `CreditCardTransactionOptionsInput` type for details.\n\nResults 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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecurePassThroughInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "vaultPaymentMethodAfterTransacting", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "VaultPaymentMethodAfterTransactingInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customerDetails", + "description": "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.\n\nThis 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.\n\nIf `vaultPaymentMethodAfterTransacting` is also passed, these values will be used when creating a new customer for the newly-vaulted payment method.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TransactionCustomerDetailsInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TransactionInstallment", + "description": "Transaction Installment information.", + "fields": [ + { + "name": "id", + "description": "Installment ID.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "projectedDisbursementDate", + "description": "The projected date for the funds associated with this installment to be disbursed.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "actualDisbursementDate", + "description": "The date that the funds associated with this installment were actually disbursed.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "Installment amount.The total transaction amount is split equally into each installment.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "adjustments", + "description": "List of adjustments associated with the installment.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TransactionInstallmentAdjustment", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TransactionInstallmentAdjustment", + "description": "Adjustment information.", + "fields": [ + { + "name": "projectedDisbursementDate", + "description": "The projected date for the funds associated with the adjustements to be disbursed.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "actualDisbursementDate", + "description": "The date that the funds associated with this adjustments were actually disbursed.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Date", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "Adjustment amount for the installment.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": "Transaction Installment Adjustment type.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "TransactionInstallmentAdjustmentType", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "TransactionInstallmentAdjustmentType", + "description": "Transaction Installment Adjustment type to indicate the reason for the adjustment.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "DISPUTE", + "description": "Dispute.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "REFUND", + "description": "Refund.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TransactionInstallmentDetails", + "description": "Installment details for the transaction.", + "fields": [ + { + "name": "count", + "description": "The installment count associated with the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "installments", + "description": "List of installments associated with the transaction.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TransactionInstallment", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TransactionLevelFeeReport", + "description": "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.", + "fields": [ + { + "name": "url", + "description": "The URL where you can access the requested report.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TransactionLineItem", + "description": "Data for individual line items on a transaction.", + "fields": [ + { + "name": "name", + "description": "Item name.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "kind", + "description": "Indicates whether the line item is a sale or refund.", + "args": [], + "type": { + "kind": "ENUM", + "name": "TransactionLineItemType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "quantity", + "description": "Number of units of the item purchased.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "unitAmount", + "description": "Per-unit price of the item.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalAmount", + "description": "Total price amount for the line item, i.e. quantity multiplied by unit amount.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "unitTaxAmount", + "description": "Per-unit tax price of the item.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "taxAmount", + "description": "Tax amount for the line item.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "discountAmount", + "description": "The discount amount of the line item.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "unitOfMeasure", + "description": "The unit of measure or the unit of measure code.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "productCode", + "description": "Product or UPC code for the item.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "commodityCode", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": "Item description.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": "The URL to product information.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "itemType", + "description": "The type of the line item, i.e., physical, digital etc.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "imageUrl", + "description": "URL to an image that represents the product. Max 1024 characters.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TransactionLineItemInput", + "description": "Data for individual line items on a transaction.", + "fields": null, + "inputFields": [ + { + "name": "name", + "description": "Item name. Maximum 35 characters, or 127 characters for PayPal transactions.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "kind", + "description": "Indicates whether the line item is a sale or refund.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "TransactionLineItemType", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "quantity", + "description": "Number of units of the item purchased. Can include up to 4 decimal places. This value can't be negative or zero.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "unitAmount", + "description": "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.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "totalAmount", + "description": "Total price amount for the line item: quantity multiplied by unitAmount. Can include up to 2 decimal places.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "unitTaxAmount", + "description": "Per-unit tax price of the item. Can include up to 2 decimal places. This value can't be negative or zero.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "taxAmount", + "description": "Tax amount for the line item. Can include up to 2 decimal places. This value can't be negative.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "discountAmount", + "description": "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.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "unitOfMeasure", + "description": "The unit of measure or the unit of measure code. Maximum 12 characters.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "productCode", + "description": "Product or UPC code for the item. Maximum 12 characters, or 127 characters for PayPal transactions.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "commodityCode", + "description": "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.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "description", + "description": "Item description. Maximum 127 characters.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "url", + "description": "A URL to information about the product.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "itemType", + "description": "The type of the line item, i.e., physical, digital etc.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "imageUrl", + "description": "URL to an image that represents the product. Max 1024 characters.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "TransactionLineItemType", + "description": "Indicates whether a transaction line item is a debit (sale) or credit (refund).", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CREDIT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DEBIT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TransactionPayload", + "description": "Top-level output field from creating a transaction.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transaction", + "description": "The transaction representing the charge on the payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "UNION", + "name": "TransactionReversal", + "description": "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.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "Refund", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + } + ] + }, + { + "kind": "INPUT_OBJECT", + "name": "TransactionSearchInput", + "description": "Input fields for searching for transactions.", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": "Find transactions with an ID or IDs.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "status", + "description": "Find transactions with a given transaction status.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTransactionStatusInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "statusTransition", + "description": "Find transactions based on the given transaction status transition times.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTransactionStatusTransitionInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "createdAt", + "description": "Find transactions based on the time they were created.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTimestampInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "Find transactions for a given amount or currency.", + "type": { + "kind": "INPUT_OBJECT", + "name": "MonetaryAmountSearchInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "orderId", + "description": "Find transactions with a given orderId.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "Find payments processed through a merchant account ID or IDs.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customer", + "description": "Find transactions with a given customer.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentCustomerInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodSnapshotType", + "description": "Find transactions created by charging payment methods of the given type.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentMethodSnapshotTypeInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "disbursementDate", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchDateInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "source", + "description": "Find transactions created with a given transaction source.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTransactionSourceInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "settlementBatchId", + "description": "Find transactions by the batch ID under which the transaction was submitted for settlement.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTextInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethod", + "description": "Find transactions based on information about the payment method used for the transaction.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchPaymentPaymentMethodInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "facilitatorOAuthApplicationClientId", + "description": "Find transactions created by a third party via the Grant API using a given OAuth application client ID.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "userId", + "description": "Find transactions with a user ID or IDs.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "storeId", + "description": "Find transactions by the ID of the store that the transaction was processed in.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TransactionSettlementProcessorResponse", + "description": "Detailed response information from the processor when attempting to settle a transaction.", + "fields": [ + { + "name": "legacyCode", + "description": "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).", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "message", + "description": "The text explanation of the processor response legacyCode.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cvvResponse", + "description": "The processing bank's response to the provided CVV.", + "args": [], + "type": { + "kind": "ENUM", + "name": "AvsCvvResponseCode", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "AVS and CVV checks do not take place when capturing a transaction, only when authorizing. Use the `processorResponse` on an authorization-related `PaymentStatusEvent` instead." + }, + { + "name": "avsPostalCodeResponse", + "description": "The processing bank's response to the provided billing postal or zip code.", + "args": [], + "type": { + "kind": "ENUM", + "name": "AvsCvvResponseCode", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "AVS and CVV checks do not take place when capturing a transaction, only when authorizing. Use the `processorResponse` on an authorization-related `PaymentStatusEvent` instead." + }, + { + "name": "avsStreetAddressResponse", + "description": "The processing bank's response to the provided billing street address.", + "args": [], + "type": { + "kind": "ENUM", + "name": "AvsCvvResponseCode", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "AVS and CVV checks do not take place when capturing a transaction, only when authorizing. Use the `processorResponse` on an authorization-related `PaymentStatusEvent` instead." + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TransactionShipping", + "description": "Information related to shipping a physical product.", + "fields": [ + { + "name": "shippingAddress", + "description": "Shipping address information.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Address", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "shippingAmount", + "description": "The shipping cost of the entire transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "shipsFromPostalCode", + "description": "The postal code of the source shipping location.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TransactionShippingInput", + "description": "Information related to shipping a physical product.", + "fields": null, + "inputFields": [ + { + "name": "shippingAddress", + "description": "Shipping destination address information.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AddressInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "shippingAmount", + "description": "Shipping cost on the entire transaction.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "shipsFromPostalCode", + "description": "The postal code of the source shipping location, in any country's format.\n\n*Required for Level 3 processing*.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TransactionTaxInformation", + "description": "Information related to taxes on the transaction.", + "fields": [ + { + "name": "taxAmount", + "description": "The amount of tax that was included in the total transaction amount.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "taxExempt", + "description": "Whether the transaction should be considered eligible for tax exemption.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TransactionTaxInput", + "description": "Information related to taxes on the transaction.", + "fields": null, + "inputFields": [ + { + "name": "taxAmount", + "description": "Amount of tax that was included in the total transaction amount. Does not add to the total amount the payment method will be charged.\n\n*Required for Level 2 processing* unless `taxExempt` is `true`.", + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "taxExempt", + "description": "Whether the transaction should be considered eligible for tax exemption.\n\n*Required for Level 2 processing*.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "URL", + "description": "A URL string\npattern: [a-zA-Z0-9+-.]:\\\\/\\\\/([-a-zA-Z0-9@:%._\\\\+~#=]{2,256}\\\\.?[a-z]{2,4}\\\\b([-a-zA-Z0-9@:%_\\\\+.~#?&//=]*))?", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UnionPayConfiguration", + "description": "Configuration for UnionPay cards.", + "fields": [ + { + "name": "merchantAccountId", + "description": "The Braintree merchant account ID with UnionPay processing enabled.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "UpdateCreditCardBillingAddressInput", + "description": "Top-level input fields for updating a multi-use credit card to use a new billing address.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "The multi-use credit card for which the billing address will be updated or added.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "billingAddress", + "description": "The new billing address.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AddressInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "ID of the merchant account that will be used when verifying the credit card with the new billing address.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "verification", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CreditCardVerificationOptionsInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UpdateCreditCardBillingAddressPayload", + "description": "Top-level fields returned when updating a multi-use credit card to a new billing address.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "billingAddress", + "description": "The new billing address. Will be `null` if a failed verification prevented the update.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Address", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verification", + "description": "The verification that was run on the payment method prior to updating the billing address, if present.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Verification", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "UpdateCustomerInput", + "description": "Top-level field for updating a customer.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customerId", + "description": "ID of the customer to be updated.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "customer", + "description": "Input fields for the updates to be made on the customer.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CustomerInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UpdateCustomerPayload", + "description": "Top-level fields returned when updating a customer.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "customer", + "description": "Information about the customer that was updated.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Customer", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "UpdateInStoreLocationInput", + "description": "Input fields for updating an in-store location.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "locationId", + "description": "ID of the location to be updated.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "location", + "description": "Input fields to update an in-store location.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "InStoreLocationUpdateInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UpdateInStoreLocationPayload", + "description": "Top-level fields returned when creating an in-store location.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "location", + "description": "The in-store location.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "InStoreLocation", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "UpdateInStoreReaderInput", + "description": "Input fields for updating an in-store reader.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "readerId", + "description": "The ID of the in-store reader to update.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "name", + "description": "The new name for the in-store reader.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "locationId", + "description": "The new location ID for the in-store reader.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "UpdateTransactionAmountInput", + "description": "Top-level input fields for a updating a transaction's amount.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transactionId", + "description": "ID of the transaction on which to perform the adjustment.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "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.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "UpdateTransactionCustomFieldsInput", + "description": "Input for creating or updating custom fields on a transaction.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "transactionId", + "description": "The ID of the transaction to update.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "customFields", + "description": "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.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CustomFieldInput", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UpdateTransactionCustomFieldsPayload", + "description": "Top-level output field from updating custom fields for a specific transaction.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "customFields", + "description": "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).", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CustomField", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UsBankAccountAchMandate", + "description": "Details about the customer's acceptance of ACH terms.", + "fields": [ + { + "name": "acceptanceText", + "description": "The text the customer agreed to when setting up ACH.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "acceptedAt", + "description": "Date and time when the text terms were accepted.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "UsBankAccountBillingAddressInput", + "description": "A billing address for a US bank account. This is a subset of the fields required on `AddressInput`.", + "fields": null, + "inputFields": [ + { + "name": "streetAddress", + "description": "The street address.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "extendedAddress", + "description": "The extended address information—such as an apartment or suite number.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "city", + "description": "The city.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "state", + "description": "The state.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "UsStateCode", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "zipCode", + "description": "The ZIP code.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UsZipCode", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "UsBankAccountBusinessOwnerInput", + "description": "The name of the owner of a business US bank account.", + "fields": null, + "inputFields": [ + { + "name": "businessName", + "description": "The name of the business that owns the account.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UsBankAccountConfiguration", + "description": "Configuration for US bank account processing.", + "fields": [ + { + "name": "routeId", + "description": "The route ID used to process a US bank account payment.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "plaidPublicKey", + "description": "The public key for Plaid to use to log in to a bank account.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UsBankAccountDetails", + "description": "Details about a US bank account.", + "fields": [ + { + "name": "accountholderName", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accountType", + "description": "The bank account type.", + "args": [], + "type": { + "kind": "ENUM", + "name": "UsBankAccountType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ownershipType", + "description": "The ownership type of the account, i.e. business or personal.", + "args": [], + "type": { + "kind": "ENUM", + "name": "UsBankAccountOwnershipType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bankName", + "description": "The name of the bank at which the account exists.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "last4", + "description": "The last four digits of the bank account number.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "routingNumber", + "description": "The routing number of the bank.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verified", + "description": "Whether or not the bank account has been verified and can be transacted on.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "achMandate", + "description": "NACHA-mandated proof of acceptance of ACH terms.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "UsBankAccountAchMandate", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "UsBankAccountIndividualOwnerInput", + "description": "The name of the owner of a personal US bank account.", + "fields": null, + "inputFields": [ + { + "name": "firstName", + "description": "The first name of the accountholder.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "lastName", + "description": "The last name of the accountholder.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "UsBankAccountInput", + "description": "Input fields for a US bank account object.", + "fields": null, + "inputFields": [ + { + "name": "accountNumber", + "description": "The account number of the bank account.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UsBankAccountNumber", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "routingNumber", + "description": "The routing number of the bank that holds the account.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UsBankRoutingNumber", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "accountType", + "description": "The type of account.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "UsBankAccountType", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "businessOwner", + "description": "Information about the business that owns the account. This should only be specified for business accounts.", + "type": { + "kind": "INPUT_OBJECT", + "name": "UsBankAccountBusinessOwnerInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "individualOwner", + "description": "Information about the individual that owns the account. This should only be specified for individual accounts.", + "type": { + "kind": "INPUT_OBJECT", + "name": "UsBankAccountIndividualOwnerInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "billingAddress", + "description": "The billing address of the account.", + "type": { + "kind": "INPUT_OBJECT", + "name": "UsBankAccountBillingAddressInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "achMandate", + "description": "Language used to prove that you have the customer's explicit permission to debit their bank account.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "UsBankAccountNumber", + "description": "An account number containing 1-17 digits.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "UsBankAccountOwnershipType", + "description": "The ownership type of US Bank Account.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "BUSINESS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PERSONAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "UsBankAccountType", + "description": "The type of US Bank Account.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CHECKING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SAVINGS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNKNOWN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UsBankAccountVerificationDetails", + "description": "Information specific to verifications of US bank account payment methods.", + "fields": [ + { + "name": "method", + "description": "Type of US bank account verification performed.", + "args": [], + "type": { + "kind": "ENUM", + "name": "UsBankAccountVerificationMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verificationDeterminedAt", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "UsBankAccountVerificationMethod", + "description": "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).", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "INDEPENDENT_CHECK", + "description": "Verification conducted independently by the merchant, not through Braintree.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MICRO_TRANSFERS", + "description": "Verification by micro-deposits transferred to the bank account, which the customer must then confirm. The most reliable method, but takes additional time.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NETWORK_CHECK", + "description": "Verification via account information. Will complete the verification process immediately, but is not supported by all banks.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TOKENIZED_CHECK", + "description": "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.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "UsBankLoginInput", + "description": "Input fields for a US bank login object.", + "fields": null, + "inputFields": [ + { + "name": "publicToken", + "description": "The public token returned from the bank login.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "accountId", + "description": "The login provider account ID used for the bank login.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "accountType", + "description": "The type of account.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "UsBankAccountType", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "businessOwner", + "description": "Information about the business that owns the account. This should only be specified for business accounts.", + "type": { + "kind": "INPUT_OBJECT", + "name": "UsBankAccountBusinessOwnerInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "individualOwner", + "description": "Information about the individual that owns the account. This should only be specified for individual accounts.", + "type": { + "kind": "INPUT_OBJECT", + "name": "UsBankAccountIndividualOwnerInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "billingAddress", + "description": "The billing address of the account.", + "type": { + "kind": "INPUT_OBJECT", + "name": "UsBankAccountBillingAddressInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "achMandate", + "description": "Language used to prove that you have the customer's explicit permission to debit their bank account.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "UsBankRoutingNumber", + "description": "A routing number containing 8 or 9 digits.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "UsStateCode", + "description": "A two-letter code representing a US state or territory.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "AK", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AR", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AZ", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CA", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CO", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DC", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GA", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GU", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "HI", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "IA", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ID", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "IL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "IN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "KS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "KY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LA", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MA", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ME", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MI", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MO", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MP", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NC", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ND", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NH", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NJ", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NM", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NV", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OH", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OK", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OR", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PA", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PR", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RI", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SC", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SD", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "TX", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UM", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VA", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VI", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VT", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WA", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WI", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WV", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WY", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "UsZipCode", + "description": "A US ZIP code. Supports DDDDD and DDDDD-DDDD formats.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "User", + "description": "Details about the user.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "email", + "description": "Email address.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "Current status.", + "args": [], + "type": { + "kind": "ENUM", + "name": "UserStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "Full name.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "roles", + "description": "Associated roles.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Role", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "UserStatus", + "description": "The status of the user.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ACTIVE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DELETED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PASSIVE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PENDING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SUSPENDED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VaultCreditCardExternalVaultOptionsInput", + "description": "Options used to indicate when a credit card is externally vaulted.", + "fields": null, + "inputFields": [ + { + "name": "verifyingNetworkTransactionId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VaultCreditCardInput", + "description": "Top-level input field for vaulting a credit card so it can be used multiple times.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "ID of an existing single-use credit card payment method to be vaulted.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "verification", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "VaultCreditCardVerificationOptionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "externalVault", + "description": "Options used to indicate when a credit card is externally vaulted.", + "type": { + "kind": "INPUT_OBJECT", + "name": "VaultCreditCardExternalVaultOptionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customerId", + "description": "ID of the customer to associate the resulting multi-use payment method with.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "accountType", + "description": "The type of account to be used when verifying a combo card.", + "type": { + "kind": "ENUM", + "name": "CardAccountType", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "billingAddress", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AddressInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "threeDSecurePassThrough", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecurePassThroughInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "riskData", + "description": "Customer device information, which is sent directly to supported processors for fraud analysis.", + "type": { + "kind": "INPUT_OBJECT", + "name": "RiskDataInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VaultCreditCardVerificationOptionsInput", + "description": "Input fields that specify options for verifying the vaulted credit card.", + "fields": null, + "inputFields": [ + { + "name": "merchantAccountId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "skip", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "The amount to use to verify the credit card.", + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "fraudTools", + "description": "Control which fraud tools will be applied to this transaction. Fraud tools cannot be retroactively applied to a transaction if skipped.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CreditCardFraudToolsOptionsInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VaultInStorePaymentMethodAfterTransactingInput", + "description": " Specifies behavior for vaulting a single-use payment method for an in-store transaction.", + "fields": null, + "inputFields": [ + { + "name": "when", + "description": "Specifies the criteria which must be met to vault this payment method.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "VaultPaymentMethodCriteria", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "qrcOverride", + "description": "Vaulting behavior override for QR code payments.", + "type": { + "kind": "ENUM", + "name": "VaultQRCOverride", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VaultLimitedUsePayPalAccountOptionsInput", + "description": "Input fields that provide information about the resulting PayPal account.", + "fields": null, + "inputFields": [ + { + "name": "amount", + "description": "The total amount of the order. This will be the limit to how much may be captured on the resulting payment method.", + "type": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customField", + "description": "Variable passed directly to PayPal for your own tracking purposes. Customers do not see this value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "description", + "description": "Description of the transaction that is displayed to customers in PayPal email receipts.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "orderId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "shippingAddress", + "description": "Shipping destination address information.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AddressInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VaultPayPalBillingAgreementInput", + "description": "Top-level input fields for importing and vaulting a PayPal Billing Agreement.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "billingAgreementId", + "description": "ID of a PayPal Billing Agreement, that was not created through Braintree, to import and vault.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "customerId", + "description": "Optional ID of the customer to associate the resulting payment method with.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "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.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "indirectPayee", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "PayPalAccountInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VaultPayPalBillingAgreementPayload", + "description": "Top-level fields returned when importing and vaulting a PayPal Billing Agreement.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethod", + "description": "The vaulted payment method containing the imported PayPal Billing Agreement.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VaultPaymentMethodAfterTransactingInput", + "description": " Specifies behavior for vaulting a single-use payment method after transacting with it.", + "fields": null, + "inputFields": [ + { + "name": "when", + "description": "Specifies the criteria which must be met to vault this payment method.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "VaultPaymentMethodCriteria", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "VaultPaymentMethodCriteria", + "description": "Defines criteria for vaulting a single-use payment method after transacting with it.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ALWAYS", + "description": "Always store the single-use payment method after transacting, regardless of the status of the transaction.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ON_SUCCESSFUL_TRANSACTION", + "description": "Only store the single-use payment method if it was successfully authorized.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VaultPaymentMethodInput", + "description": "Top-level input field for vaulting a payment method so it can be used multiple times.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "ID of an existing single-use payment method to be vaulted.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "verificationMerchantAccountId", + "description": "Deprecated: This field is included for supporting legacy clients. Please use `verification.merchantAccountId` instead.\n\nID of the merchant account to use when verifying the payment method.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "verification", + "description": "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`.", + "type": { + "kind": "INPUT_OBJECT", + "name": "PaymentMethodVerificationOptionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customerId", + "description": "ID of the customer to associate the resulting multi-use payment method with.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "threeDSecurePassThrough", + "description": "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.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ThreeDSecurePassThroughInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "riskData", + "description": "Customer device information, which is sent directly to supported processors for fraud analysis.", + "type": { + "kind": "INPUT_OBJECT", + "name": "RiskDataInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VaultPaymentMethodPayload", + "description": "Top-level output field from vaulting a payment method.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethod", + "description": "A payment method that has been stored in a merchant's vault and can be reused.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verification", + "description": "The verification that was run on the payment method prior to vaulting.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Verification", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "VaultQRCOverride", + "description": "The override options for QR code vaulting.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "HIDE_QRC", + "description": "Do not show QR code as a payment option, even if it is enabled.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SHOW_QRC_NO_VAULT", + "description": "If QR codes are enabled, show as a payment option, but do not vault.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VaultUsBankAccountInput", + "description": "Top-level input field for vaulting a bank account so it can be used multiple times.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "ID of an existing single-use payment method to be vaulted.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "verificationMerchantAccountId", + "description": "ID of the merchant account to use when verifying the payment method.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "customerId", + "description": "ID of the customer to associate the resulting multi-use payment method with.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "verificationMethod", + "description": "Type of US bank account verification to perform.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "UsBankAccountVerificationMethod", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VenmoAccountDetails", + "description": "Details about a Venmo Account.", + "fields": [ + { + "name": "username", + "description": "The Venmo username, as chosen by the user.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "venmoUserId", + "description": "The Venmo user ID.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VenmoConfiguration", + "description": "Configuration for Pay with Venmo.", + "fields": [ + { + "name": "merchantId", + "description": "The Venmo merchant ID.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accessToken", + "description": "Authorization to use when tokenizing a Venmo payment method.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "environment", + "description": "The Venmo environment.", + "args": [], + "type": { + "kind": "ENUM", + "name": "VenmoEnvironment", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "VenmoEnvironment", + "description": "The environment being used for Venmo.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "PRODUCTION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SANDBOX", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "production", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sandbox", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VenmoPayerInfo", + "description": "Information about a payer's Venmo account.", + "fields": [ + { + "name": "firstName", + "description": "The payer's first name.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lastName", + "description": "The payer's last name.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "phoneNumber", + "description": "The payer's phone number.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "email", + "description": "The payer's email address.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "EmailAddress", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "externalId", + "description": "The external ID of the payer's Venmo account.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "userName", + "description": "The username of the payer's Venmo account.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "billingAddress", + "description": "The payer's billing address.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Address", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "shippingAddress", + "description": "The payer's shipping address.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Address", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VenmoPayerInfoInput", + "description": "Information about a payer's Venmo account.", + "fields": null, + "inputFields": [ + { + "name": "firstName", + "description": "The payer's first name.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "lastName", + "description": "The payer's last name.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "phoneNumber", + "description": "The payer's phone number.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "email", + "description": "The payer's email address.", + "type": { + "kind": "SCALAR", + "name": "EmailAddress", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "externalId", + "description": "The external ID of the payer's Venmo account.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "userName", + "description": "The username of the payer's Venmo account.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "billingAddress", + "description": "The payer's billing address.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AddressInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "shippingAddress", + "description": "The payer's shipping address.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AddressInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Verification", + "description": "A verification reporting whether the payment method has passed your fraud rules and the issuer has ensured it is associated with a valid account.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "legacyId", + "description": "Legacy unique identifier.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethodSnapshot", + "description": "Snapshot of payment method details that were verified. This will always be present.", + "args": [], + "type": { + "kind": "UNION", + "name": "PaymentMethodSnapshot", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethod", + "description": "The multi-use payment method that was verified, if it was vaulted. The details of this PaymentMethod may have changed since it was verified.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentMethod", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "For a credit card, the amount used when performing the verification.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "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." + }, + { + "name": "merchantAccountId", + "description": "The merchant account used for the verification.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "The current status of this verification, indicating whether the verification was successful. Braintree recommends only vaulting payment methods that are successfully verified.", + "args": [], + "type": { + "kind": "ENUM", + "name": "VerificationStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "processorResponse", + "description": "Detailed response information from the processor. Will not be present if the verification was rejected prior to contacting the processor.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "VerificationProcessorResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "networkResponse", + "description": "Fields describing the network response to the verification request.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PaymentNetworkResponse", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createdAt", + "description": "Date and time at which the verification was created.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "gatewayRejectionReason", + "description": "The reason the verification was rejected. This will only be set if status is GATEWAY_REJECTED.", + "args": [], + "type": { + "kind": "ENUM", + "name": "GatewayRejectionReason", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "riskData", + "description": "Risk data evaluated for this verification.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "RiskData", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "paymentMethodVerificationDetails", + "description": "Details unique to the verification based on payment method type being verified.", + "args": [], + "type": { + "kind": "UNION", + "name": "VerificationDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VerificationConnection", + "description": "A paginated list of verifications.", + "fields": [ + { + "name": "edges", + "description": "A list of verifications.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VerificationConnectionEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information about the page of verifications contained in `edges`.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VerificationConnectionEdge", + "description": "A verification within a VerificationConnection.", + "fields": [ + { + "name": "cursor", + "description": "The verification's location within the VerificationConnection. Used for requesting additional pages.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The verification.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Verification", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "UNION", + "name": "VerificationDetails", + "description": "A union of all possible verification details specific to the type of payment method being verified.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "UsBankAccountVerificationDetails", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "CreditCardVerificationDetails", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "VerificationProcessorResponse", + "description": "Detailed response information from the processor.", + "fields": [ + { + "name": "legacyCode", + "description": "The [processor response code](https://developers.braintreepayments.com/reference/general/processor-responses/authorization-responses) indicating the result of attempting the verification.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "message", + "description": "The text explanation of the processor response code.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cvvResponse", + "description": "The processing bank's response to the provided CVV.", + "args": [], + "type": { + "kind": "ENUM", + "name": "AvsCvvResponseCode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "avsPostalCodeResponse", + "description": "The processing bank's response to the provided billing postal or zip code.", + "args": [], + "type": { + "kind": "ENUM", + "name": "AvsCvvResponseCode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "avsStreetAddressResponse", + "description": "The processing bank's response to the provided billing street address.", + "args": [], + "type": { + "kind": "ENUM", + "name": "AvsCvvResponseCode", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "additionalInformation", + "description": "If present, any additional information recieved from the processor. May provide further insight into the `legacyCode`.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VerificationSearchInput", + "description": "Input fields for searching for verifications.", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": "Find verifications with an ID or IDs.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchValueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "status", + "description": "Find verifications with a given status.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchVerificationStatusInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "createdAt", + "description": "Find verifications with a given created at time.", + "type": { + "kind": "INPUT_OBJECT", + "name": "SearchTimestampInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "VerificationStatus", + "description": "The status of the verification, indicating whether the payment method was successfully verified. Braintree recommends only vaulting payment methods with successful verifications.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "FAILED", + "description": "Indicates the verification was unsuccessful because of an issue communicating with the processor.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GATEWAY_REJECTED", + "description": "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.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PENDING", + "description": "Indicates that the verification is pending.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PROCESSOR_DECLINED", + "description": "Indicates that the verification was unsuccessful based on the response from the processor.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VERIFIED", + "description": "Indicates that the verification was successful.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VERIFYING", + "description": "Indicates that the verification is in the process of verifying.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VerifoneVendor", + "description": "Verifone specific in-store reader information.", + "fields": [ + { + "name": "model", + "description": "Model name or number of reader.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "osVersion", + "description": "Current OS version running on the reader.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "serialNumber", + "description": "Vendor-specific device serial number.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VerifyCreditCardInput", + "description": "Top-level input field for verifying a multi-use credit card.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "ID of an existing multi-use payment method to be vaulted.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "ID of the merchant account to use when verifying the credit card.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "options", + "description": "Input fields for verifying a credit card.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CreditCardVerificationOptionsInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VerifyPaymentMethodInput", + "description": "Top-level input field for verifying a multi-use payment method.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "ID of an existing multi-use payment method to be verified.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "ID of the merchant account to use when verifying the payment method.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VerifyPaymentMethodPayload", + "description": "Top-level output field from verifying a payment method.", + "fields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verification", + "description": "The verification that was run on the payment method.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Verification", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VerifyUsBankAccountInput", + "description": "Top-level input field for retrying a verification on a bank account.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An identifier used to reconcile requests and responses. 255 characters maximum.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodId", + "description": "ID of an existing multi-use payment method to be vaulted.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "merchantAccountId", + "description": "ID of the merchant account to use when verifying the payment method.", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "verificationMethod", + "description": "Type of US bank account verification to perform.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "UsBankAccountVerificationMethod", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Viewer", + "description": "Details about the user and merchant authenticated in this request.", + "fields": [ + { + "name": "id", + "description": "Unique identifier.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `user` for id instead." + }, + { + "name": "email", + "description": "Email address.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `user` for email instead." + }, + { + "name": "status", + "description": "Current status.", + "args": [], + "type": { + "kind": "ENUM", + "name": "UserStatus", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `user` for status instead." + }, + { + "name": "name", + "description": "Full name.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `user` for name instead." + }, + { + "name": "roles", + "description": "Associated roles.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Role", + "ofType": null + } + } + }, + "isDeprecated": true, + "deprecationReason": "Use `user` for roles instead." + }, + { + "name": "user", + "description": "Details about the authenticated user.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "User", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merchant", + "description": "Details about the authenticated merchant.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Merchant", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "rights", + "description": "Associated rights based on authentication.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Right", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VisaCheckoutConfiguration", + "description": "Configuration for Visa Checkout.", + "fields": [ + { + "name": "apiKey", + "description": "The Visa Checkout API key.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "encryptionKey", + "description": "The Visa Checkout encryption key.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "externalClientId", + "description": "The Visa Checkout external client ID.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "supportedCardBrands", + "description": "A list of card brands supported by the merchant for Visa Checkout.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "CreditCardBrandCode", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VisaCheckoutOriginDetails", + "description": "Additional information about the payment method specific to Visa Checkout.", + "fields": [ + { + "name": "callId", + "description": "The Visa assigned identifier for the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bin", + "description": "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.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VoidedEvent", + "description": "Accompanying information for a transaction that has been voided.", + "fields": [ + { + "name": "status", + "description": "The new status of the transaction.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timestamp", + "description": "Date and time when the transaction was voided.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Timestamp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "The amount of the voided transaction. This should match the authorization amount.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MonetaryAmount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "The source for the transaction change to the new status.", + "args": [], + "type": { + "kind": "ENUM", + "name": "PaymentSource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terminal", + "description": "Whether or not this is the final state for the transaction.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "PaymentStatusEvent", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Year", + "description": "A four-digit year.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "__Directive", + "description": null, + "fields": [ + { + "name": "name", + "description": "The __Directive type represents a Directive that a server supports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isRepeatable", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "locations", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "__DirectiveLocation", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "args", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__InputValue", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "onOperation", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `locations`." + }, + { + "name": "onFragment", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `locations`." + }, + { + "name": "onField", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "Use `locations`." + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "__DirectiveLocation", + "description": "An enum describing valid locations where a directive can be placed", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "QUERY", + "description": "Indicates the directive is valid on queries.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MUTATION", + "description": "Indicates the directive is valid on mutations.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SUBSCRIPTION", + "description": "Indicates the directive is valid on subscriptions.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FIELD", + "description": "Indicates the directive is valid on fields.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FRAGMENT_DEFINITION", + "description": "Indicates the directive is valid on fragment definitions.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FRAGMENT_SPREAD", + "description": "Indicates the directive is valid on fragment spreads.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INLINE_FRAGMENT", + "description": "Indicates the directive is valid on inline fragments.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VARIABLE_DEFINITION", + "description": "Indicates the directive is valid on variable definitions.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SCHEMA", + "description": "Indicates the directive is valid on a schema SDL definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SCALAR", + "description": "Indicates the directive is valid on a scalar SDL definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OBJECT", + "description": "Indicates the directive is valid on an object SDL definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FIELD_DEFINITION", + "description": "Indicates the directive is valid on a field SDL definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ARGUMENT_DEFINITION", + "description": "Indicates the directive is valid on a field argument SDL definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INTERFACE", + "description": "Indicates the directive is valid on an interface SDL definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNION", + "description": "Indicates the directive is valid on an union SDL definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ENUM", + "description": "Indicates the directive is valid on an enum SDL definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ENUM_VALUE", + "description": "Indicates the directive is valid on an enum value SDL definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INPUT_OBJECT", + "description": "Indicates the directive is valid on an input object SDL definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INPUT_FIELD_DEFINITION", + "description": "Indicates the directive is valid on an input object field SDL definition.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "__EnumValue", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isDeprecated", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deprecationReason", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "__Field", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "args", + "description": null, + "args": [ + { + "name": "includeDeprecated", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": "false" + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__InputValue", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isDeprecated", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deprecationReason", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "__InputValue", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "defaultValue", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isDeprecated", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deprecationReason", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "__Schema", + "description": "A GraphQL Introspection defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, the entry points for query, mutation, and subscription operations.", + "fields": [ + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "types", + "description": "A list of all types supported by this server.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "queryType", + "description": "The type that query operations will be rooted at.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mutationType", + "description": "If this server supports mutation, the type that mutation operations will be rooted at.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "directives", + "description": "'A list of all directives supported by this server.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Directive", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "subscriptionType", + "description": "'If this server support subscription, the type that subscription operations will be rooted at.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "__Type", + "description": null, + "fields": [ + { + "name": "kind", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "__TypeKind", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fields", + "description": null, + "args": [ + { + "name": "includeDeprecated", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": "false" + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Field", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "interfaces", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "possibleTypes", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "enumValues", + "description": null, + "args": [ + { + "name": "includeDeprecated", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": "false" + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__EnumValue", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "inputFields", + "description": null, + "args": [ + { + "name": "includeDeprecated", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": "false" + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__InputValue", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ofType", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "specifiedByUrl", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "__TypeKind", + "description": "An enum describing what kind of type a given __Type is", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "SCALAR", + "description": "Indicates this type is a scalar. 'specifiedByUrl' is a valid field", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OBJECT", + "description": "Indicates this type is an object. `fields` and `interfaces` are valid fields.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INTERFACE", + "description": "Indicates this type is an interface. `fields` and `possibleTypes` are valid fields.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNION", + "description": "Indicates this type is a union. `possibleTypes` is a valid field.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ENUM", + "description": "Indicates this type is an enum. `enumValues` is a valid field.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INPUT_OBJECT", + "description": "Indicates this type is an input object. `inputFields` is a valid field.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LIST", + "description": "Indicates this type is a list. `ofType` is a valid field.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NON_NULL", + "description": "Indicates this type is a non-null. `ofType` is a valid field.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + } + ], + "directives": [ + { + "name": "include", + "description": "Directs the executor to include this field or fragment only when the `if` argument is true", + "locations": [ + "FIELD", + "FRAGMENT_SPREAD", + "INLINE_FRAGMENT" + ], + "args": [ + { + "name": "if", + "description": "Included when true.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + } + ] + }, + { + "name": "skip", + "description": "Directs the executor to skip this field or fragment when the `if`'argument is true.", + "locations": [ + "FIELD", + "FRAGMENT_SPREAD", + "INLINE_FRAGMENT" + ], + "args": [ + { + "name": "if", + "description": "Skipped when true.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + } + ] + }, + { + "name": "deprecated", + "description": "Marks the field, argument, input field or enum value as deprecated", + "locations": [ + "FIELD_DEFINITION", + "ARGUMENT_DEFINITION", + "ENUM_VALUE", + "INPUT_FIELD_DEFINITION" + ], + "args": [ + { + "name": "reason", + "description": "The reason for the deprecation", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": "\"No longer supported\"" + } + ] + }, + { + "name": "specifiedBy", + "description": "Exposes a URL that specifies the behaviour of this scalar.", + "locations": [ + "SCALAR" + ], + "args": [ + { + "name": "url", + "description": "The URL that specifies the behaviour of this scalar.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ] + } + ] + } + }, + "extensions": { + "requestId": "b0a5a574-0298-4b69-8406-f2db0b1c6e30" + } +} \ No newline at end of file diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerConfiguration.java index b76fcea6c..a4b272407 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerConfiguration.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerConfiguration.java @@ -19,6 +19,7 @@ import org.whispersystems.textsecuregcm.configuration.ApnConfiguration; import org.whispersystems.textsecuregcm.configuration.AppConfigConfiguration; import org.whispersystems.textsecuregcm.configuration.AwsAttachmentsConfiguration; import org.whispersystems.textsecuregcm.configuration.BadgesConfiguration; +import org.whispersystems.textsecuregcm.configuration.BraintreeConfiguration; import org.whispersystems.textsecuregcm.configuration.CdnConfiguration; import org.whispersystems.textsecuregcm.configuration.DatadogConfiguration; import org.whispersystems.textsecuregcm.configuration.DirectoryConfiguration; @@ -62,6 +63,11 @@ public class WhisperServerConfiguration extends Configuration { @JsonProperty private StripeConfiguration stripe; + @NotNull + @Valid + @JsonProperty + private BraintreeConfiguration braintree; + @NotNull @Valid @JsonProperty @@ -259,6 +265,10 @@ public class WhisperServerConfiguration extends Configuration { return stripe; } + public BraintreeConfiguration getBraintree() { + return braintree; + } + public DynamoDbClientConfiguration getDynamoDbClientConfiguration() { return dynamoDbClientConfiguration; } diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java index 43aa6f181..9bc9cdaa3 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java @@ -200,6 +200,7 @@ import org.whispersystems.textsecuregcm.storage.ReportMessageManager; import org.whispersystems.textsecuregcm.storage.StoredVerificationCodeManager; import org.whispersystems.textsecuregcm.storage.SubscriptionManager; import org.whispersystems.textsecuregcm.storage.VerificationCodeStore; +import org.whispersystems.textsecuregcm.subscriptions.BraintreeManager; import org.whispersystems.textsecuregcm.subscriptions.StripeManager; import org.whispersystems.textsecuregcm.util.Constants; import org.whispersystems.textsecuregcm.util.DynamoDbFromConfig; @@ -409,10 +410,11 @@ public class WhisperServerService extends Application supportedCurrencies, + @NotBlank String graphqlUrl, + @NotEmpty Map merchantAccounts, + @NotNull + @Valid + CircuitBreakerConfiguration circuitBreaker) { + + public BraintreeConfiguration { + if (circuitBreaker == null) { + // It’s a little counter-intuitive, but this compact constructor allows a default value + // to be used when one isn’t specified (e.g. in YAML), allowing the field to still be + // validated as @NotNull + circuitBreaker = new CircuitBreakerConfiguration(); + } + } +} diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/OneTimeDonationCurrencyConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/OneTimeDonationCurrencyConfiguration.java index 6e2d91096..9fa696b3b 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/OneTimeDonationCurrencyConfiguration.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/OneTimeDonationCurrencyConfiguration.java @@ -20,11 +20,11 @@ import org.whispersystems.textsecuregcm.util.ExactlySize; * @param boosts the list of suggested one-time donation amounts */ public record OneTimeDonationCurrencyConfiguration( - @DecimalMin("0.01") BigDecimal minimum, - @DecimalMin("0.01") BigDecimal gift, + @NotNull @DecimalMin("0.01") BigDecimal minimum, + @NotNull @DecimalMin("0.01") BigDecimal gift, @Valid @ExactlySize(6) @NotNull - List<@DecimalMin("0.01") BigDecimal> boosts) { + List<@NotNull @DecimalMin("0.01") BigDecimal> boosts) { } diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/StripeConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/StripeConfiguration.java index a1816ee3a..4ff28adce 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/StripeConfiguration.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/StripeConfiguration.java @@ -5,38 +5,13 @@ package org.whispersystems.textsecuregcm.configuration; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Set; +import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; -public class StripeConfiguration { +public record StripeConfiguration(@NotBlank String apiKey, + @NotEmpty byte[] idempotencyKeyGenerator, + @NotBlank String boostDescription, + @NotEmpty Set<@NotBlank String> supportedCurrencies) { - private final String apiKey; - private final byte[] idempotencyKeyGenerator; - private final String boostDescription; - - @JsonCreator - public StripeConfiguration( - @JsonProperty("apiKey") final String apiKey, - @JsonProperty("idempotencyKeyGenerator") final byte[] idempotencyKeyGenerator, - @JsonProperty("boostDescription") final String boostDescription) { - this.apiKey = apiKey; - this.idempotencyKeyGenerator = idempotencyKeyGenerator; - this.boostDescription = boostDescription; - } - - @NotEmpty - public String getApiKey() { - return apiKey; - } - - @NotEmpty - public byte[] getIdempotencyKeyGenerator() { - return idempotencyKeyGenerator; - } - - @NotEmpty - public String getBoostDescription() { - return boostDescription; - } } diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/SubscriptionController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/SubscriptionController.java index 5becbfcdc..1a24ed0f8 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/SubscriptionController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/SubscriptionController.java @@ -94,6 +94,7 @@ import org.whispersystems.textsecuregcm.metrics.UserAgentTagUtil; import org.whispersystems.textsecuregcm.storage.IssuedReceiptsManager; import org.whispersystems.textsecuregcm.storage.SubscriptionManager; import org.whispersystems.textsecuregcm.storage.SubscriptionManager.GetResult; +import org.whispersystems.textsecuregcm.subscriptions.BraintreeManager; import org.whispersystems.textsecuregcm.subscriptions.PaymentMethod; import org.whispersystems.textsecuregcm.subscriptions.ProcessorCustomer; import org.whispersystems.textsecuregcm.subscriptions.StripeManager; @@ -111,6 +112,7 @@ public class SubscriptionController { private final OneTimeDonationConfiguration oneTimeDonationConfiguration; private final SubscriptionManager subscriptionManager; private final StripeManager stripeManager; + private final BraintreeManager braintreeManager; private final ServerZkReceiptOperations zkReceiptOperations; private final IssuedReceiptsManager issuedReceiptsManager; private final BadgeTranslator badgeTranslator; @@ -125,6 +127,7 @@ public class SubscriptionController { @Nonnull OneTimeDonationConfiguration oneTimeDonationConfiguration, @Nonnull SubscriptionManager subscriptionManager, @Nonnull StripeManager stripeManager, + @Nonnull BraintreeManager braintreeManager, @Nonnull ServerZkReceiptOperations zkReceiptOperations, @Nonnull IssuedReceiptsManager issuedReceiptsManager, @Nonnull BadgeTranslator badgeTranslator, @@ -134,13 +137,14 @@ public class SubscriptionController { this.oneTimeDonationConfiguration = Objects.requireNonNull(oneTimeDonationConfiguration); this.subscriptionManager = Objects.requireNonNull(subscriptionManager); this.stripeManager = Objects.requireNonNull(stripeManager); + this.braintreeManager = Objects.requireNonNull(braintreeManager); this.zkReceiptOperations = Objects.requireNonNull(zkReceiptOperations); this.issuedReceiptsManager = Objects.requireNonNull(issuedReceiptsManager); this.badgeTranslator = Objects.requireNonNull(badgeTranslator); this.levelTranslator = Objects.requireNonNull(levelTranslator); this.currencyConfiguration = buildCurrencyConfiguration(this.oneTimeDonationConfiguration, - this.subscriptionConfiguration, List.of(stripeManager)); + this.subscriptionConfiguration, List.of(stripeManager, braintreeManager)); } private static Map buildCurrencyConfiguration( @@ -326,6 +330,14 @@ public class SubscriptionController { private SubscriptionProcessorManager getManagerForPaymentMethod(PaymentMethod paymentMethod) { return switch (paymentMethod) { case CARD -> stripeManager; + case PAYPAL -> braintreeManager; + }; + } + + private SubscriptionProcessorManager getManagerForProcessor(SubscriptionProcessor processor) { + return switch (processor) { + case STRIPE -> stripeManager; + case BRAINTREE -> braintreeManager; }; } @@ -682,11 +694,27 @@ public class SubscriptionController { } public static class CreateBoostRequest { - @NotEmpty @ExactlySize(3) public String currency; - @Min(1) public long amount; + + @NotEmpty + @ExactlySize(3) + public String currency; + @Min(1) + public long amount; public Long level; } + public static class CreatePayPalBoostRequest extends CreateBoostRequest { + + @NotEmpty + public String returnUrl; + @NotEmpty + public String cancelUrl; + } + + record CreatePayPalBoostResponse(String approvalUrl, String paymentId) { + + } + public static class CreateBoostResponse { private final String clientSecret; @@ -723,22 +751,109 @@ public class SubscriptionController { Response.status(Status.CONFLICT).entity(Map.of("error", "level_amount_mismatch")).build()); } } - BigDecimal minCurrencyAmountMajorUnits = oneTimeDonationConfiguration.currencies() - .get(request.currency.toLowerCase(Locale.ROOT)).minimum(); - BigDecimal minCurrencyAmountMinorUnits = stripeManager.convertConfiguredAmountToStripeAmount(request.currency, - minCurrencyAmountMajorUnits); - if (minCurrencyAmountMinorUnits.compareTo(amount) > 0) { - throw new BadRequestException(Response.status(Status.BAD_REQUEST) - .entity(Map.of("error", "amount_below_currency_minimum")).build()); - } + validateRequestCurrencyAmount(request, amount, stripeManager); }) .thenCompose(unused -> stripeManager.createPaymentIntent(request.currency, request.amount, request.level)) .thenApply(paymentIntent -> Response.ok(new CreateBoostResponse(paymentIntent.getClientSecret())).build()); } + /** + * Validates that the currency and amount in the request are supported by the {@code manager} and exceed the minimum + * permitted amount + * + * @throws BadRequestException indicates validation failed. Inspect {@code response.error} for details + */ + private void validateRequestCurrencyAmount(CreateBoostRequest request, BigDecimal amount, + SubscriptionProcessorManager manager) { + + if (!manager.supportsCurrency(request.currency.toLowerCase(Locale.ROOT))) { + throw new BadRequestException(Response.status(Status.BAD_REQUEST) + .entity(Map.of("error", "unsupported_currency")).build()); + } + + BigDecimal minCurrencyAmountMajorUnits = oneTimeDonationConfiguration.currencies() + .get(request.currency.toLowerCase(Locale.ROOT)).minimum(); + BigDecimal minCurrencyAmountMinorUnits = stripeManager.convertConfiguredAmountToStripeAmount(request.currency, + minCurrencyAmountMajorUnits); + if (minCurrencyAmountMinorUnits.compareTo(amount) > 0) { + throw new BadRequestException(Response.status(Status.BAD_REQUEST) + .entity(Map.of("error", "amount_below_currency_minimum")).build()); + } + } + + @Timed + @POST + @Path("/boost/paypal/create") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public CompletableFuture createPayPalBoost(@NotNull @Valid CreatePayPalBoostRequest request, + @Context ContainerRequestContext containerRequestContext) { + + return CompletableFuture.runAsync(() -> { + if (request.level == null) { + request.level = oneTimeDonationConfiguration.boost().level(); + } + + validateRequestCurrencyAmount(request, BigDecimal.valueOf(request.amount), braintreeManager); + }) + .thenCompose(unused -> { + final Locale locale = getAcceptableLanguagesForRequest(containerRequestContext).stream() + .filter(l -> !"*".equals(l.getLanguage())) + .findFirst() + .orElse(Locale.US); + + return braintreeManager.createOneTimePayment(request.currency.toUpperCase(Locale.ROOT), request.amount, + locale.toLanguageTag(), + request.returnUrl, request.cancelUrl); + }) + .thenApply(approvalDetails -> Response.ok( + new CreatePayPalBoostResponse(approvalDetails.approvalUrl(), approvalDetails.paymentId())).build()); + } + + public static class ConfirmPayPalBoostRequest extends CreateBoostRequest { + + @NotEmpty + public String payerId; + @NotEmpty + public String paymentId; // PAYID-… + @NotEmpty + public String paymentToken; // EC-… + } + + record ConfirmPayPalBoostResponse(String paymentId) { + + } + + @Timed + @POST + @Path("/boost/paypal/confirm") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public CompletableFuture confirmPayPalBoost(@NotNull @Valid ConfirmPayPalBoostRequest request) { + + return CompletableFuture.runAsync(() -> { + if (request.level == null) { + request.level = oneTimeDonationConfiguration.boost().level(); + } + }) + .thenCompose(unused -> braintreeManager.captureOneTimePayment(request.payerId, request.paymentId, + request.paymentToken, request.currency, request.amount, request.level)) + .thenApply(chargeSuccessDetails -> Response.ok( + new ConfirmPayPalBoostResponse(chargeSuccessDetails.paymentId())).build()); + } + public static class CreateBoostReceiptCredentialsRequest { - @NotNull public String paymentIntentId; - @NotNull public byte[] receiptCredentialRequest; + + /** + * a payment ID from {@link #processor} + */ + @NotNull + public String paymentIntentId; + @NotNull + public byte[] receiptCredentialRequest; + + @NotNull + public SubscriptionProcessor processor = SubscriptionProcessor.STRIPE; } public static class CreateBoostReceiptCredentialsResponse { @@ -762,26 +877,30 @@ public class SubscriptionController { @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public CompletableFuture createBoostReceiptCredentials(@NotNull @Valid CreateBoostReceiptCredentialsRequest request) { - return stripeManager.getPaymentIntent(request.paymentIntentId) - .thenCompose(paymentIntent -> { - if (paymentIntent == null) { + + final SubscriptionProcessorManager manager = getManagerForProcessor(request.processor); + + return manager.getPaymentDetails(request.paymentIntentId) + .thenCompose(paymentDetails -> { + if (paymentDetails == null) { throw new WebApplicationException(Status.NOT_FOUND); } - if (StringUtils.equalsIgnoreCase("processing", paymentIntent.getStatus())) { - throw new WebApplicationException(Status.NO_CONTENT); - } - if (!StringUtils.equalsIgnoreCase("succeeded", paymentIntent.getStatus())) { - throw new WebApplicationException(Status.PAYMENT_REQUIRED); + switch (paymentDetails.status()) { + case PROCESSING -> throw new WebApplicationException(Status.NO_CONTENT); + case SUCCEEDED -> { + } + default -> throw new WebApplicationException(Status.PAYMENT_REQUIRED); } + long level = oneTimeDonationConfiguration.boost().level(); - if (paymentIntent.getMetadata() != null) { - String levelMetadata = paymentIntent.getMetadata() + if (paymentDetails.customMetadata() != null) { + String levelMetadata = paymentDetails.customMetadata() .getOrDefault("level", Long.toString(oneTimeDonationConfiguration.boost().level())); try { level = Long.parseLong(levelMetadata); } catch (NumberFormatException e) { logger.error("failed to parse level metadata ({}) on payment intent {}", levelMetadata, - paymentIntent.getId(), e); + paymentDetails.id(), e); throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR); } } @@ -801,9 +920,10 @@ public class SubscriptionController { throw new BadRequestException("invalid receipt credential request", e); } final long finalLevel = level; - return issuedReceiptsManager.recordIssuance(paymentIntent.getId(), receiptCredentialRequest, clock.instant()) + return issuedReceiptsManager.recordIssuance(paymentDetails.id(), manager.getProcessor(), + receiptCredentialRequest, clock.instant()) .thenApply(unused -> { - Instant expiration = Instant.ofEpochSecond(paymentIntent.getCreated()) + Instant expiration = paymentDetails.created() .plus(levelExpiration) .truncatedTo(ChronoUnit.DAYS) .plus(1, ChronoUnit.DAYS); @@ -1052,7 +1172,8 @@ public class SubscriptionController { return stripeManager.getLatestInvoiceForSubscription(record.subscriptionId) .thenCompose(invoice -> convertInvoiceToReceipt(invoice, record.subscriptionId)) .thenCompose(receipt -> issuedReceiptsManager.recordIssuance( - receipt.getInvoiceLineItemId(), receiptCredentialRequest, requestData.now) + receipt.getInvoiceLineItemId(), SubscriptionProcessor.STRIPE, receiptCredentialRequest, + requestData.now) .thenApply(unused -> receipt)) .thenApply(receipt -> { ReceiptCredentialResponse receiptCredentialResponse; diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/storage/IssuedReceiptsManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/IssuedReceiptsManager.java index 2b20de4dc..483b4bfd2 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/storage/IssuedReceiptsManager.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/storage/IssuedReceiptsManager.java @@ -26,14 +26,16 @@ import javax.crypto.spec.SecretKeySpec; import javax.ws.rs.ClientErrorException; import javax.ws.rs.core.Response.Status; import org.signal.libsignal.zkgroup.receipts.ReceiptCredentialRequest; +import org.whispersystems.textsecuregcm.subscriptions.SubscriptionProcessor; import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; import software.amazon.awssdk.services.dynamodb.model.ConditionalCheckFailedException; import software.amazon.awssdk.services.dynamodb.model.ReturnValue; import software.amazon.awssdk.services.dynamodb.model.UpdateItemRequest; public class IssuedReceiptsManager { - public static final String KEY_STRIPE_ID = "A"; // S (HashKey) + public static final String KEY_PROCESSOR_ITEM_ID = "A"; // S (HashKey) public static final String KEY_ISSUED_RECEIPT_TAG = "B"; // B public static final String KEY_EXPIRATION = "E"; // N @@ -54,29 +56,39 @@ public class IssuedReceiptsManager { } /** - * Returns a future that completes normally if either this stripe item was never issued a receipt credential + * Returns a future that completes normally if either this processor item was never issued a receipt credential * previously OR if it was issued a receipt credential previously for the exact same receipt credential request * enabling clients to retry in case they missed the original response. - * - * If this stripe item has already been used to issue another receipt, throws a 409 conflict web application - * exception. - * - * Stripe item is expected to refer to an invoice line item (subscriptions) or a payment intent (one-time). + *

+ * If this item has already been used to issue another receipt, throws a 409 conflict web application exception. + *

+ * For {@link SubscriptionProcessor#STRIPE}, item is expected to refer to an invoice line item (subscriptions) or a + * payment intent (one-time). */ public CompletableFuture recordIssuance( - String stripeId, + String processorItemId, + SubscriptionProcessor processor, ReceiptCredentialRequest request, Instant now) { + + final AttributeValue key; + if (processor == SubscriptionProcessor.STRIPE) { + // As the first processor, Stripe’s IDs were not prefixed. Its item IDs have documented prefixes (`il_`, `pi_`) + // that will not collide with `SubscriptionProcessor` names + key = s(processorItemId); + } else { + key = s(processor.name() + "_" + processorItemId); + } UpdateItemRequest updateItemRequest = UpdateItemRequest.builder() .tableName(table) - .key(Map.of(KEY_STRIPE_ID, s(stripeId))) + .key(Map.of(KEY_PROCESSOR_ITEM_ID, key)) .conditionExpression("attribute_not_exists(#key) OR #tag = :tag") .returnValues(ReturnValue.NONE) .updateExpression("SET " + "#tag = if_not_exists(#tag, :tag), " + "#exp = if_not_exists(#exp, :exp)") .expressionAttributeNames(Map.of( - "#key", KEY_STRIPE_ID, + "#key", KEY_PROCESSOR_ITEM_ID, "#tag", KEY_ISSUED_RECEIPT_TAG, "#exp", KEY_EXPIRATION)) .expressionAttributeValues(Map.of( diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/BraintreeGraphqlClient.java b/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/BraintreeGraphqlClient.java new file mode 100644 index 000000000..668a53501 --- /dev/null +++ b/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/BraintreeGraphqlClient.java @@ -0,0 +1,236 @@ +/* + * Copyright 2022 Signal Messenger, LLC + * SPDX-License-Identifier: AGPL-3.0-only + */ + +package org.whispersystems.textsecuregcm.subscriptions; + +import com.apollographql.apollo3.api.ApolloResponse; +import com.apollographql.apollo3.api.Operation; +import com.apollographql.apollo3.api.Operations; +import com.apollographql.apollo3.api.Optional; +import com.apollographql.apollo3.api.json.BufferedSinkJsonWriter; +import com.braintree.graphql.client.type.ChargePaymentMethodInput; +import com.braintree.graphql.client.type.CreatePayPalOneTimePaymentInput; +import com.braintree.graphql.client.type.CustomFieldInput; +import com.braintree.graphql.client.type.MonetaryAmountInput; +import com.braintree.graphql.client.type.PayPalExperienceProfileInput; +import com.braintree.graphql.client.type.PayPalIntent; +import com.braintree.graphql.client.type.PayPalLandingPageType; +import com.braintree.graphql.client.type.PayPalOneTimePaymentInput; +import com.braintree.graphql.client.type.TokenizePayPalOneTimePaymentInput; +import com.braintree.graphql.client.type.TransactionDescriptorInput; +import com.braintree.graphql.client.type.TransactionInput; +import com.braintree.graphql.clientoperation.ChargePayPalOneTimePaymentMutation; +import com.braintree.graphql.clientoperation.CreatePayPalOneTimePaymentMutation; +import com.braintree.graphql.clientoperation.TokenizePayPalOneTimePaymentMutation; +import java.math.BigDecimal; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.Base64; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import javax.ws.rs.ServiceUnavailableException; +import okio.Buffer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.whispersystems.textsecuregcm.http.FaultTolerantHttpClient; + +class BraintreeGraphqlClient { + + // required header value, recommended to be the date the integration began + // https://graphql.braintreepayments.com/guides/making_api_calls/#the-braintree-version-header + private static final String BRAINTREE_VERSION = "2022-10-01"; + + private static final Logger logger = LoggerFactory.getLogger(BraintreeGraphqlClient.class); + + private final FaultTolerantHttpClient httpClient; + private final URI graphqlUri; + private final String authorizationHeader; + + BraintreeGraphqlClient(final FaultTolerantHttpClient httpClient, + final String graphqlUri, + final String publicKey, + final String privateKey) { + this.httpClient = httpClient; + try { + this.graphqlUri = new URI(graphqlUri); + } catch (URISyntaxException e) { + throw new IllegalArgumentException("Invalid URI", e); + } + // “public”/“private” key is a bit of a misnomer, but we follow the upstream nomenclature + // they are used for Basic auth similar to “client key”/“client secret” credentials + this.authorizationHeader = "Basic " + Base64.getEncoder().encodeToString((publicKey + ":" + privateKey).getBytes()); + } + + CompletableFuture createPayPalOneTimePayment( + final BigDecimal amount, final String currency, final String returnUrl, + final String cancelUrl, final String locale) { + + final CreatePayPalOneTimePaymentInput input = buildCreatePayPalOneTimePaymentInput(amount, currency, returnUrl, + cancelUrl, locale); + final CreatePayPalOneTimePaymentMutation mutation = new CreatePayPalOneTimePaymentMutation(input); + final HttpRequest request = buildRequest(mutation); + + return httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString()) + .thenApply(httpResponse -> + { + // IntelliJ users: type parameters error “no instance of type variable exists so that Data conforms to Data” + // is not accurate; this might be fixed in Kotlin 1.8: https://youtrack.jetbrains.com/issue/KTIJ-21905/ + final CreatePayPalOneTimePaymentMutation.Data data = assertSuccessAndExtractData(httpResponse, mutation); + return data.createPayPalOneTimePayment; + }); + } + + private static CreatePayPalOneTimePaymentInput buildCreatePayPalOneTimePaymentInput(BigDecimal amount, + String currency, String returnUrl, String cancelUrl, String locale) { + + return new CreatePayPalOneTimePaymentInput( + Optional.absent(), + Optional.absent(), // merchant account ID will be specified when charging + new MonetaryAmountInput(amount.toString(), currency), // this could potentially use a CustomScalarAdapter + cancelUrl, + Optional.absent(), + PayPalIntent.SALE, + Optional.absent(), + Optional.present(false), // offerPayLater, + Optional.absent(), + Optional.present( + new PayPalExperienceProfileInput(Optional.present("Signal"), + Optional.present(false), + Optional.present(PayPalLandingPageType.LOGIN), + Optional.present(locale), + Optional.absent())), + Optional.absent(), + Optional.absent(), + returnUrl, + Optional.absent(), + Optional.absent() + ); + } + + CompletableFuture tokenizePayPalOneTimePayment( + final String payerId, final String paymentId, final String paymentToken) { + + final TokenizePayPalOneTimePaymentInput input = new TokenizePayPalOneTimePaymentInput( + Optional.absent(), + Optional.absent(), // merchant account ID will be specified when charging + new PayPalOneTimePaymentInput(payerId, paymentId, paymentToken) + ); + + final TokenizePayPalOneTimePaymentMutation mutation = new TokenizePayPalOneTimePaymentMutation(input); + final HttpRequest request = buildRequest(mutation); + + return httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString()) + .thenApply(httpResponse -> { + // IntelliJ users: type parameters error “no instance of type variable exists so that Data conforms to Data” + // is not accurate; this might be fixed in Kotlin 1.8: https://youtrack.jetbrains.com/issue/KTIJ-21905/ + final TokenizePayPalOneTimePaymentMutation.Data data = assertSuccessAndExtractData(httpResponse, mutation); + return data.tokenizePayPalOneTimePayment; + }); + } + + CompletableFuture chargeOneTimePayment( + final String paymentMethodId, final BigDecimal amount, final String merchantAccount, final long level) { + + final List customFields = List.of( + new CustomFieldInput("level", Optional.present(Long.toString(level)))); + + final ChargePaymentMethodInput input = buildChargePaymentMethodInput(paymentMethodId, amount, merchantAccount, + customFields); + final ChargePayPalOneTimePaymentMutation mutation = new ChargePayPalOneTimePaymentMutation(input); + final HttpRequest request = buildRequest(mutation); + + return httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString()) + .thenApply(httpResponse -> { + // IntelliJ users: type parameters error “no instance of type variable exists so that Data conforms to Data” + // is not accurate; this might be fixed in Kotlin 1.8: https://youtrack.jetbrains.com/issue/KTIJ-21905/ + final ChargePayPalOneTimePaymentMutation.Data data = assertSuccessAndExtractData(httpResponse, + mutation); + return data.chargePaymentMethod; + }); + } + + private static ChargePaymentMethodInput buildChargePaymentMethodInput(String paymentMethodId, BigDecimal amount, + String merchantAccount, List customFields) { + + return new ChargePaymentMethodInput( + Optional.absent(), + paymentMethodId, + new TransactionInput( + // documented as “amount: whole number, or exactly two or three decimal places” + amount.toString(), // this could potentially use a CustomScalarAdapter + Optional.present(merchantAccount), + Optional.absent(), + Optional.absent(), + Optional.absent(), + Optional.absent(), + Optional.present(customFields), + Optional.present(new TransactionDescriptorInput( + Optional.present("Signal Technology Foundation"), + Optional.absent(), + Optional.absent() + )), + Optional.absent(), + Optional.absent(), + Optional.absent(), + Optional.absent(), + Optional.absent(), + Optional.absent(), + Optional.absent(), + Optional.absent(), + Optional.absent(), + Optional.absent(), + Optional.absent() + ) + ); + } + + /** + * Verifies that the HTTP response has a {@code 200} status code and the GraphQL response has no errors, otherwise + * throws a {@link ServiceUnavailableException}. + */ + private , U extends Operation.Data> U assertSuccessAndExtractData( + HttpResponse httpResponse, T operation) { + + if (httpResponse.statusCode() != 200) { + logger.warn("Received HTTP response status {} ({})", httpResponse.statusCode(), + httpResponse.headers().firstValue("paypal-debug-id").orElse("")); + throw new ServiceUnavailableException(); + } + + ApolloResponse response = Operations.parseJsonResponse(operation, httpResponse.body()); + + if (response.hasErrors() || response.data == null) { + //noinspection ConstantConditions + response.errors.forEach( + error -> { + final Object legacyCode = java.util.Optional.ofNullable(error.getExtensions()) + .map(extensions -> extensions.get("legacyCode")) + .orElse(""); + logger.warn("Received GraphQL error for {}: \"{}\" (legacyCode: {})", + response.operation.name(), error.getMessage(), legacyCode); + }); + + throw new ServiceUnavailableException(); + } + + return response.data; + } + + private HttpRequest buildRequest(final Operation operation) { + + final Buffer buffer = new Buffer(); + Operations.composeJsonRequest(operation, new BufferedSinkJsonWriter(buffer)); + + return HttpRequest.newBuilder() + .uri(graphqlUri) + .method("POST", HttpRequest.BodyPublishers.ofString(buffer.readUtf8())) + .header("Content-Type", "application/json") + .header("Authorization", authorizationHeader) + .header("Braintree-Version", BRAINTREE_VERSION) + .build(); + } +} diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/BraintreeManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/BraintreeManager.java new file mode 100644 index 000000000..653dd446d --- /dev/null +++ b/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/BraintreeManager.java @@ -0,0 +1,206 @@ +/* + * Copyright 2022 Signal Messenger, LLC + * SPDX-License-Identifier: AGPL-3.0-only + */ + +package org.whispersystems.textsecuregcm.subscriptions; + +import com.braintreegateway.BraintreeGateway; +import com.braintreegateway.ResourceCollection; +import com.braintreegateway.Transaction; +import com.braintreegateway.TransactionSearchRequest; +import com.braintreegateway.exceptions.NotFoundException; +import java.math.BigDecimal; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Executor; +import javax.ws.rs.BadRequestException; +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.Response; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.whispersystems.textsecuregcm.configuration.CircuitBreakerConfiguration; +import org.whispersystems.textsecuregcm.http.FaultTolerantHttpClient; + +public class BraintreeManager implements SubscriptionProcessorManager { + + private static final Logger logger = LoggerFactory.getLogger(BraintreeManager.class); + + private static final String PAYPAL_PAYMENT_ALREADY_COMPLETED_PROCESSOR_CODE = "2094"; + private final BraintreeGateway braintreeGateway; + private final BraintreeGraphqlClient braintreeGraphqlClient; + private final Executor executor; + private final Set supportedCurrencies; + private final Map currenciesToMerchantAccounts; + + public BraintreeManager(final String braintreeMerchantId, final String braintreePublicKey, + final String braintreePrivateKey, + final String braintreeEnvironment, + final Set supportedCurrencies, + final Map currenciesToMerchantAccounts, + final String graphqlUri, + final CircuitBreakerConfiguration circuitBreakerConfiguration, + final Executor executor) { + + this.braintreeGateway = new BraintreeGateway(braintreeEnvironment, braintreeMerchantId, braintreePublicKey, + braintreePrivateKey); + this.supportedCurrencies = supportedCurrencies; + this.currenciesToMerchantAccounts = currenciesToMerchantAccounts; + + final FaultTolerantHttpClient httpClient = FaultTolerantHttpClient.newBuilder() + .withName("braintree-graphql") + .withCircuitBreaker(circuitBreakerConfiguration) + .withExecutor(executor) + .build(); + this.braintreeGraphqlClient = new BraintreeGraphqlClient(httpClient, graphqlUri, braintreePublicKey, + braintreePrivateKey); + this.executor = executor; + } + + @Override + public Set getSupportedCurrencies() { + return supportedCurrencies; + } + + @Override + public SubscriptionProcessor getProcessor() { + return SubscriptionProcessor.BRAINTREE; + } + + @Override + public boolean supportsPaymentMethod(final PaymentMethod paymentMethod) { + return paymentMethod == PaymentMethod.PAYPAL; + } + + @Override + public boolean supportsCurrency(final String currency) { + return supportedCurrencies.contains(currency.toLowerCase(Locale.ROOT)); + } + + + @Override + public CompletableFuture getPaymentDetails(final String paymentId) { + return CompletableFuture.supplyAsync(() -> { + try { + final Transaction transaction = braintreeGateway.transaction().find(paymentId); + + return new PaymentDetails(transaction.getGraphQLId(), + transaction.getCustomFields(), + getPaymentStatus(transaction.getStatus()), + transaction.getCreatedAt().toInstant()); + + } catch (final NotFoundException e) { + return null; + } + }, executor); + } + + @Override + public CompletableFuture createCustomer(final byte[] subscriberUser) { + return CompletableFuture.failedFuture(new BadRequestException("Unsupported")); + } + + @Override + public CompletableFuture createPaymentMethodSetupToken(final String customerId) { + return CompletableFuture.failedFuture(new BadRequestException("Unsupported")); + } + + public CompletableFuture createOneTimePayment(String currency, long amount, + String locale, String returnUrl, String cancelUrl) { + return braintreeGraphqlClient.createPayPalOneTimePayment(convertApiAmountToBraintreeAmount(currency, amount), + currency.toUpperCase(Locale.ROOT), returnUrl, + cancelUrl, locale) + .thenApply(result -> new PayPalOneTimePaymentApprovalDetails((String) result.approvalUrl, result.paymentId)); + } + + public CompletableFuture captureOneTimePayment(String payerId, String paymentId, + String paymentToken, String currency, long amount, long level) { + return braintreeGraphqlClient.tokenizePayPalOneTimePayment(payerId, paymentId, paymentToken) + .thenCompose(response -> braintreeGraphqlClient.chargeOneTimePayment( + response.paymentMethod.id, + convertApiAmountToBraintreeAmount(currency, amount), + currenciesToMerchantAccounts.get(currency.toLowerCase(Locale.ROOT)), + level) + .thenComposeAsync(chargeResponse -> { + + final PaymentStatus paymentStatus = getPaymentStatus(chargeResponse.transaction.status); + if (paymentStatus == PaymentStatus.SUCCEEDED || paymentStatus == PaymentStatus.PROCESSING) { + return CompletableFuture.completedFuture(new PayPalChargeSuccessDetails(chargeResponse.transaction.id)); + } + + // the GraphQL/Apollo interfaces are a tad unwieldy for this type of status checking + final Transaction unsuccessfulTx = braintreeGateway.transaction().find(chargeResponse.transaction.id); + + if (PAYPAL_PAYMENT_ALREADY_COMPLETED_PROCESSOR_CODE.equals(unsuccessfulTx.getProcessorResponseCode()) + || Transaction.GatewayRejectionReason.DUPLICATE.equals( + unsuccessfulTx.getGatewayRejectionReason())) { + // the payment has already been charged - maybe a previous call timed out or was interrupted - + // in any case, check for a successful transaction with the paymentId + final ResourceCollection search = braintreeGateway.transaction() + .search(new TransactionSearchRequest() + .paypalPaymentId().is(paymentId) + .status().in( + Transaction.Status.SETTLED, + Transaction.Status.SETTLING, + Transaction.Status.SUBMITTED_FOR_SETTLEMENT, + Transaction.Status.SETTLEMENT_PENDING + ) + ); + + if (search.getMaximumSize() == 0) { + return CompletableFuture.failedFuture( + new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR)); + } + + final Transaction successfulTx = search.getFirst(); + + return CompletableFuture.completedFuture( + new PayPalChargeSuccessDetails(successfulTx.getGraphQLId())); + } + + logger.info("PayPal charge unexpectedly failed: {}", unsuccessfulTx.getProcessorResponseCode()); + + return CompletableFuture.failedFuture( + new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR)); + + }, executor)); + } + + private static PaymentStatus getPaymentStatus(Transaction.Status status) { + return switch (status) { + case SETTLEMENT_CONFIRMED, SETTLING, SUBMITTED_FOR_SETTLEMENT, SETTLED -> PaymentStatus.SUCCEEDED; + case AUTHORIZATION_EXPIRED, GATEWAY_REJECTED, PROCESSOR_DECLINED, SETTLEMENT_DECLINED, VOIDED, FAILED -> + PaymentStatus.FAILED; + default -> PaymentStatus.UNKNOWN; + }; + } + + private static PaymentStatus getPaymentStatus(com.braintree.graphql.client.type.PaymentStatus status) { + try { + Transaction.Status transactionStatus = Transaction.Status.valueOf(status.rawValue); + + return getPaymentStatus(transactionStatus); + } catch (final Exception e) { + return PaymentStatus.UNKNOWN; + } + } + + private BigDecimal convertApiAmountToBraintreeAmount(final String currency, final long amount) { + return switch (currency.toLowerCase(Locale.ROOT)) { + // JPY is the only supported zero-decimal currency + case "jpy" -> BigDecimal.valueOf(amount); + default -> BigDecimal.valueOf(amount).scaleByPowerOfTen(-2); + }; + } + + public record PayPalOneTimePaymentApprovalDetails(String approvalUrl, String paymentId) { + + } + + public record PayPalChargeSuccessDetails(String paymentId) { + + } + +} diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/PaymentMethod.java b/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/PaymentMethod.java index 306d51f4e..e472a8bfe 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/PaymentMethod.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/PaymentMethod.java @@ -10,4 +10,8 @@ public enum PaymentMethod { * A credit card or debit card, including those from Apple Pay and Google Pay */ CARD, + /** + * A PayPal account + */ + PAYPAL, } diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/StripeManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/StripeManager.java index 8fc822b27..2f48a1bb1 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/StripeManager.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/StripeManager.java @@ -42,6 +42,7 @@ import java.time.Instant; import java.util.ArrayList; import java.util.Base64; import java.util.Collection; +import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Locale; @@ -66,28 +67,18 @@ public class StripeManager implements SubscriptionProcessorManager { private static final String METADATA_KEY_LEVEL = "level"; - // https://stripe.com/docs/currencies?presentment-currency=US - private static final Set SUPPORTED_CURRENCIES = Set.of( - "aed", "afn", "all", "amd", "ang", "aoa", "ars", "aud", "awg", "azn", "bam", "bbd", "bdt", "bgn", "bif", "bmd", - "bnd", "bob", "brl", "bsd", "bwp", "bzd", "cad", "cdf", "chf", "clp", "cny", "cop", "crc", "cve", "czk", "djf", - "dkk", "dop", "dzd", "egp", "etb", "eur", "fjd", "fkp", "gbp", "gel", "gip", "gmd", "gnf", "gtq", "gyd", "hkd", - "hnl", "hrk", "htg", "huf", "idr", "ils", "inr", "isk", "jmd", "jpy", "kes", "kgs", "khr", "kmf", "krw", "kyd", - "kzt", "lak", "lbp", "lkr", "lrd", "lsl", "mad", "mdl", "mga", "mkd", "mmk", "mnt", "mop", "mro", "mur", "mvr", - "mwk", "mxn", "myr", "mzn", "nad", "ngn", "nio", "nok", "npr", "nzd", "pab", "pen", "pgk", "php", "pkr", "pln", - "pyg", "qar", "ron", "rsd", "rub", "rwf", "sar", "sbd", "scr", "sek", "sgd", "shp", "sll", "sos", "srd", "std", - "szl", "thb", "tjs", "top", "try", "ttd", "twd", "tzs", "uah", "ugx", "usd", "uyu", "uzs", "vnd", "vuv", "wst", - "xaf", "xcd", "xof", "xpf", "yer", "zar", "zmw"); - private final String apiKey; private final Executor executor; private final byte[] idempotencyKeyGenerator; private final String boostDescription; + private final Set supportedCurrencies; public StripeManager( @Nonnull String apiKey, @Nonnull Executor executor, @Nonnull byte[] idempotencyKeyGenerator, - @Nonnull String boostDescription) { + @Nonnull String boostDescription, + @Nonnull Set supportedCurrencies) { this.apiKey = Objects.requireNonNull(apiKey); if (Strings.isNullOrEmpty(apiKey)) { throw new IllegalArgumentException("apiKey cannot be empty"); @@ -98,6 +89,7 @@ public class StripeManager implements SubscriptionProcessorManager { throw new IllegalArgumentException("idempotencyKeyGenerator cannot be empty"); } this.boostDescription = Objects.requireNonNull(boostDescription); + this.supportedCurrencies = supportedCurrencies; } @Override @@ -110,6 +102,11 @@ public class StripeManager implements SubscriptionProcessorManager { return paymentMethod == PaymentMethod.CARD; } + @Override + public boolean supportsCurrency(final String currency) { + return supportedCurrencies.contains(currency); + } + private RequestOptions commonOptions() { return commonOptions(null); } @@ -181,7 +178,7 @@ public class StripeManager implements SubscriptionProcessorManager { @Override public Set getSupportedCurrencies() { - return SUPPORTED_CURRENCIES; + return supportedCurrencies; } /** @@ -210,10 +207,15 @@ public class StripeManager implements SubscriptionProcessorManager { }, executor); } - public CompletableFuture getPaymentIntent(String paymentIntentId) { + public CompletableFuture getPaymentDetails(String paymentIntentId) { return CompletableFuture.supplyAsync(() -> { try { - return PaymentIntent.retrieve(paymentIntentId, commonOptions()); + final PaymentIntent paymentIntent = PaymentIntent.retrieve(paymentIntentId, commonOptions()); + + return new PaymentDetails(paymentIntent.getId(), + paymentIntent.getMetadata() == null ? Collections.emptyMap() : paymentIntent.getMetadata(), + getPaymentStatusForStatus(paymentIntent.getStatus()), + Instant.ofEpochSecond(paymentIntent.getCreated())); } catch (StripeException e) { if (e.getStatusCode() == 404) { return null; @@ -224,7 +226,16 @@ public class StripeManager implements SubscriptionProcessorManager { }, executor); } - public CompletableFuture createSubscription(String customerId, String priceId, long level, long lastSubscriptionCreatedAt) { + private static PaymentStatus getPaymentStatusForStatus(String status) { + return switch (status.toLowerCase(Locale.ROOT)) { + case "processing" -> PaymentStatus.PROCESSING; + case "succeeded" -> PaymentStatus.SUCCEEDED; + default -> PaymentStatus.UNKNOWN; + }; + } + + public CompletableFuture createSubscription(String customerId, String priceId, long level, + long lastSubscriptionCreatedAt) { return CompletableFuture.supplyAsync(() -> { SubscriptionCreateParams params = SubscriptionCreateParams.builder() .setCustomer(customerId) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/SubscriptionProcessor.java b/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/SubscriptionProcessor.java index fe7a9eaeb..81e4a6b37 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/SubscriptionProcessor.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/SubscriptionProcessor.java @@ -16,6 +16,7 @@ public enum SubscriptionProcessor { // because provider IDs are stored, they should not be reused, and great care // must be used if a provider is removed from the list STRIPE(1), + BRAINTREE(2), ; private static final Map IDS_TO_PROCESSORS = new HashMap<>(); diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/SubscriptionProcessorManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/SubscriptionProcessorManager.java index 64ca6c52a..d26710ad9 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/SubscriptionProcessorManager.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/SubscriptionProcessorManager.java @@ -5,6 +5,8 @@ package org.whispersystems.textsecuregcm.subscriptions; +import java.time.Instant; +import java.util.Map; import java.util.Set; import java.util.concurrent.CompletableFuture; @@ -14,9 +16,27 @@ public interface SubscriptionProcessorManager { boolean supportsPaymentMethod(PaymentMethod paymentMethod); + boolean supportsCurrency(String currency); + + Set getSupportedCurrencies(); + + CompletableFuture getPaymentDetails(String paymentId); + CompletableFuture createCustomer(byte[] subscriberUser); CompletableFuture createPaymentMethodSetupToken(String customerId); - Set getSupportedCurrencies(); + record PaymentDetails(String id, + Map customMetadata, + PaymentStatus status, + Instant created) { + + } + + enum PaymentStatus { + SUCCEEDED, + PROCESSING, + FAILED, + UNKNOWN, + } } diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/controllers/SubscriptionControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/controllers/SubscriptionControllerTest.java index 5a1319e77..41a0a62a2 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/controllers/SubscriptionControllerTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/controllers/SubscriptionControllerTest.java @@ -19,8 +19,8 @@ import static org.whispersystems.textsecuregcm.util.AttributeValues.n; import com.fasterxml.jackson.dataformat.yaml.YAMLMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.stripe.exception.ApiException; -import com.stripe.model.Subscription; import com.stripe.model.PaymentIntent; +import com.stripe.model.Subscription; import io.dropwizard.auth.PolymorphicAuthValueFactoryProvider; import io.dropwizard.testing.junit5.DropwizardExtensionsSupport; import io.dropwizard.testing.junit5.ResourceExtension; @@ -61,7 +61,7 @@ import org.whispersystems.textsecuregcm.entities.BadgeSvg; import org.whispersystems.textsecuregcm.mappers.CompletionExceptionMapper; import org.whispersystems.textsecuregcm.storage.IssuedReceiptsManager; import org.whispersystems.textsecuregcm.storage.SubscriptionManager; -import org.whispersystems.textsecuregcm.subscriptions.PaymentMethod; +import org.whispersystems.textsecuregcm.subscriptions.BraintreeManager; import org.whispersystems.textsecuregcm.subscriptions.ProcessorCustomer; import org.whispersystems.textsecuregcm.subscriptions.StripeManager; import org.whispersystems.textsecuregcm.subscriptions.SubscriptionProcessor; @@ -87,18 +87,21 @@ class SubscriptionControllerTest { private static final PaymentIntent PAYMENT_INTENT = mock(PaymentIntent.class); static { + // this behavior is required by the SubscriptionController constructor when(STRIPE_MANAGER.getSupportedCurrencies()) - .thenCallRealMethod(); - when(STRIPE_MANAGER.supportsPaymentMethod(PaymentMethod.CARD)) + .thenReturn(Set.of("usd", "jpy", "bif")); + when(STRIPE_MANAGER.supportsPaymentMethod(any())) .thenCallRealMethod(); } + private static final BraintreeManager BRAINTREE_MANAGER = mock(BraintreeManager.class); + private static final ServerZkReceiptOperations ZK_OPS = mock(ServerZkReceiptOperations.class); private static final IssuedReceiptsManager ISSUED_RECEIPTS_MANAGER = mock(IssuedReceiptsManager.class); private static final BadgeTranslator BADGE_TRANSLATOR = mock(BadgeTranslator.class); private static final LevelTranslator LEVEL_TRANSLATOR = mock(LevelTranslator.class); private static final SubscriptionController SUBSCRIPTION_CONTROLLER = new SubscriptionController( - CLOCK, SUBSCRIPTION_CONFIG, ONETIME_CONFIG, SUBSCRIPTION_MANAGER, STRIPE_MANAGER, ZK_OPS, + CLOCK, SUBSCRIPTION_CONFIG, ONETIME_CONFIG, SUBSCRIPTION_MANAGER, STRIPE_MANAGER, BRAINTREE_MANAGER, ZK_OPS, ISSUED_RECEIPTS_MANAGER, BADGE_TRANSLATOR, LEVEL_TRANSLATOR); private static final ResourceExtension RESOURCE_EXTENSION = ResourceExtension.builder() .addProperty(ServerProperties.UNWRAP_COMPLETION_STAGE_IN_WRITER_ENABLE, Boolean.TRUE) @@ -157,8 +160,9 @@ class SubscriptionControllerTest { @Test void testCreateBoostPaymentIntent() { when(STRIPE_MANAGER.convertConfiguredAmountToStripeAmount(any(), any())).thenReturn(new BigDecimal(300)); - when(STRIPE_MANAGER.createPaymentIntent(anyString(), anyLong(), anyLong())) + when(STRIPE_MANAGER.createPaymentIntent(anyString(), anyLong(), anyLong())) .thenReturn(CompletableFuture.completedFuture(PAYMENT_INTENT)); + when(STRIPE_MANAGER.supportsCurrency("usd")).thenReturn(true); String clientSecret = "some_client_secret"; when(PAYMENT_INTENT.getClientSecret()).thenReturn(clientSecret); @@ -168,7 +172,7 @@ class SubscriptionControllerTest { .post(Entity.json("{\"currency\": \"USD\", \"amount\": 300, \"level\": null}")); assertThat(response.getStatus()).isEqualTo(200); } - + @Test void createBoostReceiptInvalid() { final Response response = RESOURCE_EXTENSION.target("/v1/subscription/boost/receipt_credentials") diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/storage/IssuedReceiptsManagerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/storage/IssuedReceiptsManagerTest.java index 4c9cd8364..de042b9a1 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/storage/IssuedReceiptsManagerTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/storage/IssuedReceiptsManagerTest.java @@ -19,6 +19,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; import org.signal.libsignal.zkgroup.receipts.ReceiptCredentialRequest; +import org.whispersystems.textsecuregcm.subscriptions.SubscriptionProcessor; import software.amazon.awssdk.services.dynamodb.model.AttributeDefinition; import software.amazon.awssdk.services.dynamodb.model.ScalarAttributeType; @@ -31,9 +32,9 @@ class IssuedReceiptsManagerTest { @RegisterExtension static DynamoDbExtension dynamoDbExtension = DynamoDbExtension.builder() .tableName(ISSUED_RECEIPTS_TABLE_NAME) - .hashKey(IssuedReceiptsManager.KEY_STRIPE_ID) + .hashKey(IssuedReceiptsManager.KEY_PROCESSOR_ITEM_ID) .attributeDefinition(AttributeDefinition.builder() - .attributeName(IssuedReceiptsManager.KEY_STRIPE_ID) + .attributeName(IssuedReceiptsManager.KEY_PROCESSOR_ITEM_ID) .attributeType(ScalarAttributeType.S) .build()) .build(); @@ -59,18 +60,21 @@ class IssuedReceiptsManagerTest { byte[] request1 = new byte[20]; SECURE_RANDOM.nextBytes(request1); when(receiptCredentialRequest.serialize()).thenReturn(request1); - CompletableFuture future = issuedReceiptsManager.recordIssuance("item-1", receiptCredentialRequest, now); + CompletableFuture future = issuedReceiptsManager.recordIssuance("item-1", SubscriptionProcessor.STRIPE, + receiptCredentialRequest, now); assertThat(future).succeedsWithin(Duration.ofSeconds(3)); // same request should succeed - future = issuedReceiptsManager.recordIssuance("item-1", receiptCredentialRequest, now); + future = issuedReceiptsManager.recordIssuance("item-1", SubscriptionProcessor.STRIPE, receiptCredentialRequest, + now); assertThat(future).succeedsWithin(Duration.ofSeconds(3)); // same item with new request should fail byte[] request2 = new byte[20]; SECURE_RANDOM.nextBytes(request2); when(receiptCredentialRequest.serialize()).thenReturn(request2); - future = issuedReceiptsManager.recordIssuance("item-1", receiptCredentialRequest, now); + future = issuedReceiptsManager.recordIssuance("item-1", SubscriptionProcessor.STRIPE, receiptCredentialRequest, + now); assertThat(future).failsWithin(Duration.ofSeconds(3)). withThrowableOfType(Throwable.class). havingCause(). @@ -80,7 +84,8 @@ class IssuedReceiptsManagerTest { "status 409")); // different item with new request should be okay though - future = issuedReceiptsManager.recordIssuance("item-2", receiptCredentialRequest, now); + future = issuedReceiptsManager.recordIssuance("item-2", SubscriptionProcessor.STRIPE, receiptCredentialRequest, + now); assertThat(future).succeedsWithin(Duration.ofSeconds(3)); } } diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/subscriptions/BraintreeGraphqlClientTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/subscriptions/BraintreeGraphqlClientTest.java new file mode 100644 index 000000000..131eee029 --- /dev/null +++ b/service/src/test/java/org/whispersystems/textsecuregcm/subscriptions/BraintreeGraphqlClientTest.java @@ -0,0 +1,174 @@ +/* + * Copyright 2022 Signal Messenger, LLC + * SPDX-License-Identifier: AGPL-3.0-only + */ + +package org.whispersystems.textsecuregcm.subscriptions; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTimeoutPreemptively; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import com.braintree.graphql.clientoperation.CreatePayPalOneTimePaymentMutation; +import java.math.BigDecimal; +import java.net.http.HttpHeaders; +import java.net.http.HttpResponse; +import java.time.Duration; +import java.util.Optional; +import java.util.UUID; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import javax.ws.rs.ServiceUnavailableException; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.whispersystems.textsecuregcm.http.FaultTolerantHttpClient; + +class BraintreeGraphqlClientTest { + + private static final String CURRENCY = "xts"; + private static final String RETURN_URL = "https://example.com/return"; + private static final String CANCEL_URL = "https://example.com/cancel"; + private static final String LOCALE = "xx"; + + private FaultTolerantHttpClient httpClient; + private BraintreeGraphqlClient braintreeGraphqlClient; + + + @BeforeEach + void setUp() { + httpClient = mock(FaultTolerantHttpClient.class); + + braintreeGraphqlClient = new BraintreeGraphqlClient(httpClient, "https://example.com", "public", "super-secret"); + } + + @Test + void createPayPalOneTimePayment() { + + final HttpResponse response = mock(HttpResponse.class); + when(httpClient.sendAsync(any(), any())) + .thenReturn(CompletableFuture.completedFuture(response)); + + final String paymentId = "PAYID-AAA1AAAA1A11111AA111111A"; + when(response.body()) + .thenReturn(createPayPalOneTimePaymentResponse(paymentId)); + when(response.statusCode()) + .thenReturn(200); + + final CompletableFuture future = braintreeGraphqlClient.createPayPalOneTimePayment( + BigDecimal.ONE, CURRENCY, + RETURN_URL, CANCEL_URL, LOCALE); + + assertTimeoutPreemptively(Duration.ofSeconds(3), () -> { + final CreatePayPalOneTimePaymentMutation.CreatePayPalOneTimePayment result = future.get(); + + assertEquals(paymentId, result.paymentId); + assertNotNull(result.approvalUrl); + }); + } + + @Test + void createPayPalOneTimePaymentHttpError() { + + final HttpResponse response = mock(HttpResponse.class); + when(httpClient.sendAsync(any(), any())) + .thenReturn(CompletableFuture.completedFuture(response)); + + when(response.statusCode()) + .thenReturn(500); + final HttpHeaders httpheaders = mock(HttpHeaders.class); + when(httpheaders.firstValue(any())).thenReturn(Optional.empty()); + when(response.headers()) + .thenReturn(httpheaders); + + final CompletableFuture future = braintreeGraphqlClient.createPayPalOneTimePayment( + BigDecimal.ONE, CURRENCY, + RETURN_URL, CANCEL_URL, LOCALE); + + assertTimeoutPreemptively(Duration.ofSeconds(3), () -> { + + final ExecutionException e = assertThrows(ExecutionException.class, future::get); + + assertTrue(e.getCause() instanceof ServiceUnavailableException); + }); + } + + @Test + void createPayPalOneTimePaymentGraphQlError() { + + final HttpResponse response = mock(HttpResponse.class); + when(httpClient.sendAsync(any(), any())) + .thenReturn(CompletableFuture.completedFuture(response)); + + when(response.body()) + .thenReturn(createErrorResponse("createPayPalOneTimePayment", "12345")); + when(response.statusCode()) + .thenReturn(200); + + final CompletableFuture future = braintreeGraphqlClient.createPayPalOneTimePayment( + BigDecimal.ONE, CURRENCY, + RETURN_URL, CANCEL_URL, LOCALE); + + assertTimeoutPreemptively(Duration.ofSeconds(3), () -> { + + final ExecutionException e = assertThrows(ExecutionException.class, future::get); + assertTrue(e.getCause() instanceof ServiceUnavailableException); + }); + } + + private String createPayPalOneTimePaymentResponse(final String paymentId) { + final String cannedToken = "EC-1AA11111AA111111A"; + return String.format(""" + { + "data": { + "createPayPalOneTimePayment": { + "approvalUrl": "https://www.sandbox.paypal.com/checkoutnow?nolegacy=1&token=%2$s", + "paymentId": "%1$s" + } + }, + "extensions": { + "requestId": "%3$s" + } + } + """, paymentId, cannedToken, UUID.randomUUID()); + } + + private String createErrorResponse(final String operationName, final String legacyCode) { + return String.format(""" + { + "data": { + "%1$s": null + }, + "errors": [ { + "message": "This is a test error message.", + "locations": [ { + "line": 2, + "column": 7 + } ], + "path": [ "%1$s" ], + "extensions": { + "errorType": "user_error", + "errorClass": "VALIDATION", + "legacyCode": "%2$s", + "inputPath": [ "input", "testField" ] + } + }], + "extensions": { + "requestId": "%3$s" + } + } + """, operationName, legacyCode, UUID.randomUUID()); + } + + @Test + void tokenizePayPalOneTimePayment() { + } + + @Test + void chargeOneTimePayment() { + } +}