{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml","oas-api/index.yaml":"oas-api/index.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition","tabs","tab","openapi-code-sample","json-schema","code-snippet"]},"type":"markdown"},"seo":{"title":"Google Pay Passthrough | Finix Guides","description":"Send Google Pay wallet authentication signals (ECI) to Finix when you decrypt tokens outside of Finix using the passthrough path.","siteUrl":"https://docs.finix.com/","llmstxt":{"hide":false,"sections":[{"title":"Getting Started","includeFiles":["guides/getting-started/**/*.md"],"excludeFiles":[]},{"title":"Online Payments","includeFiles":["guides/online-payments/**/*.md"],"excludeFiles":["guides/online-payments/payment-features/fsa-hsa-non-healthcare-mcc.md"]},{"title":"In-Person Payments","includeFiles":["guides/in-person-payments/**/*.md"],"excludeFiles":[]},{"title":"Subscriptions","includeFiles":["guides/subscriptions/**/*.md"],"excludeFiles":[]},{"title":"After the Payment","includeFiles":["guides/subscriptions/after-the-payment/**/*.md"],"excludeFiles":[]},{"title":"Managing Operations","includeFiles":["guides/managing-operations/**/*.md"],"excludeFiles":[]},{"title":"Platform Payments","includeFiles":["guides/platform-payments/**/*.md"],"excludeFiles":[]},{"title":"Payouts","includeFiles":["guides/payouts/**/*.md"],"excludeFiles":[]},{"title":"Developers","includeFiles":["additional-resources/developers/**/*.md"],"excludeFiles":[]},{"title":"Plugins","includeFiles":["additional-resources/plugins/**/*.md"],"excludeFiles":[]},{"title":"Industry Considerations","includeFiles":["guides/industry-considerations/**/*.md"],"excludeFiles":[]},{"title":"Regional Considerations","includeFiles":["guides/regional-considerations/**/*.md"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":["openapi"],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"google-pay-passthrough","__idx":0},"children":["Google Pay Passthrough"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you decrypt Google Pay tokens outside of Finix, use the passthrough path to send the wallet authentication fields including the Electronic Commerce Indicator (ECI) directly to Finix."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ECI is a one-or-two-digit value that card networks and issuers factor into liability and risk decisions on the authorization."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"PCI Level 1 Required"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The passthrough path transmits raw PAN (DPAN) data. Only customers that are PCI Level 1 compliant are permitted to use it. Sending ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["number"]}," without PCI Level 1 approval returns a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["422"]}," error."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-it-works","__idx":1},"children":["How It Works"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["There are two ways to submit Google Pay data to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /payment_instruments"]},":"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Path"},"children":["Path"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"How it works"},"children":["How it works"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Encrypted token"]}," (default)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Send the encrypted ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["third_party_token"]},". Finix decrypts it and extracts all fields, including ECI."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Passthrough"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Decrypt the token yourself and send the individual fields (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["number"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cryptogram"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expiration_month"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expiration_year"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["electronic_commerce_indicator_code"]},") directly."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You cannot send both ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["number"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["third_party_token"]}," in the same request. Doing so returns a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["422"]}," error."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"passthrough-fields","__idx":2},"children":["Passthrough Fields"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Required"},"children":["Required"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["number"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["string"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Yes"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Network token PAN (DPAN) from the decrypted token. May be a raw PAN for Google Pay."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cryptogram"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["string"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Wallet-generated cryptogram from the decrypted token. Optional for Google Pay — PAN_ONLY tokens do not produce a cryptogram."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expiration_month"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["integer"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Card expiration month (1–12)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expiration_year"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["integer"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Card expiration year (4-digit)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["electronic_commerce_indicator_code"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["string"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["One-or-two-digit value indicating the authentication method. The card network and issuer factor this into liability and risk decisions on the authorization."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"create-a-payment-instrument-passthrough","__idx":3},"children":["Create a Payment Instrument (Passthrough)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When your server receives the decrypted fields from the Google Pay token, pass them directly in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /payment_instruments"]}," request body instead of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["third_party_token"]},"."]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"div","attributes":{"label":"Example","disable":false},"children":[{"$$mdtype":"Tag","name":"OpenApiCodeSample","attributes":{"descriptionFile":"oas-api/index.yaml","operationId":"createPaymentInstrument","exampleKey":"Payment Instrument - Google Pay - Passthrough","parameters":{},"environments":{}},"children":[]}]},{"$$mdtype":"Tag","name":"div","attributes":{"label":"API Definition","disable":false},"children":[{"$$mdtype":"Tag","name":"JsonSchema","attributes":{"schema":{"$ref":"../../../../api/components/schemas/requestBodies/payment_instruments/createPaymentInstrumentGooglePayPassthrough.yaml"},"options":{},"schemaResolved":{"openapi":"3.1.0","components":{"schemas":{"__root":{"$ref":"#/components/schemas/createPaymentInstrumentGooglePayPassthrough"},"country":{"type":"string","enum":["ABW","AFG","AGO","AIA","ALA","ALB","AND","ARE","ARG","ARM","ASM","ATA","ATF","ATG","AUS","AUT","AZE","BDI","BEL","BEN","BES","BFA","BGD","BGR","BHR","BHS","BIH","BLM","BLR","BLZ","BMU","BOL","BRA","BRB","BRN","BTN","BVT","BWA","CAF","CAN","CCK","CHE","CHL","CHN","CIV","CMR","COD","COG","COK","COL","COM","CPV","CRI","CUB","CUW","CXR","CYM","CYP","CZE","DEU","DJI","DMA","DNK","DOM","DZA","ECU","EGY","ERI","ESH","ESP","EST","ETH","FIN","FJI","FLK","FRA","FRO","FSM","GAB","GBR","GEO","GGY","GHA","GIB","GIN","GLP","GMB","GNB","GNQ","GRC","GRD","GRL","GTM","GUF","GUM","GUY","HKG","HMD","HND","HRV","HTI","HUN","IDN","IMN","IND","IOT","IRL","IRN","IRQ","ISL","ISR","ITA","JAM","JEY","JOR","JPN","KAZ","KEN","KGZ","KHM","KIR","KNA","KOR","KWT","LAO","LBN","LBR","LBY","LCA","LIE","LKA","LSO","LTU","LUX","LVA","MAC","MAF","MAR","MCO","MDA","MDG","MDV","MEX","MHL","MKD","MLI","MLT","MMR","MNE","MNG","MNP","MRT","MSR","MTQ","MUS","MWI","MYS","MYT","NAM","NCL","NER","NFK","NGA","NIC","NIU","NLD","NOR","NPL","NRU","NZL","OMN","PAK","PAN","PCN","PER","PHL","PLW","PNG","POL","PRI","PRK","PRT","PRY","PSE","PYF","QAT","REU","ROU","RUS","RWA","SAU","SDN","SEN","SGP","SGS","SHN","SJM","SLB","SLE","SLV","SMR","SOM","SPM","SRB","SSD","STP","SUR","SVK","SVN","SWE","SWZ","SXM","SYC","SYR","TCA","TCD","TGO","THA","TJK","TKL","TKM","TLS","TON","TTO","TUN","TUR","TUV","TWN","TZA","UGA","UKR","UMI","URY","USA","UZB","VAT","VCT","VEN","VGB","VIR","VNM","VUT","WLF","WSM","XKX","YEM","ZAF","ZMB","ZWE"],"nullable":true},"address":{"type":"object","properties":{"line1":{"type":"string","minLength":1,"description":"First line of the address (max 35 characters).","nullable":true},"line2":{"type":"string","minLength":1,"description":"Second line of the address (max 35 characters).","nullable":true},"city":{"type":"string","minLength":1,"description":"City (max 20 characters).","nullable":true},"region":{"type":"string","minLength":1,"description":"2-letter State code.","nullable":true},"postal_code":{"type":"string","minLength":1,"description":"Zip or Postal code (max 7 characters).","nullable":true},"country":{"$ref":"#/components/schemas/country"}},"required":["city","country","line1","postal_code","region"]},"tags":{"type":"object","title":"tags","additionalProperties":{"type":"string"},"description":"Include up to 50 `key: value` pairs to annotate requests with custom metadata.\n- Maximum character length for individual `keys` is 40.\n- Maximum character length for individual `values` is 500.\n(For example, `order_number: 25`, `item_type: produce`, `department: sales`)","nullable":true},"createPaymentInstrumentGooglePayPassthrough":{"title":"Payment Instrument - Google Pay - Passthrough","type":"object","properties":{"address":{"$ref":"#/components/schemas/address"},"cryptogram":{"type":"string","description":"Wallet-generated cryptogram from the decrypted Google Pay token. Not required for PAN_ONLY tokens, which do not produce a cryptogram."},"electronic_commerce_indicator_code":{"type":"string","description":"One-or-two-digit value indicating the authentication method used. The card network and issuer factor this into liability and risk decisions on the authorization."},"expiration_month":{"type":"integer","description":"Card expiration month (1-12)."},"expiration_year":{"type":"integer","description":"Card expiration year (4-digit)."},"identity":{"type":"string","description":"The ID of the `Identity` used to create the `Payment Instrument` resource."},"merchant_identity":{"type":"string","description":"The `id` of the identity used when registering the business with Google Pay through our registration API."},"name":{"type":"string","description":"The name of the bank account or card owner. This value can get truncated to comply with processor requirements."},"number":{"type":"string","description":"Network token PAN (DPAN) from the decrypted Google Pay token. May be a raw PAN for Google Pay."},"tags":{"$ref":"#/components/schemas/tags"},"type":{"type":"string","enum":["GOOGLE_PAY"],"description":"Type of `Payment Instrument`."}},"required":["identity","merchant_identity","number","type"]}}}},"schemaResolvedErrors":[]},"children":[]}]}]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"div","attributes":{"label":"Example","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../../../../api/components/examples/payment_instruments/responses/json/createPaymentInstrumentGooglePayPassthrough.jsonc","language":"json","title":"Payment Instrument - Google Pay - Passthrough","header":{"title":"Payment Instrument - Google Pay - Passthrough","controls":{"copy":{}}},"lang":"json","source":"{\n  \"id\": \"PIrBNkBnJMThRHLGKHbfpYkF\",\n  \"created_at\": \"2025-05-08T18:44:58.56Z\",\n  \"updated_at\": \"2025-05-08T18:44:58.56Z\",\n  \"application\": \"APc9vhYcPsRuTSpKD9KpMtPe\",\n  \"created_via\": \"API\",\n  \"currency\": \"USD\",\n  \"disabled_code\": null,\n  \"disabled_message\": null,\n  \"enabled\": true,\n  \"fingerprint\": \"FPRrBNkBnJMThRHLGKHbfpYkF\",\n  \"identity\": \"ID78Fh8mcnnzukVzbdoyex5y\",\n  \"instrument_type\": \"GOOGLE_PAY\",\n  \"address\": {\n    \"line1\": \"900 Metro Center Blv\",\n    \"line2\": \"APT 200\",\n    \"city\": \"San Francisco\",\n    \"region\": \"CA\",\n    \"postal_code\": \"94404\",\n    \"country\": \"USA\"\n  },\n  \"bin\": \"411111\",\n  \"brand\": \"VISA\",\n  \"card_type\": \"CREDIT\",\n  \"expiration_month\": 11,\n  \"expiration_year\": 2026,\n  \"issuer_country\": \"USA\",\n  \"last_four\": \"1234\",\n  \"name\": \"Finix Sandbox\",\n  \"tags\": {},\n  \"third_party\": null,\n  \"third_party_token\": null,\n  \"type\": \"GOOGLE_PAY\",\n  \"_links\": {\n    \"self\": {\n      \"href\": \"https://finix.sandbox-payments-api.com/payment_instruments/PIrBNkBnJMThRHLGKHbfpYkF\"\n    },\n    \"authorizations\": {\n      \"href\": \"https://finix.sandbox-payments-api.com/payment_instruments/PIrBNkBnJMThRHLGKHbfpYkF/authorizations\"\n    },\n    \"transfers\": {\n      \"href\": \"https://finix.sandbox-payments-api.com/payment_instruments/PIrBNkBnJMThRHLGKHbfpYkF/transfers\"\n    },\n    \"verifications\": {\n      \"href\": \"https://finix.sandbox-payments-api.com/payment_instruments/PIrBNkBnJMThRHLGKHbfpYkF/verifications\"\n    },\n    \"application\": {\n      \"href\": \"https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe\"\n    },\n    \"identity\": {\n      \"href\": \"https://finix.sandbox-payments-api.com/identities/ID78Fh8mcnnzukVzbdoyex5y\"\n    }\n  }\n}\n"},"children":[]}]},{"$$mdtype":"Tag","name":"div","attributes":{"label":"API Definition","disable":false},"children":[{"$$mdtype":"Tag","name":"JsonSchema","attributes":{"schema":{"$ref":"../../../../api/components/schemas/resources/payment_instruments/payment_instrument_card.yaml"},"options":{},"schemaResolved":{"openapi":"3.1.0","components":{"schemas":{"__root":{"$ref":"#/components/schemas/payment_instrument_card"},"id":{"type":"string","minLength":1,"description":"The ID of the resource."},"created_at":{"type":"string","format":"date-time","description":"Timestamp of when the object was created."},"updated_at":{"type":"string","format":"date-time","description":"Timestamp of when the object was last updated."},"created_via":{"type":"string","description":"The method by which the resource was created.","enum":["API"]},"account_updater_enabled_card":{"type":"boolean","description":"When enabled at the `Payment Instrument`-level, Finix automatically checks for updates with card networks. This Account Updater functionality:\n\n- Automatically updates card details (e.g., number or expiration date) to maintain continuity of charges, increasing authorization rates.\n- Saves the cardholder the hassle of updating card details across `Merchants` for each of their `Subscriptions`.\n\nIf set at the `Application` level, this `Payment Instrument`-level setting will override the `Application`-level configuration. If not configured at the `Application`-level, the card defaults to `false`, requiring explicit opt-in.\n\n**Note**: Cards created before the feature is enabled are unaffected by default. To include these cards, you can manually enable the Account Updater functionality for each card individually using a PUT request. Once enabled, you can link the card to this API call to trigger updates with card networks.\n","default":false},"country":{"type":"string","enum":["ABW","AFG","AGO","AIA","ALA","ALB","AND","ARE","ARG","ARM","ASM","ATA","ATF","ATG","AUS","AUT","AZE","BDI","BEL","BEN","BES","BFA","BGD","BGR","BHR","BHS","BIH","BLM","BLR","BLZ","BMU","BOL","BRA","BRB","BRN","BTN","BVT","BWA","CAF","CAN","CCK","CHE","CHL","CHN","CIV","CMR","COD","COG","COK","COL","COM","CPV","CRI","CUB","CUW","CXR","CYM","CYP","CZE","DEU","DJI","DMA","DNK","DOM","DZA","ECU","EGY","ERI","ESH","ESP","EST","ETH","FIN","FJI","FLK","FRA","FRO","FSM","GAB","GBR","GEO","GGY","GHA","GIB","GIN","GLP","GMB","GNB","GNQ","GRC","GRD","GRL","GTM","GUF","GUM","GUY","HKG","HMD","HND","HRV","HTI","HUN","IDN","IMN","IND","IOT","IRL","IRN","IRQ","ISL","ISR","ITA","JAM","JEY","JOR","JPN","KAZ","KEN","KGZ","KHM","KIR","KNA","KOR","KWT","LAO","LBN","LBR","LBY","LCA","LIE","LKA","LSO","LTU","LUX","LVA","MAC","MAF","MAR","MCO","MDA","MDG","MDV","MEX","MHL","MKD","MLI","MLT","MMR","MNE","MNG","MNP","MRT","MSR","MTQ","MUS","MWI","MYS","MYT","NAM","NCL","NER","NFK","NGA","NIC","NIU","NLD","NOR","NPL","NRU","NZL","OMN","PAK","PAN","PCN","PER","PHL","PLW","PNG","POL","PRI","PRK","PRT","PRY","PSE","PYF","QAT","REU","ROU","RUS","RWA","SAU","SDN","SEN","SGP","SGS","SHN","SJM","SLB","SLE","SLV","SMR","SOM","SPM","SRB","SSD","STP","SUR","SVK","SVN","SWE","SWZ","SXM","SYC","SYR","TCA","TCD","TGO","THA","TJK","TKL","TKM","TLS","TON","TTO","TUN","TUR","TUV","TWN","TZA","UGA","UKR","UMI","URY","USA","UZB","VAT","VCT","VEN","VGB","VIR","VNM","VUT","WLF","WSM","XKX","YEM","ZAF","ZMB","ZWE"],"nullable":true},"address":{"type":"object","properties":{"line1":{"type":"string","minLength":1,"description":"First line of the address (max 35 characters).","nullable":true},"line2":{"type":"string","minLength":1,"description":"Second line of the address (max 35 characters).","nullable":true},"city":{"type":"string","minLength":1,"description":"City (max 20 characters).","nullable":true},"region":{"type":"string","minLength":1,"description":"2-letter State code.","nullable":true},"postal_code":{"type":"string","minLength":1,"description":"Zip or Postal code (max 7 characters).","nullable":true},"country":{"$ref":"#/components/schemas/country"}},"required":["city","country","line1","postal_code","region"]},"application_id":{"type":"string","minLength":1,"description":"ID of the `Application` the resource was created under."},"currency":{"type":"string","description":"ISO 4217 3-letter currency code.","enum":["CAD","USD"]},"identity_id":{"type":"string","description":"The ID of the `Identity` used to create the resource."},"network_token_enabled_card":{"type":"boolean","description":"When enabled at the `Payment Instrument` level, a \"network token\" replaces raw card details (e.g., the 16-digit PAN and expiration date) for transactions. Network tokens have several benefits:\n\n- The token offers increased authorization rates, even for lost or stolen cards, as it remains valid while the physical card is replaced.\n- Visa reduces interchange fees when using network tokens.\n- Tokens enhance security by replacing card details with a non-sensitive string that is usable only within the Finix system.\n\nIf set at the `Application` level, this `Payment Instrument` level setting will override the application level configuration.  If not configured at the application level, the card defaults to `false`, requiring explicit opt-in.\n\n**Note**: Cards created before the feature is enabled are unaffected. To include them, update an individual `Payment Instrument`. Then, you can insert the hyperlink on the \"update\".\n","default":false},"name_verification_results":{"type":"object","nullable":true,"properties":{"first_name_verification":{"type":"string","enum":["MATCH","NO_MATCH","NOT_SUPPORTED","PARTIAL_MATCH","UNKNOWN"],"description":"The result of verifying the cardholder's first name."},"last_name_verification":{"type":"string","enum":["MATCH","NO_MATCH","NOT_SUPPORTED","PARTIAL_MATCH","UNKNOWN"],"description":"The result of verifying the cardholder's last name."},"middle_name_verification":{"type":"string","enum":["MATCH","NO_MATCH","NOT_SUPPORTED","PARTIAL_MATCH","UNKNOWN"],"description":"The result of verifying the cardholder's middle name."},"name_verification":{"type":"string","enum":["MATCH","NO_MATCH","NOT_SUPPORTED","PARTIAL_MATCH","UNKNOWN"],"description":"The result of verifying the cardholder's full name."}}},"tags":{"type":"object","title":"tags","additionalProperties":{"type":"string"},"description":"Include up to 50 `key: value` pairs to annotate requests with custom metadata.\n- Maximum character length for individual `keys` is 40.\n- Maximum character length for individual `values` is 500.\n(For example, `order_number: 25`, `item_type: produce`, `department: sales`)","nullable":true},"payment_instrument_card":{"type":"object","title":"Payment Instrument - Card","properties":{"id":{"$ref":"#/components/schemas/id"},"created_at":{"$ref":"#/components/schemas/created_at"},"updated_at":{"$ref":"#/components/schemas/updated_at"},"created_via":{"$ref":"#/components/schemas/created_via"},"account_updater_enabled":{"$ref":"#/components/schemas/account_updater_enabled_card"},"address":{"description":"The address of the card owner. Including a postal or zip code when creating a `Payment Instrument` can lower the interchange on credit card transactions.","allOf":[{"$ref":"#/components/schemas/address"}]},"address_verification":{"type":"string","enum":["POSTAL_CODE_AND_STREET_MATCH","STREET_MATCH","POSTAL_CODE_MATCH","NO_ADDRESS","NO_MATCH","NOT_SUPPORTED","UNKNOWN"],"description":"- Details the results of verifying `address` with the issuing bank.\n- Set to **UNKNOWN** when `address` gets updated."},"application":{"$ref":"#/components/schemas/application_id"},"bin":{"type":"string","description":"Bank Identification number for the `Payment Instrument`."},"brand":{"type":"string","enum":["UNKNOWN","DINERS_CLUB_INTERNATIONAL","DANKORT","MIR","TROY","UATP","CHINA_T_UNION","CHINA_UNION_PAY","AMERICAN_EXPRESS","VERVE","RUPAY","DISCOVER","JCB","MASTERCARD","INTERPAYMENT","INSTAPAYMENT","MAESTRO","VISA","LANKAPAY","DINERS_CLUB","INTERAC"],"description":"The `brand` of the card saved in the `Payment Instrument`."},"card_type":{"type":"string","enum":["CREDIT","DEBIT","HSA_FSA","NON_RELOADABLE_PREPAID","RELOADABLE_PREPAID","UNKNOWN"],"description":"The type of payment card saved in the `Payment Instrument`."},"country":{"$ref":"#/components/schemas/country"},"currency":{"$ref":"#/components/schemas/currency"},"disabled_code":{"type":"string","description":"A code indicating why the `Payment Instrument` was disabled. This field is populated when the card is automatically disabled for reasons other than `USER INITIATED` or when manually disabled by a user for `USER_INITIATED`.\n\nSee `disabled_message` for possible error codes and their messages.\n","enum":["CARD_ACCOUNT_CLOSED","INVALID_ACCOUNT_NUMBER","LOST_OR_STOLEN_CARD","NON_RELOADABLE_INSUFFICIENT_FUNDS","PICK_UP_CARD","RESTRICTED_CARD","USER_INITIATED"],"nullable":true},"disabled_message":{"type":"string","description":"A human-readable message explaining why the `Payment Instrument` was disabled. This field provides additional context for the `disabled_code`.\n\nThe possible error codes/messages are:\n- `CARD_ACCOUNT_CLOSED`: \"The card account has been closed. The card has been disabled to prevent further use.\"\n- `INVALID_ACCOUNT_NUMBER`: \"The card number is not valid. The card has been disabled to prevent further use.\"\n- `LOST_OR_STOLEN_CARD`: \"The card is reported lost or stolen. The card has been disabled to prevent further use.\"\n- `NON_RELOADABLE_INSUFFICIENT_FUNDS`: \"The card has insufficient funds for the transaction and is non-reloadable. The card has been disabled to prevent further use.\"\n- `PICK_UP_CARD`: \"The card is reported lost or stolen. The card has been disabled to prevent further use.\"\n- `RESTRICTED_CARD`: \"The card has a restriction preventing approval for this transaction. The card has been disabled to prevent further use.\"\n- `USER_INITIATED`: \"The card has been disabled by a user.\"\n","nullable":true},"enabled":{"type":"boolean","description":"Indicates whether the `Payment Instrument` resource is enabled. The default value is `true`; set it to `false` to disable the `Payment Instrument`. The user or the system can update this field to enable or disable the payment instrument."},"expiration_month":{"type":"integer","maximum":12,"minimum":1,"description":"Expiration month (e.g. 12 for December)."},"expiration_year":{"type":"integer","minimum":1,"description":"4-digit expiration year."},"fast_funds_indicator":{"type":"string","description":"Details if Fast Funds is enabled for the card."},"fingerprint":{"type":"string","example":"FPRxxxxxxxxxxxxxxxxx","description":"Unique ID that represents the tokenized card data."},"identity":{"$ref":"#/components/schemas/identity_id"},"instrument_type":{"type":"string","enum":["PAYMENT_CARD","PAYMENT_CARD_PRESENT","TOKEN"],"description":"The type of `Payment Instrument`."},"issuer_country":{"type":"string","description":"The Alpha-3 Code of the country the card was issued in.\n\nIn addition, the following values are possible:\n\n- `NON_USA` - The card was issued outside of the United States.\n- `UNKNOWN` - The processor did not return an issuer country for this particular BIN.\n","enum":["ABW","AFG","AGO","AIA","ALA","ALB","AND","ARE","ARG","ARM","ASM","ATA","ATF","ATG","AUS","AUT","AZE","BDI","BEL","BEN","BES","BFA","BGD","BGR","BHR","BHS","BIH","BLM","BLR","BLZ","BMU","BOL","BRA","BRB","BRN","BTN","BVT","BWA","CAF","CAN","CCK","CHE","CHL","CHN","CIV","CMR","COD","COG","COK","COL","COM","CPV","CRI","CUB","CUW","CXR","CYM","CYP","CZE","DEU","DJI","DMA","DNK","DOM","DZA","ECU","EGY","ERI","ESH","ESP","EST","ETH","FIN","FJI","FLK","FRA","FRO","FSM","GAB","GBR","GEO","GGY","GHA","GIB","GIN","GLP","GMB","GNB","GNQ","GRC","GRD","GRL","GTM","GUF","GUM","GUY","HKG","HMD","HND","HRV","HTI","HUN","IDN","IMN","IND","IOT","IRL","IRN","IRQ","ISL","ISR","ITA","JAM","JEY","JOR","JPN","KAZ","KEN","KGZ","KHM","KIR","KNA","KOR","KWT","LAO","LBN","LBR","LBY","LCA","LIE","LKA","LSO","LTU","LUX","LVA","MAC","MAF","MAR","MCO","MDA","MDG","MDV","MEX","MHL","MKD","MLI","MLT","MMR","MNE","MNG","MNP","MOZ","MRT","MSR","MTQ","MUS","MWI","MYS","MYT","NAM","NCL","NER","NFK","NGA","NIC","NIU","NLD","NON_USA","NOR","NPL","NRU","NZL","OMN","PAK","PAN","PCN","PER","PHL","PLW","PNG","POL","PRI","PRK","PRT","PRY","PSE","PYF","QAT","REU","ROU","RUS","RWA","SAU","SDN","SEN","SGP","SGS","SHN","SJM","SLB","SLE","SLV","SMR","SOM","SPM","SRB","SSD","STP","SUR","SVK","SVN","SWE","SWZ","SXM","SYC","SYR","TCA","TCD","TGO","THA","TJK","TKL","TKM","TLS","TON","TTO","TUN","TUR","TUV","TWN","TZA","UGA","UKR","UMI","UNKNOWN","URY","USA","UZB","VAT","VCT","VEN","VGB","VIR","VNM","VUT","WLF","WSM","YEM","ZAF","ZMB","ZWE"]},"last_four":{"type":"string","description":"Last four digits of the card."},"name":{"type":"string","description":"The name of the card owner.","nullable":true},"network_token_enabled":{"$ref":"#/components/schemas/network_token_enabled_card"},"network_token_state":{"type":"string","description":"The state of the network token. The possible enum values are as follows:\n\n- `NOT_ENABLED`: The `network_token_state` is `NOT_ENABLED` when the value of `network_token_enabled` on the `Payment Instrument` is `false`.\n- `PENDING`: Immediately after Finix enables network tokens for a specific card, `network_token_state` is initially set to `PENDING`.\n- `ACTIVE`: After Finix receives the network token successfully from the card network, `network_token_state` updates to `ACTIVE`.\n- `FAILED`: In the event that there is an issue with the card network such as service becomes unavailable, `FAILED` is returned.\n- `SUSPENDED`: When the issuing bank does not allow the network token to be used in transactions, `SUSPENDED` is returned.\n- `CLOSED`: In the event that the issuing bank has closed the card permanently, `CLOSED` is returned.\n","enum":["ACTIVE","CLOSED","FAILED","NOT_ENABLED","SUSPENDED","PENDING"]},"payload_type":{"type":"string","enum":["SOURCE","DESTINATION"]},"push_funds_block_indicator":{"type":"string","description":"Details if the card is enabled to receive push-to-card disbursements."},"name_verification_results":{"description":"Details the results of verifying the cardholder's name with the issuing bank. Returns `null` if `name_verification_details` was not included in the request.","allOf":[{"$ref":"#/components/schemas/name_verification_results"}]},"security_code_verification":{"type":"string","enum":["MATCHED","UNKNOWN","UNMATCHED"],"description":"Details the results of the Card Verification Code check."},"third-party":{"type":"string","description":"This field is not applicable to payment cards.","nullable":true},"third_party_token":{"type":"string","description":"This field is not applicable to payment cards.","nullable":true},"type":{"type":"string","enum":["PAYMENT_CARD","TOKEN","GOOGLE_PAY","APPLE_PAY"],"description":"Type of `Payment Instrument`."},"tags":{"$ref":"#/components/schemas/tags"},"_links":{"type":"object","description":"For your convenience, every response includes several URLs which link to resources relevant to the request. You can use these `_links` to make your follow-up requests and quickly access relevant IDs.","properties":{"application":{"type":"object","description":"Link to the `Application` the request was made under.","properties":{"href":{"type":"string"}}},"authorizations":{"type":"object","description":"Link to the `Authorizations` created under the resource.","properties":{"href":{"type":"string"}}},"identity":{"type":"object","description":"Link to the `Identity` the request was made under.","properties":{"href":{"type":"string"}}},"self":{"type":"object","description":"Link to the resource that was used in the request.","properties":{"href":{"type":"string"}}},"transfers":{"type":"object","description":"Link to the `Transfers` created under the resource.","properties":{"href":{"type":"string"}}},"updates":{"type":"object","description":"Link to the `Updates` created under the resource.","properties":{"href":{"type":"string"}}},"verifications":{"type":"object","description":"Link to the `Verification` that was used to verify the `Merchant` that the request was made under.","properties":{"href":{"type":"string"}}}}}}}}}},"schemaResolvedErrors":[]},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response shape is identical to the standard Google Pay path. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["electronic_commerce_indicator_code"]}," value is not echoed back in the response."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"error-responses","__idx":4},"children":["Error Responses"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Scenario"},"children":["Scenario"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Status"},"children":["Status"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Error code"},"children":["Error code"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Message"},"children":["Message"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["number"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["third_party_token"]}," both sent"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["422"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INVALID_FIELD"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Only one of number or third_party_token is allowed in a request."]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Neither ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["number"]}," nor ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["third_party_token"]}," sent"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["422"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INVALID_FIELD"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Either number or third_party_token must be provided"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["electronic_commerce_indicator_code"]}," is not 1 or 2 numeric digits"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["422"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INVALID_FIELD"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["electronic_commerce_indicator_code must be 1 or 2 numeric digits"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Customer is not PCI Level 1 compliant"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["422"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNPROCESSABLE_ENTITY"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Unless you are PCI Level 1 compliant, you must send the encrypted GOOGLE_PAY token in the third_party_token field."]}]}]}]}]}]}]},"headings":[{"value":"Google Pay Passthrough","id":"google-pay-passthrough","depth":1},{"value":"How It Works","id":"how-it-works","depth":2},{"value":"Passthrough Fields","id":"passthrough-fields","depth":2},{"value":"Create a Payment Instrument (Passthrough)","id":"create-a-payment-instrument-passthrough","depth":2},{"value":"Error Responses","id":"error-responses","depth":2}],"frontmatter":{"seo":{"title":"Google Pay Passthrough | Finix Guides","description":"Send Google Pay wallet authentication signals (ECI) to Finix when you decrypt tokens outside of Finix using the passthrough path."},"keywords":{"includes":["Google Pay passthrough","ECI","electronic commerce indicator","wallet passthrough"],"excludes":["Google Pay Android","application","authorization","identity","merchant"]}},"lastModified":"2026-06-23T00:06:08.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/online-payments/digital-wallets/google-pay/google-pay-passthrough","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}