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

# Request money

> Creates a request-money event from originator to beneficiary.



## OpenAPI

````yaml /raas/swagger-partner.json post /user/operations/request-money-v2/{userToken}
openapi: 3.0.0
info:
  title: ''
  version: 0.0.1
servers:
  - url: https://raas-partner-cv.nomas.cash/v1
security: []
paths:
  /user/operations/request-money-v2/{userToken}:
    post:
      tags:
        - Operations
      summary: Request money
      description: Creates a request-money event from originator to beneficiary.
      operationId: requestMoneyV2
      parameters:
        - description: User identifier.
          in: path
          name: userToken
          required: true
          schema:
            type: string
      requestBody:
        description: Credentials and corridor id for the request.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestMoneyPartnerParams'
            example:
              requestTo: '+19166014999'
              correlationId: 7011cefb-0c0b-48c1-a68a-7134d32e61e4
              destinationPaymentMethodId: 6af8e158-be29-422a-8d69-703d6c343c3c
              reason: Request CrossBorder to ...
              recipientAmount: 25
              recipientCurrency: USD
      responses:
        '200':
          description: >-
            **200 — OK.** Request-money operation created.


            **Scenarios for this response**:


            | Scenario | How to reproduce | Typical `code` / body |

            |------------|------------------|------------------------|

            | Happy path | Valid `userToken`, corridor, destination PM, and
            payload. | `OperationResponsePartner` |


            See also [Full scenario
            matrix](/raas/guides/testing-sandbox#request-money-v2-scenario-matrix).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationResponsePartner'
              example:
                attributionLink: https://links-dev.nomas.cash/EFUb8
                createdAt: /Date(1776102856022)/
                status: Sent
                code: Ze2i4o
                correlationId: b6bf4bcd-7751-426b-86c6-1b3d72ee5a02
                fromUser:
                  country: US
                  phoneNumber: '+19163015400'
                  firstName: Jose
                  lastName: Llontop
                  userId: '0'
                toUser:
                  country: MX
                  phoneNumber: '+5215521206706'
                  firstName: Maria
                  lastName: Garcia
                  email: ''
                  userId: d8491cd95cae4fa0ad45d765021adbbb
                sourcePaymentMethod: {}
                destinationPaymentMethod:
                  isPrimary: false
                  number: tok_sandbox_9PNgfqqpdpyQpnD1jYkdw1_1111
                  type: DebitCard
                amount: 500
                currency: MXN
                senderAmount: 500
                senderCurrency: MXN
                recipientAmout: 500
                recipientCurrency: MXN
                estimatedExchangeRate: 1
                platId: 22038600-846a-47fd-8733-3b0fa886d894
        '400':
          description: >-
            **400 — Bad request.** Corridor, contact, or payment-method
            validation.


            **Scenarios for this response**:


            | Scenario | How to reproduce | Typical `code` / body |

            |------------|------------------|------------------------|

            | Business validation | Unsupported corridor, missing PM, etc. |
            `ERROR_*` / whitelisted `reason`+`code` per handler |


            See also [Full scenario
            matrix](/raas/guides/testing-sandbox#request-money-v2-scenario-matrix).
          content:
            application/json:
              schema:
                properties:
                  code:
                    type: string
                  reason:
                    type: string
                required:
                  - code
                  - reason
                type: object
              example:
                reason: Destination or corridor not allowed for this user.
        '401':
          description: >-
            **401 — Unauthorized.**


            **Scenarios for this response**:


            | Scenario | How to reproduce | Typical `code` / body |

            |------------|------------------|------------------------|

            | Missing / bad API key | Omit `api_key` or key without `partner` /
            `partner_full`. | OpenAPI `401` via `@Response<ErrorResponse>`. |


            See also [Full scenario
            matrix](/raas/guides/testing-sandbox#request-money-v2-scenario-matrix).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                reason: Missing or invalid API key
        '404':
          description: >-
            **404 — Not found.** Path user does not resolve.


            **Scenarios for this response**:


            | Scenario | How to reproduce | Typical `code` / body |

            |------------|------------------|------------------------|

            | Unknown path user | `userToken` not found via
            `resolveUserIdFromPathUserToken`. | `ERROR_USER_NOT_FOUND` |


            See also [Full scenario
            matrix](/raas/guides/testing-sandbox#request-money-v2-scenario-matrix).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                reason: User not found for path userToken.
        '500':
          description: >-
            **500 — Internal server error.**


            **Scenarios for this response**:


            | Scenario | How to reproduce | Typical `code` / body |

            |------------|------------------|------------------------|

            | Unexpected / NumiError | After `NumiBadRequestError` ruled out;
            `NumiError` returns mapped `errorCode`. |
            `ERROR_INTERNAL_SERVER_ERROR` or `NumiError` payload (no raw
            exception message) |


            See also [Full scenario
            matrix](/raas/guides/testing-sandbox#request-money-v2-scenario-matrix).
          content:
            application/json:
              schema:
                properties:
                  code:
                    type: string
                  reason:
                    type: string
                required:
                  - code
                  - reason
                type: object
              example:
                reason: An unhandled error has occurred
      security:
        - api_key:
            - partner
            - partner_full
components:
  schemas:
    RequestMoneyPartnerParams:
      description: >-
        Partner **request money v2** body (`request-money-v2/{userToken}`):
        beneficiary, amounts, and destination PM.
      properties:
        requestTo:
          type: string
          description: >-
            Beneficiary phone (and optionally other aliases) the platform will
            normalize.

            Example: `+525512345678`.
        correlationId:
          type: string
          description: |-
            Correlation ID

            Partner provided operation identifier.
        destinationPaymentMethodId:
          type: string
          description: >-
            Destination `payout` method ID


            <span style="color:red">required</span> if the
            destinationPaymentMethod parameter is not provided.


            ID of the payout method that will receive the money.


            You can provide either the payout method ID using this parameter, or
            the full payout method object using the destinationPaymentMethod
            parameter.


            If both parameters are provided, destinationPaymentMethodId will
            take precedence and destinationPaymentMethod will be ignored.
        recipientAmount:
          type: number
          format: double
          description: |-
            Recipient amount

            Amount to receive
        recipientCurrency:
          type: string
          description: |-
            Recipient currency

            ISO 4217 format
        reason:
          type: string
          description: |-
            Reason

            Reason for the request
        destinationPaymentMethod:
          $ref: '#/components/schemas/RaaSPaymentMethod'
          description: >-
            Destination `payout` method


            <span style="color:red">required</span> if the
            destinationPaymentMethodId parameter is not provided.


            The full payout method object that will receive the money.


            You can provide either the full payout method object using this
            parameter, or just the payout method ID using the
            destinationPaymentMethodId parameter.


            If both parameters are provided, this object will be ignored and
            destinationPaymentMethodId will take precedence.
      required:
        - requestTo
        - correlationId
        - recipientAmount
        - recipientCurrency
      type: object
      additionalProperties: false
    OperationResponsePartner:
      properties:
        cancelable:
          type: boolean
          description: Indicates if the operation can be cancelled by the funder user.
        userId:
          type: string
          description: |-
            User ID

            ID of the user who performed the operation.
        ignoredData:
          $ref: '#/components/schemas/IgnoredOperationData'
          description: >-
            Data about the reason why the operation was ignored by the funder
            user.
        isIgnored:
          type: boolean
          description: Indicates if the operation was ignored by the funder user.
        attributionLink:
          type: string
          description: |-
            Attribution link

            Link to the operation.
        toUser:
          $ref: '#/components/schemas/PartnerOperationUserDetail'
          description: Recipient user information
        fromUser:
          $ref: '#/components/schemas/PartnerOperationUserDetail'
          description: Sender user information
        estimatedExchangeRate:
          type: number
          format: double
          description: |-

            Estimated exchange rate for the operation.
        destinationPaymentMethod:
          $ref: '#/components/schemas/PartnerPaymentMethodResponse'
          description: Destination payment method
        sourcePaymentMethod:
          $ref: '#/components/schemas/PartnerPaymentMethodResponse'
          description: Source payment method
        currency:
          type: string
          description: |-
            Currency code

            ISO 4217 format.
            Example: `USD` for United States Dollar, `MXN` for Mexican Peso.
        code:
          type: string
          description: |-
            User frendly operation code for support purposes

            Example: `ABC123`.
        reason:
          type: string
          description: |-
            Reason. Free text.

            Example: `Hi! I need money`.
        statusDetails:
          type: string
          description: Operation status details
        status:
          type: string
          description: >-
            Operation status


            Example: `Sent`, `Funding`, `Funded`, `Accepted`, `Rejected`,
            `ReadyForPickup`, `Completed`, `Failed`, `OnHold`, `InTransit`,
            `Cancelled`.
        amount:
          type: number
          format: double
        updatedAt:
          type: string
          format: date-time
        createdAt:
          type: string
          format: date-time
        correlationId:
          type: string
          description: |-
            Correlation ID

            Partner provided operation identifier.
      required:
        - code
        - status
        - amount
        - createdAt
      type: object
    ErrorResponse:
      properties:
        detail:
          type: string
        code:
          type: string
        reason:
          type: string
      required:
        - code
        - reason
      type: object
    RaaSPaymentMethod:
      properties:
        canOperate:
          type: boolean
          description: If Credit/Debit Card can operate.
        paymentMethodOwner:
          type: string
          description: |-
            VNA method owner

            Example: `BCP`.
        allowReviewAddress:
          type: boolean
          description: If Credit/Debit Card allows review address.
        allowPushDomestic:
          type: boolean
          description: If Credit/Debit Card allows push domestic.
        allowPushCrossBorder:
          type: boolean
          description: If Credit/Debit Card allows push cross border.
        allowPullDomestic:
          type: boolean
          description: If Credit/Debit Card allows pull domestic.
        allowPullCrossBorder:
          type: boolean
          description: If Credit/Debit Card allows pull cross border.
        accountPrefix:
          type: string
        bin:
          type: string
        paymentToken:
          $ref: '#/components/schemas/PaymentToken'
          description: >-
            The paymentToken field is only for capturing data from mobile, it
            won't send to numi plat
        status:
          $ref: '#/components/schemas/PaymentMethodStatus'
        application:
          type: string
          description: Application associated with the payment method.
        accountId:
          type: string
          description: Account ID associated with the payment method.
        longitude:
          type: number
          format: double
          description: Address longitude of the payment method.
        latitude:
          type: number
          format: double
          description: Address latitude of the payment method.
        phoneNumber:
          type: string
          description: >-
            Mobile phone number associated with the payment method. Must be a
            valid mobile phone number.


            Example: `+5215521206703` for MX.
        country:
          type: string
          description: |-
            Country code.

            ISO 3166-1 alpha-2 format.
            Example: `US` for United States, `MX` for Mexico.
        zipCode:
          type: string
        state:
          type: string
          description: |-
            Address state/province/department.
            ISO 3166-2:CC (CC: country code).
            Or the state short name.
            Example: `DF` for Distrito Federal, `JA` for Jalisco.
        city:
          type: string
        streetNumber:
          type: string
        address3:
          type: string
        address2:
          type: string
        address1:
          type: string
        currency:
          type: string
          description: |-
            Currency code.

            ISO 4217 format.
            Example: `USD` for United States Dollar, `MXN` for Mexican Peso.
        externalId:
          type: string
        cardNetwork:
          type: string
          description: >-
            Credit/Debit card network


            Example: `Visa`, `MasterCard`, `American Express`, `Discover`,
            `Diners Club`, `JCB`, `UnionPay`, `Maestro`, `Mir`, `Verve`, `Troy`,
            `UATP`.
        cardtype:
          type: string
          enum:
            - DebitCard
            - CreditCard
          description: Credit/Debit card type
        securityCode:
          type: string
          description: |-
            Credit/Debit tokenized card CVV/CVC security code by VGS.
            Example: `tok_sandbox_brucMoj9eTJR3xhqdmM4AQ`.
        expirationMonth:
          type: string
          description: Credit/Debit card expiration month
        expirationYear:
          type: string
          description: Credit/Debit card expiration year
        expirationDate:
          type: string
          description: Credit/Debit card expiration date
        nameOnCard:
          type: string
          description: Credit/Debit card holder name.
        number:
          type: string
          description: |-
            If Credit/Debit, this is the tokenized card number by VGS.
            If UBN/VNA/CLABE, this is the number on clear text.

            Example: `tok_sandbox_9PNgfqqpqwertnD1jYkdw1_1111`.
        beneficiaryAccountId:
          type: string
        tokenData:
          type: string
        cardType:
          type: string
          enum:
            - DebitCard
            - CreditCard
        accountNumber:
          type: string
        bankEntityNumber:
          type: string
        bankName:
          type: string
        bankAccountType:
          type: string
          enum:
            - CheckingAccount
            - SavingsAccount
            - OtherAccount
        updatedAt:
          type: string
          format: date-time
        createdAt:
          type: string
          format: date-time
          description: Created at
        isPrimary:
          type: boolean
          description: Is primary payment method?
        type:
          $ref: '#/components/schemas/AvailablePaymentMethods'
          description: |-
            Payment method type

            Type of the payment method.
        name:
          type: string
          description: |-
            Payment method name

            Name of the payment method. Example `VISA-1234`.
        id:
          type: string
          description: Payment method ID
      required:
        - type
      type: object
      description: >-
        Base fields that can appear on any payment method.

        Discriminated variants (DebitCard, CreditCard, UBN, etc.) extend this
        and add required fields per type.
    IgnoredOperationData:
      properties:
        description:
          type: string
        date:
          type: string
          format: date-time
        notifySupport:
          type: boolean
        reason:
          $ref: '#/components/schemas/IgnoredOperationReason'
        responsibleUserId:
          type: string
      required:
        - date
        - notifySupport
        - reason
        - responsibleUserId
      type: object
    PartnerOperationUserDetail:
      properties:
        dob:
          type: string
          format: date-time
        country:
          type: string
        email:
          type: string
        phoneNumber:
          type: string
        lastName:
          type: string
        firstName:
          type: string
        userId:
          type: string
      type: object
    PartnerPaymentMethodResponse:
      properties:
        paymentMethodOwner:
          type: string
        accountPrefix:
          type: string
        bin:
          type: string
        name:
          type: string
        type:
          type: string
        isPrimary:
          type: boolean
        accountNumber:
          type: string
        currency:
          type: string
        country:
          type: string
        number:
          type: string
        id:
          type: string
      type: object
    PaymentToken:
      properties:
        paymentType:
          $ref: '#/components/schemas/PaymentMethodType'
          description: >-

            Type of the payment method.


            Example: `DebitCard`, `CreditCard`, `BankAccount`, `MobileWallet`,
            `CashLoadLocation`, `AppleDigitalWallet`, `GoogleDigitalWallet`,
            `CLABE`, `UBN`, `VirtualNetworkAccount`.
        displayName:
          type: string
          description: Display name
        transactionIdentifier:
          type: string
          description: Transaction identifier
        paymentNetwork:
          type: string
          description: Payment network
        data:
          type: string
          description: Payment token data
      required:
        - data
      type: object
    PaymentMethodStatus:
      type: string
      enum:
        - Created
        - Validated
        - Blocked
        - Validating
        - Removed
        - Disconnected
        - ValidationNotApproved
        - ValidatedPull
        - ValidatedPush
        - ValidatedPullAndPush
    AvailablePaymentMethods:
      type: string
      enum:
        - MobileWallet
        - BankAccount
        - DebitCard
        - CreditCard
        - CashLoadLocation
        - AppleDigitalWallet
        - GoogleDigitalWallet
        - CLABE
        - UBN
        - VirtualNetworkAccount
    IgnoredOperationReason:
      enum:
        - I_DONT_RECOGNIZE_CONTACT
        - AMOUNT_TOO_HIGHT
        - I_DONT_HAVE_MONEY_RIGHT_NOW
        - OTHER
        - I_DIDNT_MAKE_THIS_REQUEST
        - I_REQUESTED_A_DIFFERENT_AMOUNT
      type: string
    PaymentMethodType:
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
      type: number
  securitySchemes:
    api_key:
      type: apiKey
      name: api_key
      in: header

````