> ## Documentation Index
> Fetch the complete documentation index at: https://developers.ingopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Verify — PayPal / Venmo

> Tokenize a PayPal or Venmo account for push disbursements.



## OpenAPI

````yaml specs/ingopay-verify-paypal-venmo.yaml POST /gateway/verify--paypal-venmo
openapi: 3.0.3
info:
  title: IngoPay API — Verify PayPal (Unverified) / Venmo
  description: >
    Verify support for customer unverified PayPal or Venmo account data and
    tokenize the account for use in a subsequent Process call.


    The Verify method validates and tokenizes the customer's account
    information. The returned `customer_account_token` is used in place of raw
    account data on all future Process requests for the same account.


    **`account_type` determines the target platform:**

    - `PU` — PayPal unverified account

    - `VE` — Venmo


    **`receiver_type` is required when providing raw account data (i.e. when
    `customer_account_token` is not provided). It determines how the `account`
    value is interpreted:**

    - `1` = EMAIL

    - `2` = PHONE

    - `3` = PAYPAL_ID (PayPal `PU` only)

    - `4` = USER_HANDLE (Venmo `VE` only)


    **Mutual exclusivity rules:**

    - Provide either `customer_account_token` **or** raw account fields
      (`account`, `receiver_type`, `recipient_first_name`,
      `recipient_last_name`, `recipient_address1`, `recipient_city`,
      `recipient_state`, `recipient_zip`) — never both.

    - When `customer_account_token` is provided, `receiver_type` and all raw
      account fields are not required and should be omitted.
  version: '11'
  contact:
    name: Ingo Money Developer Support
    url: https://developers.ingomoney.com
servers:
  - url: https://payapi-sandbox.ingo.money
    description: Sandbox
  - url: https://payapi.ingo.money
    description: Production
security:
  - HmacAuth: []
paths:
  /gateway/verify--paypal-venmo:
    post:
      tags:
        - Account Tokenization
      summary: Verify and tokenize an unverified PayPal or Venmo account
      description: >
        Validates a customer's unverified PayPal or Venmo account and returns a
        `customer_account_token` for use in push (Process) requests. Set
        `account_type` to `PU` for PayPal unverified or `VE` for Venmo.
      operationId: verifyPaypalVenmo
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VerifyPaypalVenmoRequest'
            example:
              participant_id: 12345
              account_type: PU
              receiver_type: 1
              participant_unique_id1: 5ced00c4-116d-4786-b1cd-016f7f23dc54
              timestamp: 1598505599
              version: 11
              account: jane.doe@example.com
              recipient_first_name: Alex
              recipient_last_name: Rivera
              recipient_address1: 100 Innovation Way
              recipient_address2: Apt 2
              recipient_city: Anytown
              recipient_state: GA
              recipient_zip: '00000'
              recipient_phone: '5555550100'
              amount: 50.01
              participant_unique_id2: 4259cf7e-ffd2-414a-9c82-cca8a4613e69
              store_id: ''
              terminal_id: ''
              clerk_id: ''
      responses:
        '200':
          description: Verification successful — token returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerifyPaypalVenmoResponse'
              example:
                status: 100
                client_message: Success
                recipient_message: Success
                data:
                  customer_account_token: a3650c4f-60e3-4f80-ba4b-b79055e20007
                  last_4: k6Aw
                  expiration_date: ''
                  request_timestamp: 1598505603
                  issuers:
                    - payee_id: '614004'
                      payee_name: Paypal
                      payee_address: ''
                      payee_city: ''
                      payee_state: ''
                      payee_zip: ''
                      credit_info:
                        min: '0.01'
                        max: '10000.00'
                        card_type: NA
                        estimated_posting_time: Payment will post within 5 minutes.
                        estimated_posting_date: 04/21/2026
                      issuing_network: NA
                      credit_enabled: 1
                      debit_enabled: 0
                  participant_unique_id1: 5ced00c4-116d-4786-b1cd-016f7f23dc54
                  participant_unique_id2: 4259cf7e-ffd2-414a-9c82-cca8a4613e69
                  count: 1
                time: '2.4577'
        '400':
          description: Validation error — check request body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 700
                client_message: Account not currently available for payment
                data:
                  request_timestamp: 1598505603
