FormOfPayment
Stay organized with collections
Save and categorize content based on your preferences.
All rights reserved. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-07-29 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-29 UTC."],[[["\u003cp\u003eFormOfPayment indicates the user's payment method, which can be 'noneChosen', 'issuerId', or 'card'.\u003c/p\u003e\n"],["\u003cp\u003e'noneChosen' means the user hasn't selected a payment method yet.\u003c/p\u003e\n"],["\u003cp\u003e'issuerId' represents a specific bank or e-wallet chosen by the user, identified by a unique Google-defined ID.\u003c/p\u003e\n"],["\u003cp\u003e'card' provides details about the user's payment card, including account number, name, and potentially expiry and CVN.\u003c/p\u003e\n"]]],["The document details three potential forms of payment (FOP) represented in JSON: `noneChosen`, `issuerId`, and `card`. `noneChosen` indicates the user hasn't selected a payment method, requiring the payment integrator to present a selection UI. `issuerId` is a Google-provided unique identifier for a specific issuer, like a bank. `card` represents a user's payment card account, requiring fields like `accountNumber`, and `nameOnCard`. The `issuerId` and `card` have specific fields to fulfill.\n"],null,["# FormOfPayment\n\n- [JSON representation](#SCHEMA_REPRESENTATION)\n- [IssuerId](#IssuerId)\n - [JSON representation](#IssuerId.SCHEMA_REPRESENTATION)\n- [Card](#Card)\n - [JSON representation](#Card.SCHEMA_REPRESENTATION)\n\nThe form of payment (FOP) that the user already selected for this payment. If the user made no choice or it does not apply, this will be set to `noneChosen`.\n\n| JSON representation |\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { // Union field `fop` can be only one of the following: \"noneChosen\": { object (/pay/redirect-fop-v1/payment-integrator-redirect-fop-api/Empty) }, \"issuerId\": { object (/pay/redirect-fop-v1/payment-integrator-redirect-fop-api/FormOfPayment#IssuerId) }, \"card\": { object (/pay/redirect-fop-v1/payment-integrator-redirect-fop-api/FormOfPayment#Card) } // End of list of possible types for union field `fop`. } ``` |\n\n| Fields ||\n|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Union field `fop`. **REQUIRED** : The form of payment the user selected for this payment. `fop` can be only one of the following: ||\n| `noneChosen` | `object (`[Empty](/pay/redirect-fop-v1/payment-integrator-redirect-fop-api/Empty)`)` The user has not chosen any specific form of payment. For redirect payments where the user needs to select a FOP, the integrator should present a FOP selection UI upon redirect. |\n| `issuerId` | `object (`[IssuerId](/pay/redirect-fop-v1/payment-integrator-redirect-fop-api/FormOfPayment#IssuerId)`)` The Google-generated unique identifier of the issuer that the user wants to use for this payment. This identifier represents a specific bank / ewallet / etc. Google will maintain a hard-coded mapping of available issuers and their IDs. The payment integrator should notify Google when a change is required. |\n| `card` | `object (`[Card](/pay/redirect-fop-v1/payment-integrator-redirect-fop-api/FormOfPayment#Card)`)` User's payment card account. |\n\nIssuerId\n--------\n\nA unique identifier for an issuer of user accounts.\n\n| JSON representation |\n|-----------------------------|\n| ``` { \"value\": string } ``` |\n\n| Fields ||\n|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `value` | `string` **REQUIRED**: The string value of the identifier. This unique identifier is defined by Google. Google will share a list with the identifiers for all external issuers available through the payment integrator. |\n\nCard\n----\n\nDescription of a payment card account (i.e., credit card, debit card, charge card).\n\n| JSON representation |\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"accountNumber\": string, \"nameOnCard\": string, \"expiryMonth\": string, \"expiryYear\": string, \"cvn\": string, \"issuanceDateMonth\": string, \"issuanceDateYear\": string } ``` |\n\n| Fields ||\n|---------------------|--------------------------------------------------------------------------------------------------------------|\n| `accountNumber` | `string` **REQUIRED**: The account number itself (i.e., the FPAN). |\n| `nameOnCard` | `string` **REQUIRED**: The customer's name as it appears on the card. |\n| `expiryMonth` | `string` **OPTIONAL** : Expiration month, formatted `MM`. |\n| `expiryYear` | `string` **OPTIONAL** : Expiration year, formatted `YY`. |\n| `cvn` | `string` **OPTIONAL**: If Google collected the CVN from the user it is provided here and should be verified. |\n| `issuanceDateMonth` | `string` **OPTIONAL** : Issuance month, formatted `MM`. |\n| `issuanceDateYear` | `string` **OPTIONAL** : Issuance year, formatted `YY`. |"]]