Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Reference Google Pay API
version: 1.0.0
servers:
- url: https://api.sandbox.mangopay.com
description: Sandbox
- url: https://api.mangopay.com
description: Production
- url: https://api-mtls.sandbox.mangopay.com
description: mTLS Sandbox
- url: https://api-mtls.mangopay.com
description: mTLS Production
- url: '%7BCardRegistrationUrl%7D'
description: "The full dynamic URL returned by the Create a Card Registration call, including host, path, and query parameters. \n"
- url: '%7BSettlementFileUploadUrl%7D'
description: 'The unique URL returned by the [POST Create a Settlement and secure URL](/api-reference/settlements/create-settlement) endpoint.
**Note:** Use the full dynamic URL including the host, path, and all query parameters. The URL is already authenticated, so this call does not require an Authorization header.
'
tags:
- name: googlePay
paths:
/v2.01/{ClientId}/payins/payment-methods/googlepay:
post:
operationId: googlePay_create_google_pay_payin
summary: Create a Google Pay PayIn
tags:
- googlePay
parameters:
- name: ClientId
in: path
description: Platform's API account identifier, associated with the API key.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/GooglePayPayInResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAGooglePayPayInRequest'
security:
- oauth2: []
components:
schemas:
SecureModeReturnURL:
type: string
description: 'Max. length: 255 characters
The URL to which users are automatically returned after 3DS2 if it is triggered (i.e., if the `SecureModeNeeded` parameter is set to `true`).'
title: SecureModeReturnURL
Address_SubPropsRequired:
type: object
properties:
AddressLine1:
type: string
description: The first line of the address.
AddressLine2:
type: string
description: The second line of the address.
City:
type: string
description: The city of the address.
Region:
type: string
description: Required if `Country` is US, CA, or MX. The region of the address.
PostalCode:
type: string
description: 'The postal code of the address. The postal code can contain the following characters: alphanumeric, dashes, and spaces.'
Country:
type: string
description: 'Format: Two-letter country code ([ISO 3166-1 alpha-2 format](/api-reference/overview/data-formats))
The country of the address.'
required:
- AddressLine1
- City
- PostalCode
- Country
description: The postal address.
title: Address_SubPropsRequired
AuthenticationResult:
type: object
properties:
AuthenticationType:
type:
- string
- 'null'
description: '**Returned values:** `CHALLENGE`, `FRICTIONLESS`, `DIRECT_AUTHORIZATION`
The type of authentication:
- `CHALLENGE` – The issuer requested SCA to be enforced (for example, using 3DS).
- `FRICTIONLESS` – The transaction was exempted from SCA because an exemption was granted by the issuer.
- `DIRECT_AUTHORIZATION` – The transaction was sent to the issuer for authorization without any frictionless or challenge (for example, if SCA doesn''t apply). A `null` value typically indicates that authentication was not requested (for example, because the request failed before being sent) or a decision was not received.
A `null` value typically indicates that authentication was not requested (for example, because the request failed before being sent) or a decision was not received.'
description: Information about the authentication result, based on the request made by Mangopay and the decision of the issuer regarding the type of authentication to be enforced (if applicable).
title: AuthenticationResult
Amount:
type: integer
description: The amount of the currency in its minor unit. For example, EUR 12.60 would be represented as `1260` whereas JPY 12 would be represented as just `12`.
title: Amount
FlowDescriptorRequestBeneficiariesItems:
type: object
properties:
UserId:
type: string
description: The unique identifier of the Natural User or Legal User declared as a beneficiary of the pay-in.
title: FlowDescriptorRequestBeneficiariesItems
GooglePayPayInResponseCreditedFunds:
type: object
properties:
Currency:
$ref: '#/components/schemas/Currency'
Amount:
$ref: '#/components/schemas/Amount'
description: Information about the credited funds (`CreditedFunds` = `DebitedFunds` - `Fees`).
title: GooglePayPayInResponseCreditedFunds
FlowDescriptorResponseBeneficiariesItems:
type: object
properties:
UserId:
type: string
description: The unique identifier of the Natural User or Legal User declared as a beneficiary of the pay-in.
title: FlowDescriptorResponseBeneficiariesItems
TransactionExecutionDate:
type: integer
description: Unix timestamp (UTC) of the date and time the status changed to `SUCCEEDED`, indicating that the transaction occurred. The statuses `CREATED` and `FAILED` return an `ExecutionDate` of `null`.
title: TransactionExecutionDate
GooglePayPayInResponseFees:
type: object
properties:
Currency:
$ref: '#/components/schemas/Currency'
Amount:
$ref: '#/components/schemas/Amount'
description: Information about the fees taken by the platform for this transaction (and hence transferred to the Fees Wallet).
title: GooglePayPayInResponseFees
AuthorId:
type: string
description: The unique identifier of the user at the source of the transaction.
title: AuthorId
ProfilingAttemptReference:
type: string
description: 'The unique reference generated for the profiling session, used by the <a href="/guides/fraud-prevention">fraud prevention</a> solution to produce recommendations for the transaction using the profiling data.
**Note:** Parameter not returned by the API. Profiling feature available on request – contact Mangopay <a href="https://hub.mangopay.com/" target="_blank">via the Dashboard</a> for more information.'
title: ProfilingAttemptReference
FlowDescriptorRequest:
type: object
properties:
Beneficiaries:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/FlowDescriptorRequestBeneficiariesItems'
description: 'Max. length: 5 items
The list of up to 5 Natural or Legal Users declared as beneficiaries of the pay-in and its subsequent transfers, who must all be KYC/KYB verified when the pay-in request is made. The pay-in also fails if the `Beneficiaries` array contains nulled objects or invalid `UserId` values.'
description: "Information about the Owner beneficiaries targeted by the pay-in and its subsequent transfers, who must all be KYC/KYB verified when the pay-in request is made ([read more](/guides/payin-beneficiaries)).\n\nIf the `FlowDescriptor.Beneficiaries` is sent in the API request, then:\n- The transaction's `CreditedWalletId` holder is disregarded in KYC/KYB checks.\n- **ALL** `UserId` values in the array must be one of:\n - `OWNER` whose `KYCLevel` is `REGULAR`\n - `PLATFORM`\n \nThe pay-in `Status` becomes `FAILED` with `ResultCode` [002951](/errors/codes/002951) if at least one `FlowDescriptor.Beneficiaries.UserId` is:\n- `PAYER`\n- `OWNER` whose `KYCLevel` is `LIGHT`\n\nIf the `FlowDescriptor.Beneficiaries` is not sent in the API request, then the `CreditedWalletId` holder is subject to KYC/KYB checks. This property is optional for backwards compatibility but is recommended for all pay-in flows, even when the `CreditedWalletId` holder is a `PAYER` or the same value as one of the `FlowDescriptor.Beneficiaries`. \n"
title: FlowDescriptorRequest
Shipping_DefaultsBillingUser_Response:
type: object
properties:
FirstName:
type: string
description: The first name of the user.
LastName:
type: string
description: The last name of the user.
Address:
$ref: '#/components/schemas/Address_SubPropsRequired'
description: '**Default values:** `FirstName`, `LastName`, and `Address` information of the `Billing` object if sent, otherwise of the `AuthorId` (if address values present).
Information about the shipping address. '
title: Shipping_DefaultsBillingUser_Response
Billing_DefaultsShippingUser_Request:
type: object
properties:
FirstName:
type: string
description: The first name of the user.
LastName:
type: string
description: The last name of the user.
Address:
$ref: '#/components/schemas/Address_SubPropsRequired'
description: '**Default values:** `FirstName`, `LastName`, and `Address` information of the `Shipping` object if sent, otherwise of the `AuthorId` (if address values present).
Information about the billing address. '
title: Billing_DefaultsShippingUser_Request
TransactionStatus:
type: string
description: '**Returned values:** `CREATED`, `SUCCEEDED`, `FAILED`
The status of the transaction.'
title: TransactionStatus
Shipping_DefaultsBillingUser_Request:
type: object
properties:
FirstName:
type: string
description: The first name of the user.
LastName:
type: string
description: The last name of the user.
Address:
$ref: '#/components/schemas/Address_SubPropsRequired'
description: '**Default values:** `FirstName`, `LastName`, and `Address` information of the `Billing` object if sent, otherwise of the `AuthorId` (if address values present).
Information about the shipping address. '
title: Shipping_DefaultsBillingUser_Request
GooglePayPayInResponseDebitedFunds:
type: object
properties:
Currency:
$ref: '#/components/schemas/Currency'
Amount:
$ref: '#/components/schemas/Amount'
description: Information about the debited funds.
title: GooglePayPayInResponseDebitedFunds
ResultMessage:
type: string
description: The explanation of the result code.
title: ResultMessage
FlowDescriptorResponse:
type: object
properties:
FlowId:
type: string
description: Unique identifier of the payment flow, used by Mangopay for internal purposes.
Beneficiaries:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/FlowDescriptorResponseBeneficiariesItems'
description: 'Max. length: 5 items
The list of up to 5 Natural or Legal Users declared as beneficiaries of the pay-in, who must all be KYC/KYB verified when the pay-in request is made. The pay-in also fails if the `Beneficiaries` array contains nulled objects or invalid `UserId` values.'
description: "Information about the Owner beneficiaries targeted by the pay-in and its subsequent transfers, who must all be KYC/KYB verified when the pay-in request is made ([read more](/guides/payin-beneficiaries)).\n\nIf the `FlowDescriptor.Beneficiaries` is sent in the API request, then:\n- The transaction's `CreditedWalletId` holder is disregarded in KYC/KYB checks.\n- **ALL** `UserId` values in the array must be one of:\n - `OWNER` whose `KYCLevel` is `REGULAR`\n - `PLATFORM`\n \nThe pay-in `Status` becomes `FAILED` with `ResultCode` [002951](/errors/codes/002951) if at least one `FlowDescriptor.Beneficiaries.UserId` is:\n- `PAYER`\n- `OWNER` whose `KYCLevel` is `LIGHT`\n\nIf the `FlowDescriptor.Beneficiaries` is not sent in the API request, then the `CreditedWalletId` holder is subject to KYC/KYB checks. This property is optional for backwards compatibility but is recommended for all pay-in flows, even when the `CreditedWalletId` holder is a `PAYER` or the same value as one of the `FlowDescriptor.Beneficiaries`.\n"
title: FlowDescriptorResponse
Currency:
type: string
description: '**Allowed values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings).
The currency of the amount.'
title: Currency
CreateAGooglePayPayInRequestDebitedFunds:
type: object
properties:
Currency:
$ref: '#/components/schemas/Currency'
Amount:
$ref: '#/components/schemas/Amount'
required:
- Currency
- Amount
description: Information about the debited funds.
title: CreateAGooglePayPayInRequestDebitedFunds
StatementDescriptor_22:
type: string
description: 'Max. length: 22 characters; only alphanumeric and spaces
Custom description to appear on the user’s bank statement along with the platform name. Different banks may show more or less information. See the <a href="/bank-statements">Customizing bank statement references</a> article for details.'
title: StatementDescriptor_22
Address:
type: object
properties:
AddressLine1:
type: string
description: The first line of the address.
AddressLine2:
type: string
description: The second line of the address.
City:
type: string
description: The city of the address.
Region:
type: string
description: Required if `Country` is US, CA, or MX. The region of the address.
PostalCode:
type: string
description: 'The postal code of the address. The postal code can contain the following characters: alphanumeric, dashes, and spaces.'
Country:
type: string
description: 'Format: Two-letter country code ([ISO 3166-1 alpha-2 format](/api-reference/overview/data-formats))
The country of the address.'
description: The postal address.
title: Address
TransactionNature:
type: string
description: '**Returned values:** `REGULAR`, `REPUDIATION`, `REFUND`, `SETTLEMENT`
The nature of the transaction, providing more information about the context in which the transaction occurred:
- `REGULAR` – Relative to most of the transactions (pay-ins, payouts, and transfers) in a usual workflow.
- `REPUDIATION` – Automatic withdrawal of funds from the platform''s repudiation wallet as part of the dispute process (when the user has requested a chargeback).
- `REFUND` – Reimbursement of a transaction to the user (pay-in refund), to a wallet (transfer refund), or of a payout (payout refund, only initiated by Mangopay).
- `SETTLEMENT` – Transfer made to the repudiation wallet by the platform to settle a lost dispute.'
title: TransactionNature
GooglePayPayInResponse:
type: object
properties:
Id:
$ref: '#/components/schemas/Id'
Tag:
$ref: '#/components/schemas/Tag'
CreationDate:
$ref: '#/components/schemas/CreationDate'
AuthorId:
$ref: '#/components/schemas/AuthorId'
FlowDescriptor:
$ref: '#/components/schemas/FlowDescriptorResponse'
DebitedFunds:
$ref: '#/components/schemas/GooglePayPayInResponseDebitedFunds'
description: Information about the debited funds.
CreditedFunds:
$ref: '#/components/schemas/GooglePayPayInResponseCreditedFunds'
description: Information about the credited funds (`CreditedFunds` = `DebitedFunds` - `Fees`).
Fees:
$ref: '#/components/schemas/GooglePayPayInResponseFees'
description: Information about the fees taken by the platform for this transaction (and hence transferred to the Fees Wallet).
Status:
$ref: '#/components/schemas/TransactionStatus'
ResultCode:
$ref: '#/components/schemas/ResultCode'
ResultMessage:
$ref: '#/components/schemas/ResultMessage'
ExecutionDate:
$ref: '#/components/schemas/TransactionExecutionDate'
Type:
$ref: '#/components/schemas/TransactionType'
Nature:
$ref: '#/components/schemas/TransactionNature'
CreditedWalletId:
type: string
description: The unique identifier of the credited wallet.
PaymentType:
type: string
description: '**Returned values:** `GOOGLE_PAY`
The payment type of the pay-in.'
ExecutionType:
type: string
description: '**Returned values:** `DIRECT`
The execution type of the pay-in.'
StatementDescriptor:
$ref: '#/components/schemas/StatementDescriptor_22'
SecureModeNeeded:
type: boolean
description: Whether or not the `SecureMode` was used.
Billing:
$ref: '#/components/schemas/Billing_DefaultsShippingUser_Response'
Shipping:
$ref: '#/components/schemas/Shipping_DefaultsBillingUser_Response'
BrowserInfo:
$ref: '#/components/schemas/BrowserInfo'
IpAddress:
$ref: '#/components/schemas/IpAddress'
CardInfo:
$ref: '#/components/schemas/CardInfo'
AuthenticationResult:
$ref: '#/components/schemas/AuthenticationResult'
description: 'A one-time Google Pay pay-in:
- `PaymentType` – `GOOGLE_PAY`
- `ExecutionType` – `DIRECT`
- Object does not include `RecurringPayinRegistrationId`'
title: GooglePayPayInResponse
IpAddress:
type: string
description: The IP address of the end user initiating the transaction, in IPV4 or IPV6 format.
title: IpAddress
Tag:
type: string
description: 'Max. length: 255 characters
Custom data that you can add to this object, such as unique identifiers in your system. To store multiple values, you can serialize them into a single string, for example a JSON object: `"{\"id_1\":AB123,\"id_2\":DE456}"`.'
title: Tag
CreationDate:
type: integer
description: Unix timestamp (UTC) of the date and time the object was created.
title: CreationDate
Billing_DefaultsShippingUser_Response:
type: object
properties:
FirstName:
type: string
description: The first name of the user.
LastName:
type: string
description: The last name of the user.
Address:
$ref: '#/components/schemas/Address'
description: '**Default values:** `FirstName`, `LastName`, and `Address` information of the `Shipping` object if sent, otherwise of the `AuthorId` (if address values present).
Information about the billing address. '
title: Billing_DefaultsShippingUser_Response
Id:
type: string
description: 'Max length: 128 characters (see [data formats](/api-reference/overview/data-formats) for details)
The unique identifier of the object.'
title: Id
BrowserInfo:
type: object
properties:
AcceptHeader:
type: string
description: The exact content of the HTTP accept headers as sent to the platform from the end user's browser.
JavaEnabled:
type: boolean
description: Whether or not the end user's browser has the ability to execute Java.
Language:
type: string
description: 'Format: Two-letter language code (ISO 639-1 alpha-2) followed by two-letter country code (ISO 3166-1 alpha-2), separated by a hyphen (example: `en-US`; pattern:`^[a-zA-Z]{2}(-[a-zA-Z]{2})?$`)
The language of the browser.'
ColorDepth:
type: integer
description: The value representing the depth of the screen's color palette for displaying images, in bits per pixel.
ScreenHeight:
type: integer
description: The height of the screen in pixels.
ScreenWidth:
type: integer
description: The width of the screen in pixels.
TimeZoneOffset:
type: integer
description: The difference in minutes between the browser's timezone and UTC.
UserAgent:
type: string
description: The exact content of the HTTP User-Agent header.
JavascriptEnabled:
type: boolean
description: Whether or not the end user's browser has the ability to execute JavaScript.
required:
- AcceptHeader
- JavaEnabled
- Language
- ColorDepth
- ScreenHeight
- ScreenWidth
- TimeZoneOffset
- UserAgent
- JavascriptEnabled
description: Information about the browser used by the end user (author) to perform the payment.
title: BrowserInfo
ResultCode:
type: string
description: The code indicating the result of the operation. This information is mostly used to <a href="/errors/codes">handle errors</a> or for filtering purposes.
title: ResultCode
TransactionType:
type: string
description: '**Returned values:** `PAYIN`, `TRANSFER`, `CONVERSION`, `PAYOUT`
The type of the transaction.'
title: TransactionType
CreateAGooglePayPayInRequest:
type: object
properties:
AuthorId:
$ref: '#/components/schemas/AuthorId'
CreditedWalletId:
type: string
description: The unique identifier of the credited wallet.
FlowDescriptor:
$ref: '#/components/schemas/FlowDescriptorRequest'
DebitedFunds:
$ref: '#/components/schemas/CreateAGooglePayPayInRequestDebitedFunds'
description: Information about the debited funds.
Fees:
$ref: '#/components/schemas/CreateAGooglePayPayInRequestFees'
description: Information about the fees.
StatementDescriptor:
$ref: '#/components/schemas/StatementDescriptor_22'
Tag:
$ref: '#/components/schemas/Tag'
IpAddress:
$ref: '#/components/schemas/IpAddress'
SecureModeReturnURL:
$ref: '#/components/schemas/SecureModeReturnURL'
SecureMode:
type: string
description: '**Allowed values:** `DEFAULT`, `FORCE`, `NO_CHOICE`
**Default value:** `DEFAULT`
The mode applied for the 3DS2 protocol for CB, Visa, and Mastercard. The options are:
- `DEFAULT` – Requests an exemption to strong customer authentication (SCA), and thus a frictionless payment experience, if allowed by your Mangopay contract and accepted by the issuer.
- `FORCE` – Requests SCA.
- `NO_CHOICE` – Leaves the choice to the issuer whether to allow for a frictionless payment experience or to enforce SCA. '
BrowserInfo:
$ref: '#/components/schemas/BrowserInfo'
PaymentData:
type: string
description: The data returned by Google Pay containing information about the payment.
Billing:
$ref: '#/components/schemas/Billing_DefaultsShippingUser_Request'
Shipping:
$ref: '#/components/schemas/Shipping_DefaultsBillingUser_Request'
ProfilingAttemptReference:
$ref: '#/components/schemas/ProfilingAttemptReference'
required:
- AuthorId
- CreditedWalletId
- DebitedFunds
- Fees
- IpAddress
- SecureModeReturnURL
- BrowserInfo
- PaymentData
title: CreateAGooglePayPayInRequest
CardInfo:
type: object
properties:
BIN:
type: string
description: The bank identification number (BIN) of the card.
IssuingBank:
type: string
description: The name of the bank that issued the card.
IssuerCountryCode:
type: string
description: The country code of the card issuer.
Type:
type: string
description: The type of card (for example, `CREDIT` or `DEBIT`).
SubType:
type:
- string
- 'null'
description: The sub-type of the card, if available.
Brand:
type: string
description: The card brand (for example, `VISA` or `MASTERCARD`).
description: Information about the card used for the transaction. If the information or data is not available, `null` is returned.
title: CardInfo
CreateAGooglePayPayInRequestFees:
type: object
properties:
Currency:
$ref: '#/components/schemas/Currency'
Amount:
$ref: '#/components/schemas/Amount'
description: Information about the fees.
title: CreateAGooglePayPayInRequestFees
securitySchemes:
oauth2:
type: http
scheme: bearer
description: "Bearer authentication of the form `Bearer <token>`, where token is your auth token. \n\nIf your platform is using a [proxy](/guides/sca/proxy-management) to take SCA-triggering action on behalf of users, you also need to integrate [mTLS authentication](/guides/sca/platform) and use the `api-mtls` base URL."
x-provenance:
method: harvested
publisher: Mangopay
source: https://docs.mangopay.com/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)