components:
  schemas:
    VerifyPaypalVenmoRequest:
      type: object
      required:
        - participant_id
        - account_type
        - participant_unique_id1
        - timestamp
        - version
      description: >
        Provide either `customer_account_token` or the full set of raw account
        fields (`account`, `receiver_type`, `recipient_first_name`,
        `recipient_last_name`, `recipient_address1`, `recipient_city`,
        `recipient_state`, `recipient_zip`) — never both.
      properties:
        participant_id:
          type: integer
          description: Unique participant identifier assigned by Ingo.
          example: 12345
        account_type:
          type: string
          enum:
            - PU
            - VE
          minLength: 1
          description: >
            Indicates the type of transaction. `PU` = PayPal unverified account
            payout transaction, `VE` = Venmo payout transaction.
          example: PU
        receiver_type:
          type: integer
          enum:
            - 1
            - 2
            - 3
            - 4
          description: >
            Required when `customer_account_token` is not provided. Determines
            how the `account` value is interpreted. 1 = EMAIL, 2 = PHONE, 3 =
            PAYPAL_ID (PayPal `PU` only), 4 = USER_HANDLE (Venmo `VE` only).
          example: 1
        participant_unique_id1:
          type: string
          minLength: 1
          maxLength: 254
          description: >
            Participant assigned ID for the disbursement. Should be carried
            forward to the process request for tracking purposes. Must not
            contain NPI data.
          example: 5ced00c4-116d-4786-b1cd-016f7f23dc54
        timestamp:
          type: integer
          format: int64
          description: Unix timestamp of the request.
          example: 1598505599
        version:
          type: integer
          description: API version of the request. Current version is 11.
          example: 11
        customer_account_token:
          type: string
          minLength: 1
          maxLength: 254
          nullable: true
          description: >
            Alternative to raw account data when the account was previously
            tokenized. If provided, `receiver_type` and all raw account fields
            (`account`, `recipient_first_name`, `recipient_last_name`,
            `recipient_address1`, `recipient_city`, `recipient_state`,
            `recipient_zip`) are not required and should be omitted.
          example: a3650c4f-60e3-4f80-ba4b-b79055e20007
        account:
          type: string
          minLength: 1
          maxLength: 254
          description: >
            Value used to identify the receiving account. Required unless
            `customer_account_token` is provided. Interpretation depends on
            `receiver_type`: EMAIL address, phone number, PayPal ID, or Venmo
            user handle.
          example: jane.doe@example.com
        recipient_first_name:
          type: string
          minLength: 1
          maxLength: 254
          description: >
            Recipient first name. Required unless `customer_account_token` is
            provided.
          example: Jane
        recipient_last_name:
          type: string
          minLength: 1
          maxLength: 254
          description: >
            Recipient last name. Required unless `customer_account_token` is
            provided.
          example: Doe
        recipient_address1:
          type: string
          minLength: 1
          maxLength: 254
          description: >
            Recipient address line 1. Required unless `customer_account_token`
            is provided.
          example: 123 Main St
        recipient_city:
          type: string
          minLength: 1
          maxLength: 254
          description: >
            Recipient city. Required unless `customer_account_token` is
            provided.
          example: Atlanta
        recipient_state:
          type: string
          minLength: 2
          maxLength: 2
          pattern: >-
            ^(?:A[LKSZRAEP]|C[AOT]|D[EC]|F[LM]|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEHINOPST]|N[CDEHJMVY]|O[HKR]|P[ARW]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$
          description: >
            Recipient state (standard US postal abbreviation). Required unless
            `customer_account_token` is provided.
          example: GA
        recipient_zip:
          type: string
          maxLength: 10
          pattern: ^[0-9]{5}(?:-[0-9]{4})?$
          nullable: true
          description: >
            Recipient zip code. 5-digit zip or zip+4 in xxxxx-xxxx format.
            Required unless `customer_account_token` is provided.
          example: '30313'
        recipient_address2:
          type: string
          maxLength: 254
          nullable: true
          description: Optional recipient address line 2.
          example: Apt 2
        recipient_business_name:
          type: string
          maxLength: 150
          nullable: true
          description: Optional recipient business name.
          example: Doe Enterprises
        recipient_phone:
          type: string
          maxLength: 10
          nullable: true
          description: Optional 10-digit recipient phone number.
          example: '5551234567'
        recipient_email:
          type: string
          maxLength: 254
          nullable: true
          description: Optional recipient email address.
          example: jane.doe@example.com
        amount:
          type: number
          format: float
          minimum: 0.01
          nullable: true
          description: Dollar amount of disbursement.
          example: 50.01
        participant_unique_id2:
          type: string
          maxLength: 254
          nullable: true
          description: >
            Optional second participant assigned ID for the disbursement. This
            value should be the same on all activity pertaining to a
            disbursement attempt.
          example: 4259cf7e-ffd2-414a-9c82-cca8a4613e69
        store_id:
          type: string
          maxLength: 254
          nullable: true
          description: |
            Client assigned store ID. Required for Retail client participants.
          example: STORE-001
        terminal_id:
          type: string
          maxLength: 254
          nullable: true
          description: >
            Client assigned terminal ID. Required for Retail client
            participants.
          example: TERM-042
        clerk_id:
          type: string
          maxLength: 254
          nullable: true
          description: |
            Client assigned clerk ID. Required for Retail client participants.
          example: CLK-007
    VerifyPaypalVenmoResponse:
      type: object
      properties:
        status:
          type: integer
          description: >
            Numeric code describing the status of the API request. 100 =
            Success.
          example: 100
        client_message:
          type: string
          description: Text description associated with the status code.
          example: Success
        recipient_message:
          type: string
          description: |
            Text description associated with the status code for the recipient.
          example: Success
        data:
          type: object
          properties:
            customer_account_token:
              type: string
              description: >
                GUID — unique value generated per API call request. Use this
                token in all subsequent Process requests for this account.
              example: a3650c4f-60e3-4f80-ba4b-b79055e20007
            last_4:
              type: string
              description: The last 4 characters of the account value.
              example: k6Aw
            expiration_date:
              type: string
              nullable: true
              description: >
                Expiration date associated with the account, if applicable.
                Returns empty string for PayPal and Venmo accounts.
              example: ''
            request_timestamp:
              type: integer
              format: int64
              description: Unix timestamp of the request.
              example: 1598505603
            issuers:
              type: array
              description: Information about the issuer of the account.
              items:
                type: object
                properties:
                  payee_id:
                    type: string
                    description: The Ingo assigned ID for the payee.
                    example: '614004'
                  payee_name:
                    type: string
                    description: Name of payee.
                    example: Paypal
                  payee_address:
                    type: string
                    nullable: true
                    description: Payee address.
                    example: ''
                  payee_city:
                    type: string
                    nullable: true
                    description: Payee city.
                    example: ''
                  payee_state:
                    type: string
                    nullable: true
                    description: Payee state.
                    example: ''
                  payee_zip:
                    type: string
                    nullable: true
                    description: Payee zip code.
                    example: ''
                  credit_info:
                    type: object
                    nullable: true
                    description: >
                      Information regarding limits for push (credit)
                      transactions. Returned if participant is enabled for push
                      processing.
                    properties:
                      min:
                        type: string
                        description: Minimum amount accepted for a push transaction.
                        example: '0.01'
                      max:
                        type: string
                        description: Maximum amount accepted for a push transaction.
                        example: '10000.00'
                      card_type:
                        type: string
                        description: >
                          Account type identifier. Returns `NA` for PayPal and
                          Venmo accounts.
                        example: NA
                      estimated_posting_time:
                        type: string
                        description: Estimated posting time narrative.
                        example: Payment will post within 5 minutes.
                      estimated_posting_date:
                        type: string
                        description: Estimated posting date.
                        example: 04/21/2026
                  issuing_network:
                    type: string
                    description: >
                      Issuing network identifier. Returns `NA` for PayPal and
                      Venmo accounts.
                    example: NA
                  credit_enabled:
                    type: integer
                    enum:
                      - 0
                      - 1
                    description: >
                      Whether the account is enabled for push (credit)
                      transactions. 1 = Enabled, 0 = Not enabled.
                    example: 1
                  debit_enabled:
                    type: integer
                    enum:
                      - 0
                      - 1
                    description: >
                      Whether the account is enabled for pull (debit)
                      transactions. 1 = Enabled, 0 = Not enabled.
                    example: 0
                  velocity:
                    type: string
                    description: >-
                      Estimated transaction posting date-time attribute assigned
                      by Ingo.
                    example: '2026-04-30T12:00:00Z'
            participant_unique_id1:
              type: string
              description: >
                Participant assigned ID for the verify request. Should be
                carried forward to the process request for tracking purposes.
              example: 5ced00c4-116d-4786-b1cd-016f7f23dc54
            participant_unique_id2:
              type: string
              nullable: true
              description: >
                Optional second participant assigned ID for the verify request.
                Can also be carried forward to the process request for tracking
                purposes.
              example: 4259cf7e-ffd2-414a-9c82-cca8a4613e69
            count:
              type: integer
              description: Always returns 1.
              example: 1
        time:
          type: string
          description: Time in seconds to complete the request.
          example: '2.4577'
        validation_errors:
          type: string
          nullable: true
          description: >
            Provides additional detail on validation type errors when
            applicable.
          example: null
    ErrorResponse:
      type: object
      properties:
        status:
          type: integer
          example: 700
        client_message:
          type: string
          example: Account not currently available for payment
        data:
          type: object
          properties:
            request_timestamp:
              type: integer
              format: int64
              example: 1598505603
  securitySchemes:
    HmacAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        HMAC-SHA512 signed Authorization header. See the Authentication page for
        the complete signing guide.

````