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

# Update payment information

> Update a person's payment information. Required fields vary by payout corridor — use [GET /v1/payment-requirements](/api-reference/payments/resources/payment-corridor-requirements) as the authoritative list of fields for each currency and method.



## OpenAPI

````yaml /openapi/workforce-management.yaml put /v1/persons/{personId}/paymentInfo
openapi: 3.0.0
info:
  description: APIs for interacting with Cadana Payroll Platform
  version: 1.0.0
  title: Business Workforce Management
  termsOfService: https://cadanapay.com/terms-and-conditions
  contact:
    email: api@cadanapay.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://api.cadanapay.com
    description: Prod Server
  - url: https://dev-api.cadanapay.com
    description: Dev Server
security:
  - Authorization: []
tags:
  - name: Custom Auth
    description: APIs for interacting with Custom Authentication
  - name: Persons
    description: APIs for interacting with the HR module
  - name: Milestones
    description: APIs for milestone-based contractor pay
  - name: Instant Pay
    description: APIs for interacting with Instant Pay functionality
  - name: Users
    description: APIs for interacting with employee/contractor Cadana accounts
  - name: Files
    description: APIs for interacting with file uploads
  - name: Payrolls
    description: APIs for interacting with Payroll
  - name: Platform
    description: Platform APIs for interacting with businesses
  - name: Businesses
    description: APIs for interacting with Business
  - name: Contracts
    description: APIs for interacting with contracts
  - name: Sandbox
    description: APIs for relevant sandbox simulations
  - name: Invoices
    description: APIs for interacting with invoices
  - name: Reimbursements
    description: APIs for interacting with reimbursements
  - name: Entities
    description: >-
      APIs for managing legal sub-entities (subsidiaries, branches) under a
      parent business
paths:
  /v1/persons/{personId}/paymentInfo:
    put:
      tags:
        - Persons
      summary: Update payment information
      description: >-
        Update a person's payment information. Required fields vary by payout
        corridor — use [GET
        /v1/payment-requirements](/api-reference/payments/resources/payment-corridor-requirements)
        as the authoritative list of fields for each currency and method.
      operationId: updatePersonPaymentInfo
      parameters:
        - $ref: '#/components/parameters/personId'
        - $ref: '#/components/parameters/XMultiTenantKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePersonPaymentInfoRequest'
            examples:
              achPayment:
                $ref: '#/components/examples/achPaymentMethod'
              swiftPayment:
                $ref: '#/components/examples/swiftPaymentMethod'
              philippinesBankPayment:
                $ref: '#/components/examples/philippinesBankPaymentMethod'
              indiaBankPayment:
                $ref: '#/components/examples/indiaBankPaymentMethod'
              mexicoBankPayment:
                $ref: '#/components/examples/mexicoBankPaymentMethod'
              colombiaBankPayment:
                $ref: '#/components/examples/colombiaBankPaymentMethod'
              elSalvadorBankPayment:
                $ref: '#/components/examples/elSalvadorBankPaymentMethod'
              walletRequest:
                $ref: '#/components/examples/walletPaymentMethod'
      responses:
        '204':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        5XX:
          $ref: '#/components/responses/InternalError'
      security:
        - Authorization: []
