Nuvei Payouts API

Pushes funds out to consumers and counterparties via card, bank account, and a wide set of local APMs. The payout endpoint supports referenced (relatedTransactionId) and unreferenced (account number / IBAN) payouts and integrates with accountCapture to collect destination details safely.

Nuvei Payouts API is one of 9 APIs that Nuvei publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Payouts, Withdrawals, and Disbursement. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

nuvei-payouts-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Nuvei Payouts API
  description: Push funds to consumers and counterparties via card, bank account, or local APMs.
    Supports referenced (relatedTransactionId) and unreferenced payouts.
  version: "1.0"
  contact:
    name: Nuvei Developer Support
    url: https://docs.nuvei.com
servers:
- url: https://secure.safecharge.com/ppp/api/v1
  description: Production
- url: https://ppp-test.nuvei.com/ppp/api/v1
  description: Sandbox
tags:
- name: Payouts
paths:
  /payout.do:
    post:
      tags:
      - Payouts
      summary: Create Payout
      operationId: payout
      description: Withdraws funds to a card, bank account, or APM. Either references a prior
        transaction (relatedTransactionId) or uses a userPaymentOptionId / unreferenced
        destination details.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PayoutRequest"
      responses:
        "200":
          description: Payout result
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PayoutResponse"
  /accountCapture.do:
    post:
      tags:
      - Payouts
      summary: Account Capture
      operationId: accountCapture
      description: Returns a redirect URL where the cardholder/account holder securely provides
        bank account details for use in a subsequent payout.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccountCaptureRequest"
      responses:
        "200":
          description: Account capture redirect
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccountCaptureResponse"
components:
  schemas:
    PayoutRequest:
      type: object
      required:
      - merchantId
      - merchantSiteId
      - userTokenId
      - clientUniqueId
      - amount
      - currency
      - timeStamp
      - checksum
      properties:
        merchantId:
          type: string
        merchantSiteId:
          type: string
        userTokenId:
          type: string
        clientUniqueId:
          type: string
        clientRequestId:
          type: string
        amount:
          type: string
        currency:
          type: string
        userPaymentOption:
          type: object
        cardData:
          type: object
        comment:
          type: string
        dynamicDescriptor:
          type: object
        merchantDetails:
          type: object
        deviceDetails:
          type: object
        urlDetails:
          type: object
        timeStamp:
          type: string
        checksum:
          type: string
    PayoutResponse:
      type: object
      properties:
        transactionId:
          type: string
        externalTransactionId:
          type: string
        transactionStatus:
          type: string
          enum: [APPROVED, DECLINED, ERROR, PENDING]
        status:
          type: string
          enum: [SUCCESS, ERROR]
        authCode:
          type: string
        gwErrorCode:
          type: integer
        gwErrorReason:
          type: string
    AccountCaptureRequest:
      type: object
      required:
      - merchantId
      - merchantSiteId
      - userTokenId
      - amount
      - currency
      - timeStamp
      - checksum
      properties:
        merchantId:
          type: string
        merchantSiteId:
          type: string
        userTokenId:
          type: string
        clientRequestId:
          type: string
        amount:
          type: string
        currency:
          type: string
        country:
          type: string
        paymentMethod:
          type: string
        urlDetails:
          type: object
        timeStamp:
          type: string
        checksum:
          type: string
    AccountCaptureResponse:
      type: object
      properties:
        redirectURL:
          type: string
        sessionToken:
          type: string
        status:
          type: string
          enum: [SUCCESS, ERROR]
        errCode:
          type: integer
        reason:
          type: string