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

# Update Manual Payment status

> Update a test manual payment (e.g. FPS, PayNow) to status = `EXECUTED`, by simulating manually transferring the specified payment to the Finverse Testbank.

**Authorization**: `customer_token`

### Testing use-case

**Flow: Manual payments**

- Hong Kong: FPS
    
- Singapore: PayNow
    

**Availability**: any manual payment created by a non-live customer app.

**Scenario: Manual payment success**

- Test case: Finverse/bank confirms the manual payment was successfully received
    
- Result: payment `status` = `EXECUTED`
    

**Testing steps:**

1. **Create Payment Link** using `POST /payment_links`. Note the `payment_link_id` (also available in the payment link `url`: e.g. [https://pay.prod.finverse.net/link/01HW1V8PX04GHM6Q8ZAR7DPRAT](https://pay.prod.finverse.net/link/01HW1V8PX04GHM6Q8ZAR7DPRAT))
    
2. **Open the Payment Link UI and select a manual payment method** (e.g. FPS/PayNow)
    
    1. Click “I have paid” in the Finverse payment UI (if shown)
        
    2. If you are requested to enter your "Accountholder last name or company name" to confirm the payment, enter a unique value (duplicate values within the same 15 minute window will prevent the Finverse Testbank from simulating that a unique mock payment has been received).
        
3. **Fetch the Payment Link** using `GET /payment_links/{payment_link_id}`. Note the `payment.payment_id` value in the Payment Link response. You can also retrieve the created Payment record through the Finverse Dashboard UI (dashboard.finverse.com > Payments).
    
4. **Mark the Payment Link as** **`EXECUTED`** using `POST /testing/payments/{payment_id}/status`.
    

### Response

**Success**: `HTTP 200` with empty body



## OpenAPI

````yaml /api-reference/openapi.json post /testing/payments/{paymentId}/status
openapi: 3.0.0
info:
  description: Documentation of the early finverse services
  title: Finverse Public
  termsOfService: https://example.com
  contact:
    name: Maintainers
    email: info@finverse.com
  license:
    name: unknown license
  version: 0.0.1
servers:
  - url: https://api.prod.finverse.net
security:
  - Oauth2:
      - test
tags:
  - name: public
    description: Publicly accessible endpoints
    x-group: Public
  - name: customer
    description: Customer app and institution endpoints
    x-group: Customer
  - name: link
    description: Finverse Link flows
    x-group: Link
  - name: login_identity
    description: Login identity lifecycle and metadata
    x-group: Login identity
  - name: accounts
    description: Accounts, balances, and account numbers
    x-group: Accounts
  - name: statements
    description: Statements and composite statements
    x-group: Statements
  - name: transactions
    description: Transaction history
    x-group: Transactions
  - name: identity_income
    description: Identity and income insights
    x-group: Identity & income
  - name: payment_links
    description: Payment link creation and checkout
    x-group: Payment links
  - name: mandates
    description: Direct debit mandates
    x-group: Mandates
  - name: payments
    description: Payment initiation and status
    x-group: Payment operations
  - name: payouts
    description: Payouts and scheduled payouts
    x-group: Payouts
  - name: payment_users
    description: Payment user profiles
    x-group: Payment users
  - name: payment_accounts
    description: Payment accounts for users
    x-group: Payment accounts
  - name: payment_methods
    description: Stored payment methods
    x-group: Payment methods
  - name: bills
    description: Bill presentment
    x-group: Bills
  - name: disputes
    description: Payment disputes
    x-group: Disputes
  - name: ledger
    description: Ledger and statements
    x-group: Ledger
paths:
  /testing/payments/{paymentId}/status:
    post:
      tags:
        - payments
      summary: Update Manual Payment status
      description: >-
        Update a test manual payment (e.g. FPS, PayNow) to status = `EXECUTED`,
        by simulating manually transferring the specified payment to the
        Finverse Testbank.


        **Authorization**: `customer_token`


        ### Testing use-case


        **Flow: Manual payments**


        - Hong Kong: FPS
            
        - Singapore: PayNow
            

        **Availability**: any manual payment created by a non-live customer app.


        **Scenario: Manual payment success**


        - Test case: Finverse/bank confirms the manual payment was successfully
        received
            
        - Result: payment `status` = `EXECUTED`
            

        **Testing steps:**


        1. **Create Payment Link** using `POST /payment_links`. Note the
        `payment_link_id` (also available in the payment link `url`: e.g.
        [https://pay.prod.finverse.net/link/01HW1V8PX04GHM6Q8ZAR7DPRAT](https://pay.prod.finverse.net/link/01HW1V8PX04GHM6Q8ZAR7DPRAT))
            
        2. **Open the Payment Link UI and select a manual payment method** (e.g.
        FPS/PayNow)
            
            1. Click “I have paid” in the Finverse payment UI (if shown)
                
            2. If you are requested to enter your "Accountholder last name or company name" to confirm the payment, enter a unique value (duplicate values within the same 15 minute window will prevent the Finverse Testbank from simulating that a unique mock payment has been received).
                
        3. **Fetch the Payment Link** using `GET
        /payment_links/{payment_link_id}`. Note the `payment.payment_id` value
        in the Payment Link response. You can also retrieve the created Payment
        record through the Finverse Dashboard UI (dashboard.finverse.com >
        Payments).
            
        4. **Mark the Payment Link as** **`EXECUTED`** using `POST
        /testing/payments/{payment_id}/status`.
            

        ### Response


        **Success**: `HTTP 200` with empty body
      operationId: updateTestPaymentStatus
      parameters:
        - description: The test payment ID
          name: paymentId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTestPaymentStatusRequest'
        description: Request body for updating the test manual payment status
        required: true
      responses:
        '200':
          description: Successful
        '400':
          description: Invalid Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrBodyModelV2'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrBodyModelV2'
      deprecated: true
      security:
        - Oauth2:
            - testPayment:update
components:
  schemas:
    UpdateTestPaymentStatusRequest:
      properties:
        status:
          description: Status of the payment. Must be `EXECUTED`.
          type: string
          enum:
            - EXECUTED
    ErrBodyModelV2:
      properties:
        error:
          $ref: '#/components/schemas/FvErrorModelV2'
    FvErrorModelV2:
      required:
        - type
        - error_code
        - message
        - details
        - request_id
      properties:
        details:
          type: string
        error_code:
          type: string
          example: CREDENTIALS_INVALID
        message:
          type: string
        request_id:
          description: The request_id provided in the request header
          type: string
        type:
          description: The error type
          type: string
          enum:
            - LINK_ERROR
            - API_ERROR
          example: LINKING_ERROR
  securitySchemes:
    Oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://finverse-dev.us.auth0.com/oauth/token
          scopes:
            account: Account
            balance: Balance
            credit: Credit
            institution: Institution
            investment: Investment
            link: Link
            test: Test
            transaction: Transaction

````