components:
  parameters:
    personId:
      name: personId
      in: path
      description: The unique identifier for the person
      required: true
      schema:
        type: string
        format: uuid
    XMultiTenantKey:
      name: X-MultiTenantKey
      in: header
      required: false
      schema:
        type: string
      description: >-
        Required when using a Platform API token. The tenant key identifying
        which business to operate on.
  schemas:
    UpdatePersonPaymentInfoRequest:
      description: Update person payment info request payload
      type: object
      allOf:
        - $ref: '#/components/schemas/paymentMethods'
    paymentMethods:
      type: object
      required:
        - preferredMethod
      properties:
        preferredMethod:
          type: string
          enum:
            - momo
            - bank
            - swift
            - ach
            - wallet
            - wire
          description: The preferred payment method type
          example: bank
        momo:
          $ref: '#/components/schemas/momoDetails'
        bank:
          $ref: '#/components/schemas/bankDetails'
        swift:
          $ref: '#/components/schemas/swiftDetails'
        ach:
          $ref: '#/components/schemas/achDetails'
        wallet:
          $ref: '#/components/schemas/walletDetails'
        wire:
          $ref: '#/components/schemas/wireDetails'
    BadRequestError:
      description: Bad input provided by client
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          properties:
            params:
              description: A map for meta data around the error that occurred
              type: object
      example:
        code: invalid_request_body
        message: The request body provided is not valid
        params:
          field: Value is invalid.
    NotFoundError:
      description: Not Found
      allOf:
        - $ref: '#/components/schemas/Error'
      example:
        code: resource_not_found
        message: Requested resource could not be found.
    InternalError:
      description: Internal server error
      allOf:
        - $ref: '#/components/schemas/Error'
      example:
        code: internal_error
        message: An unexpected error occurred. Please try again later.
    momoDetails:
      type: object
      properties:
        accountName:
          type: string
          description: The name associated with the mobile money account
          example: John Doe
        provider:
          type: string
          description: The name of the mobile money provider
          example: MTN
        providerCode:
          type: string
          description: The code identifying the mobile money provider
          example: MTN
        phoneNumber:
          $ref: '#/components/schemas/phoneNumber'
        currency:
          type: string
          description: The currency of the mobile money account
          example: GHS
    bankDetails:
      type: object
      properties:
        accountName:
          type: string
          description: The name on the bank account
          example: John Doe
        accountNumber:
          type: string
          description: The bank account number
          example: '1234567890'
        accountType:
          type: string
          description: The type of bank account (e.g., Checking, Savings)
          example: Checking
        ownerType:
          type: string
          description: The type of account owner
          enum:
            - Individual
            - Business
          example: Individual
        bankCode:
          type: string
          description: The bank identification code
          example: EXMPJPJT
        bankName:
          type: string
          description: The name of the bank
          example: Gotham City Bank
        branchName:
          type: string
          description: The name of the bank branch
          example: Downtown Branch
        sortCode:
          type: string
          description: The bank sort code (UK); carries the IFSC for India
          example: '401234'
        iban:
          type: string
          description: The International Bank Account Number
          example: GB00000000000000000000
        provider:
          type: string
          description: The platform providing this account (e.g., wise)
          example: wise
        currency:
          type: string
          description: The currency of the bank account
          example: USD
        beneficiaryId:
          $ref: '#/components/schemas/beneficiaryId'
        address:
          $ref: '#/components/schemas/address'
        phoneNumber:
          $ref: '#/components/schemas/phoneNumber'
        email:
          type: string
          format: email
          description: The email address of the account holder
          example: john.doe@example.com
    swiftDetails:
      type: object
      required:
        - currency
        - iban
        - accountName
        - accountNumber
        - bankName
        - swiftCode
        - address
      properties:
        currency:
          type: string
          description: The currency of the bank account
          example: EUR
        iban:
          type: string
          description: The International Bank Account Number
          example: DE00000000000000000000
        accountName:
          type: string
          description: The name on the bank account
          example: John Doe
        accountNumber:
          type: string
          description: The bank account number
          example: '1234567890'
        bankName:
          type: string
          description: The name of the bank
          example: Example Bank
        swiftCode:
          type: string
          description: The SWIFT/BIC code of the bank
          example: EXMPDEFF
        address:
          $ref: '#/components/schemas/address'
    achDetails:
      type: object
      properties:
        bankName:
          type: string
          description: The name of the bank
          example: Example Bank
        accountName:
          type: string
          description: The name on the bank account
          example: John Doe
        routingNumber:
          type: string
          description: The ACH routing number of the bank
          example: '000000000'
        accountNumber:
          type: string
          description: The bank account number
          example: '1234567890'
        accountType:
          type: string
          description: The type of bank account (Checking or Savings)
          example: Checking
        provider:
          type: string
          description: The platform providing this account (e.g., wise)
          example: wise
        address:
          $ref: '#/components/schemas/address'
    walletDetails:
      type: object
      properties:
        type:
          type: string
          description: The type of wallet account
          enum:
            - user
            - business
          example: user
        identifier:
          type: string
          description: The unique identifier for the wallet account
          example: 69a2a928-ed49-4e53-92ec-a72b4ee7eacc
        currency:
          type: string
          description: The currency of the wallet
          example: USD
    wireDetails:
      type: object
      description: Wire transfer payment details
      properties:
        bankName:
          type: string
          description: The name of the bank
          example: Example Bank
        accountName:
          type: string
          description: The name on the account
          example: John Doe
        routingNumber:
          type: string
          description: The routing number
          example: '000000000'
        accountNumber:
          type: string
          description: The account number
          example: '123456789'
        address:
          $ref: '#/components/schemas/address'
    Error:
      type: object
      properties:
        code:
          description: A machine parsable error code
          type: string
          enum:
            - invalid_request_body
            - resource_not_found
            - forbidden
            - internal_error
        message:
          description: A human readable message describing the error
          type: string
    phoneNumber:
      type: object
      description: Person's phone number
      properties:
        countryCode:
          type: string
          example: '1'
        number:
          type: string
          example: '2345678901'
    beneficiaryId:
      type: object
      description: ID details for the beneficiary
      properties:
        type:
          type: string
          enum:
            - NIT
            - CC
            - CE
            - TI
            - PASS
          description: Type of beneficiary ID
          example: NIT
        value:
          type: string
          description: ID number of the beneficiary
          example: '123456789'
    address:
      type: object
      description: Address
      required:
        - countryCode
      properties:
        line1:
          type: string
          example: Street 1
        line2:
          type: string
          example: Apt 1
        city:
          type: string
          example: Gotham
        postalCode:
          type: string
          example: '10001'
        state:
          type: string
          example: NY
        countryCode:
          type: string
          example: US
  examples:
    achPaymentMethod:
      summary: ACH Payment Method
      value:
        preferredMethod: ach
        ach:
          accountName: John Doe
          accountNumber: '123456789'
          bankName: Gotham City Bank
          routingNumber: '000000000'
          accountType: Checking
          address:
            line1: 1234 Elm St
            line2: Apt 1A
            city: Gotham
            postalCode: '10001'
            state: NY
            countryCode: US
    swiftPaymentMethod:
      summary: Swift Payment Method
      value:
        preferredMethod: swift
        swift:
          accountName: Jane Smith
          accountNumber: '987654321'
          bankName: London Bank
          swiftCode: EXMPGB2L
          currency: USD
          address:
            line1: Queen's Way
            line2: Suite 100
            city: London
            postalCode: WC2N 5DU
            state: London
            countryCode: GB
    philippinesBankPaymentMethod:
      summary: Philippines Bank Payment Method
      value:
        preferredMethod: bank
        bank:
          accountName: John Doe
          accountNumber: '123456789'
          bankName: Philippines National Bank
          bankCode: '001'
          address:
            line1: Mabini St
            line2: Bldg 5
            city: Manila
            postalCode: '1000'
            countryCode: PH
    indiaBankPaymentMethod:
      summary: India Bank Payment Method
      value:
        preferredMethod: bank
        bank:
          accountName: Vraj Shah
          ownerType: Individual
          accountNumber: '12345678901234'
          bankCode: HDFC
          bankName: HDFC Bank
          sortCode: HDFC0000123
          address:
            line1: 12 Alkapuri Main Road
            city: Vadodara
            postalCode: '390007'
            state: GJ
            countryCode: IN
          email: worker@example.com
          phoneNumber:
            countryCode: '91'
            number: '9876543210'
    mexicoBankPaymentMethod:
      summary: Mexico Bank Payment Method
      value:
        preferredMethod: bank
        bank:
          accountName: John Doe
          accountNumber: '123456789012345678'
          bankName: Mexico City Bank
          bankCode: '001'
          address:
            line1: Avenida de la Reforma
            line2: Oficina 10
            city: Mexico City
            postalCode: '06600'
            countryCode: MX
    colombiaBankPaymentMethod:
      summary: Colombia Bank Payment Method
      value:
        preferredMethod: bank
        bank:
          accountName: John Doe
          accountNumber: '123456789'
          bankName: Colombia Bank
          accountType: Checking
          bankCode: '001'
          address:
            line1: Avenida Caracas
            line2: Oficina 202
            city: Bogota
            postalCode: '11001'
            countryCode: CO
          beneficiaryId:
            type: NIT
            value: '123456789'
    elSalvadorBankPaymentMethod:
      summary: El Salvador Bank Payment Method
      value:
        preferredMethod: bank
        bank:
          accountName: John Doe
          accountNumber: '123456789'
          bankName: El Salvador Bank
          bankCode: '001'
          address:
            line1: Calle Real
            line2: Casa 5
            city: San Salvador
            postalCode: '1200'
            countryCode: SV
          email: john.doe@example.com
          phoneNumber:
            countryCode: '503'
            number: '70000000'
    walletPaymentMethod:
      summary: Wallet Payment Method
      value:
        preferredMethod: wallet
        wallet:
          currency: USD
  responses:
    BadRequestError:
      description: Bad input provided by client
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BadRequestError'
    NotFoundError:
      description: Requested resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NotFoundError'
    InternalError:
      description: Internal error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalError'
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer
      bearerFormat: API_SECRET_KEY

````