Zuora · Capability

API Reference — Payments

API Reference — Payments. 15 operations. Lead operation: Create a payment. Self-contained Naftiko capability covering one Zuora business surface.

Run with Naftiko ZuoraPayments

What You Can Do

POST
Postcreatepayment — Create a payment
/v1/v1/payments
GET
Getretrieveallpayments — List payments
/v1/v1/payments
PUT
Putupdatepayment — Update a payment
/v1/v1/payments/{paymentid}
GET
Getpayment — Retrieve a payment
/v1/v1/payments/{paymentkey}
DELETE
Deletepayment — Delete a payment
/v1/v1/payments/{paymentkey}
PUT
Putapplypayment — Apply a payment
/v1/v1/payments/{paymentkey}/apply
PUT
Putcancelpayment — Cancel a payment
/v1/v1/payments/{paymentkey}/cancel
GET
Getpaymentparts — List all parts of a payment
/v1/v1/payments/{paymentkey}/parts
GET
Getpaymentpart — Retrieve a payment part
/v1/v1/payments/{paymentkey}/parts/{partid}
GET
Getpaymentitemparts — List all payment part items
/v1/v1/payments/{paymentkey}/parts/{partid}/itemparts
GET
Getpaymentitempart — Retrieve a payment part item
/v1/v1/payments/{paymentkey}/parts/{partid}/itemparts/{itempartid}
POST
Postrefundpayment — Refund a payment
/v1/v1/payments/{paymentkey}/refunds
POST
Postrefundpaymentwithautounapply — Refund a payment with auto-unapplying
/v1/v1/payments/{paymentkey}/refunds/unapply
PUT
Puttransferpayment — Transfer a payment
/v1/v1/payments/{paymentkey}/transfer
PUT
Putunapplypayment — Unapply a payment
/v1/v1/payments/{paymentkey}/unapply

MCP Tools

create-payment

Create a payment

list-payments

List payments

read-only idempotent
update-payment

Update a payment

idempotent
retrieve-payment

Retrieve a payment

read-only idempotent
delete-payment

Delete a payment

idempotent
apply-payment

Apply a payment

idempotent
cancel-payment

Cancel a payment

idempotent
list-all-parts-payment

List all parts of a payment

read-only idempotent
retrieve-payment-part

Retrieve a payment part

read-only idempotent
list-all-payment-part-items

List all payment part items

read-only idempotent
retrieve-payment-part-item

Retrieve a payment part item

read-only idempotent
refund-payment

Refund a payment

refund-payment-auto-unapplying

Refund a payment with auto-unapplying

transfer-payment

Transfer a payment

idempotent
unapply-payment

Unapply a payment

idempotent

Capability Spec

v1-payments.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: API Reference — Payments
  description: 'API Reference — Payments. 15 operations. Lead operation: Create a payment. Self-contained Naftiko capability
    covering one Zuora business surface.'
  tags:
  - Zuora
  - Payments
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    ZUORA_API_KEY: ZUORA_API_KEY
capability:
  consumes:
  - type: http
    namespace: v1-payments
    baseUri: https://rest.zuora.com
    description: API Reference — Payments business capability. Self-contained, no shared references.
    resources:
    - name: v1-payments
      path: /v1/payments
      operations:
      - name: postcreatepayment
        method: POST
        description: Create a payment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: string
          required: true
      - name: getretrieveallpayments
        method: GET
        description: List payments
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: accountId
          in: query
          type: string
          description: This parameter filters the response based on the `accountId` field.
        - name: amount
          in: query
          type: number
          description: This parameter filters the response based on the `amount` field.
        - name: appliedAmount
          in: query
          type: number
          description: This parameter filters the response based on the `appliedAmount` field.
        - name: createdById
          in: query
          type: string
          description: This parameter filters the response based on the `createdById` field.
        - name: createdDate
          in: query
          type: string
          description: This parameter filters the response based on the `createdDate` field.
        - name: creditBalanceAmount
          in: query
          type: number
          description: This parameter filters the response based on the `creditBalanceAmount` field.
        - name: currency
          in: query
          type: string
          description: This parameter filters the response based on the `currency` field.
        - name: effectiveDate
          in: query
          type: string
          description: This parameter filters the response based on the `effectiveDate` field.
        - name: number
          in: query
          type: string
          description: This parameter filters the response based on the `number` field.
        - name: refundAmount
          in: query
          type: number
          description: This parameter filters the response based on the `refundAmount` field.
        - name: status
          in: query
          type: string
          description: This parameter filters the response based on the `status` field.
        - name: type
          in: query
          type: string
          description: This parameter filters the response based on the `type` field.
        - name: unappliedAmount
          in: query
          type: number
          description: This parameter filters the response based on the `unappliedAmount` field.
        - name: updatedById
          in: query
          type: string
          description: This parameter filters the response based on the `updatedById` field.
        - name: updatedDate
          in: query
          type: string
          description: This parameter filters the response based on the `updatedDate` field.
        - name: sort
          in: query
          type: string
          description: This parameter restricts the order of the data returned in the response. You can use this parameter
            to supply a dimension you want to sort on.
    - name: v1-payments-paymentId
      path: /v1/payments/{paymentId}
      operations:
      - name: putupdatepayment
        method: PUT
        description: Update a payment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: string
          required: true
        - name: paymentId
          in: path
          type: string
          description: The unique ID of an unapplied payment. For example, `8a8082e65b27f6c3015b89e4344c16b1`.
          required: true
    - name: v1-payments-paymentKey
      path: /v1/payments/{paymentKey}
      operations:
      - name: getpayment
        method: GET
        description: Retrieve a payment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: paymentKey
          in: path
          type: string
          description: The unique ID or number of an unapplied payment. For example, `8a8082e65b27f6c3015b89e4344c16b1`, or
            `P-00000001`.
          required: true
      - name: deletepayment
        method: DELETE
        description: Delete a payment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: paymentKey
          in: path
          type: string
          description: The unique ID or number of an unapplied payment. For example, `8a8082e65b27f6c3015b89e4344c16b1`, or
            `P-00000001`.
          required: true
    - name: v1-payments-paymentKey-apply
      path: /v1/payments/{paymentKey}/apply
      operations:
      - name: putapplypayment
        method: PUT
        description: Apply a payment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: string
          required: true
        - name: paymentKey
          in: path
          type: string
          description: The unique ID or number of an unapplied payment. For example, `8a8082e65b27f6c3015b89e4344c16b1`, or
            `P-00000001`.
          required: true
    - name: v1-payments-paymentKey-cancel
      path: /v1/payments/{paymentKey}/cancel
      operations:
      - name: putcancelpayment
        method: PUT
        description: Cancel a payment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: paymentKey
          in: path
          type: string
          description: The unique ID or number of an unapplied payment. For example, `8a8082e65b27f6c3015b89e4344c16b1`, or
            `P-00000001`.
          required: true
    - name: v1-payments-paymentKey-parts
      path: /v1/payments/{paymentKey}/parts
      operations:
      - name: getpaymentparts
        method: GET
        description: List all parts of a payment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: paymentKey
          in: path
          type: string
          description: The unique ID or number of an unapplied payment. For example, `8a8082e65b27f6c3015b89e4344c16b1`, or
            `P-00000001`.
          required: true
    - name: v1-payments-paymentKey-parts-partid
      path: /v1/payments/{paymentKey}/parts/{partid}
      operations:
      - name: getpaymentpart
        method: GET
        description: Retrieve a payment part
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: partid
          in: path
          type: string
          description: The unique ID of a specific payment part. You can get the payment part ID from the response of [List
            all parts of a payment](/api-references/api/operation/GET_P
          required: true
        - name: paymentKey
          in: path
          type: string
          description: The unique ID or number of an unapplied payment. For example, `8a8082e65b27f6c3015b89e4344c16b1`, or
            `P-00000001`.
          required: true
    - name: v1-payments-paymentKey-parts-partid-itemparts
      path: /v1/payments/{paymentKey}/parts/{partid}/itemparts
      operations:
      - name: getpaymentitemparts
        method: GET
        description: List all payment part items
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: partid
          in: path
          type: string
          description: The unique ID of a specific payment part. You can get the payment part ID from the response of [List
            all parts of a payment](/api-references/api/operation/GET_P
          required: true
        - name: paymentKey
          in: path
          type: string
          description: The unique ID or number of an unapplied payment. For example, `8a8082e65b27f6c3015b89e4344c16b1`, or
            `P-00000001`.
          required: true
    - name: v1-payments-paymentKey-parts-partid-itemparts-itempartid
      path: /v1/payments/{paymentKey}/parts/{partid}/itemparts/{itempartid}
      operations:
      - name: getpaymentitempart
        method: GET
        description: Retrieve a payment part item
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: partid
          in: path
          type: string
          description: The unique ID of a specific payment part. You can get the payment part ID from the response of [List
            all parts of a payment](/api-references/api/operation/GET_P
          required: true
        - name: itempartid
          in: path
          type: string
          description: The unique ID of a specific payment part item. You can get the payment part item ID from the response
            of [List all payment part items](/api-references/api/opera
          required: true
        - name: paymentKey
          in: path
          type: string
          description: The unique ID or number of an unapplied payment. For example, `8a8082e65b27f6c3015b89e4344c16b1`, or
            `P-00000001`.
          required: true
    - name: v1-payments-paymentKey-refunds
      path: /v1/payments/{paymentKey}/refunds
      operations:
      - name: postrefundpayment
        method: POST
        description: Refund a payment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: string
          required: true
        - name: paymentKey
          in: path
          type: string
          description: The unique ID or number of an unapplied payment. For example, `8a8082e65b27f6c3015b89e4344c16b1`, or
            `P-00000001`.
          required: true
    - name: v1-payments-paymentKey-refunds-unapply
      path: /v1/payments/{paymentKey}/refunds/unapply
      operations:
      - name: postrefundpaymentwithautounapply
        method: POST
        description: Refund a payment with auto-unapplying
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: string
          required: true
        - name: paymentKey
          in: path
          type: string
          description: The unique ID or number of an unapplied payment. For example, `8a8082e65b27f6c3015b89e4344c16b1`, or
            `P-00000001`.
          required: true
    - name: v1-payments-paymentKey-transfer
      path: /v1/payments/{paymentKey}/transfer
      operations:
      - name: puttransferpayment
        method: PUT
        description: Transfer a payment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: string
          required: true
        - name: paymentKey
          in: path
          type: string
          description: The unique ID or number of an unapplied payment. For example, `8a8082e65b27f6c3015b89e4344c16b1`, or
            `P-00000001`.
          required: true
    - name: v1-payments-paymentKey-unapply
      path: /v1/payments/{paymentKey}/unapply
      operations:
      - name: putunapplypayment
        method: PUT
        description: Unapply a payment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: string
          required: true
        - name: paymentKey
          in: path
          type: string
          description: The unique ID or number of an unapplied payment. For example, `8a8082e65b27f6c3015b89e4344c16b1`, or
            `P-00000001`.
          required: true
  exposes:
  - type: rest
    namespace: v1-payments-rest
    port: 8080
    description: REST adapter for API Reference — Payments. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/v1/payments
      name: v1-payments
      description: REST surface for v1-payments.
      operations:
      - method: POST
        name: postcreatepayment
        description: Create a payment
        call: v1-payments.postcreatepayment
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getretrieveallpayments
        description: List payments
        call: v1-payments.getretrieveallpayments
        with:
          accountId: rest.accountId
          amount: rest.amount
          appliedAmount: rest.appliedAmount
          createdById: rest.createdById
          createdDate: rest.createdDate
          creditBalanceAmount: rest.creditBalanceAmount
          currency: rest.currency
          effectiveDate: rest.effectiveDate
          number: rest.number
          refundAmount: rest.refundAmount
          status: rest.status
          type: rest.type
          unappliedAmount: rest.unappliedAmount
          updatedById: rest.updatedById
          updatedDate: rest.updatedDate
          sort: rest.sort
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/payments/{paymentid}
      name: v1-payments-paymentid
      description: REST surface for v1-payments-paymentId.
      operations:
      - method: PUT
        name: putupdatepayment
        description: Update a payment
        call: v1-payments.putupdatepayment
        with:
          body: rest.body
          paymentId: rest.paymentId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/payments/{paymentkey}
      name: v1-payments-paymentkey
      description: REST surface for v1-payments-paymentKey.
      operations:
      - method: GET
        name: getpayment
        description: Retrieve a payment
        call: v1-payments.getpayment
        with:
          paymentKey: rest.paymentKey
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletepayment
        description: Delete a payment
        call: v1-payments.deletepayment
        with:
          paymentKey: rest.paymentKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/payments/{paymentkey}/apply
      name: v1-payments-paymentkey-apply
      description: REST surface for v1-payments-paymentKey-apply.
      operations:
      - method: PUT
        name: putapplypayment
        description: Apply a payment
        call: v1-payments.putapplypayment
        with:
          body: rest.body
          paymentKey: rest.paymentKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/payments/{paymentkey}/cancel
      name: v1-payments-paymentkey-cancel
      description: REST surface for v1-payments-paymentKey-cancel.
      operations:
      - method: PUT
        name: putcancelpayment
        description: Cancel a payment
        call: v1-payments.putcancelpayment
        with:
          paymentKey: rest.paymentKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/payments/{paymentkey}/parts
      name: v1-payments-paymentkey-parts
      description: REST surface for v1-payments-paymentKey-parts.
      operations:
      - method: GET
        name: getpaymentparts
        description: List all parts of a payment
        call: v1-payments.getpaymentparts
        with:
          paymentKey: rest.paymentKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/payments/{paymentkey}/parts/{partid}
      name: v1-payments-paymentkey-parts-partid
      description: REST surface for v1-payments-paymentKey-parts-partid.
      operations:
      - method: GET
        name: getpaymentpart
        description: Retrieve a payment part
        call: v1-payments.getpaymentpart
        with:
          partid: rest.partid
          paymentKey: rest.paymentKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/payments/{paymentkey}/parts/{partid}/itemparts
      name: v1-payments-paymentkey-parts-partid-itemparts
      description: REST surface for v1-payments-paymentKey-parts-partid-itemparts.
      operations:
      - method: GET
        name: getpaymentitemparts
        description: List all payment part items
        call: v1-payments.getpaymentitemparts
        with:
          partid: rest.partid
          paymentKey: rest.paymentKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/payments/{paymentkey}/parts/{partid}/itemparts/{itempartid}
      name: v1-payments-paymentkey-parts-partid-itemparts-itempartid
      description: REST surface for v1-payments-paymentKey-parts-partid-itemparts-itempartid.
      operations:
      - method: GET
        name: getpaymentitempart
        description: Retrieve a payment part item
        call: v1-payments.getpaymentitempart
        with:
          partid: rest.partid
          itempartid: rest.itempartid
          paymentKey: rest.paymentKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/payments/{paymentkey}/refunds
      name: v1-payments-paymentkey-refunds
      description: REST surface for v1-payments-paymentKey-refunds.
      operations:
      - method: POST
        name: postrefundpayment
        description: Refund a payment
        call: v1-payments.postrefundpayment
        with:
          body: rest.body
          paymentKey: rest.paymentKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/payments/{paymentkey}/refunds/unapply
      name: v1-payments-paymentkey-refunds-unapply
      description: REST surface for v1-payments-paymentKey-refunds-unapply.
      operations:
      - method: POST
        name: postrefundpaymentwithautounapply
        description: Refund a payment with auto-unapplying
        call: v1-payments.postrefundpaymentwithautounapply
        with:
          body: rest.body
          paymentKey: rest.paymentKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/payments/{paymentkey}/transfer
      name: v1-payments-paymentkey-transfer
      description: REST surface for v1-payments-paymentKey-transfer.
      operations:
      - method: PUT
        name: puttransferpayment
        description: Transfer a payment
        call: v1-payments.puttransferpayment
        with:
          body: rest.body
          paymentKey: rest.paymentKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/payments/{paymentkey}/unapply
      name: v1-payments-paymentkey-unapply
      description: REST surface for v1-payments-paymentKey-unapply.
      operations:
      - method: PUT
        name: putunapplypayment
        description: Unapply a payment
        call: v1-payments.putunapplypayment
        with:
          body: rest.body
          paymentKey: rest.paymentKey
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: v1-payments-mcp
    port: 9090
    transport: http
    description: MCP adapter for API Reference — Payments. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: create-payment
      description: Create a payment
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: v1-payments.postcreatepayment
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-payments
      description: List payments
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v1-payments.getretrieveallpayments
      with:
        accountId: tools.accountId
        amount: tools.amount
        appliedAmount: tools.appliedAmount
        createdById: tools.createdById
        createdDate: tools.createdDate
        creditBalanceAmount: tools.creditBalanceAmount
        currency: tools.currency
        effectiveDate: tools.effectiveDate
        number: tools.number
        refundAmount: tools.refundAmount
        status: tools.status
        type: tools.type
        unappliedAmount: tools.unappliedAmount
        updatedById: tools.updatedById
        updatedDate: tools.updatedDate
        sort: tools.sort
      outputParameters:
      - type: object
        mapping: $.
    - name: update-payment
      description: Update a payment
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: v1-payments.putupdatepayment
      with:
        body: tools.body
        paymentId: tools.paymentId
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-payment
      description: Retrieve a payment
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v1-payments.getpayment
      with:
        paymentKey: tools.paymentKey
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-payment
      description: Delete a payment
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: v1-payments.deletepayment
      with:
        paymentKey: tools.paymentKey
      outputParameters:
      - type: object
        mapping: $.
    - name: apply-payment
      description: Apply a payment
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: v1-payments.putapplypayment
      with:
        body: tools.body
        paymentKey: tools.paymentKey
      outputParameters:
      - type: object
        mapping: $.
    - name: cancel-payment
      description: Cancel a payment
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: v1-payments.putcancelpayment
      with:
        paymentKey: tools.paymentKey
      outputParameters:
      - type: object
        mapping: $.
    - name: list-all-parts-payment
      description: List all parts of a payment
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v1-payments.getpaymentparts
      with:
        paymentKey: tools.paymentKey
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-payment-part
      description: Retrieve a payment part
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v1-payments.getpaymentpart
      with:
        partid: tools.partid
        paymentKey: tools.paymentKey
      outputParameters:
      - type: object
        mapping: $.
    - name: list-all-payment-part-items
      description: List all payment part items
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v1-payments.getpaymentitemparts
      with:
        partid: tools.partid
        paymentKey: tools.paymentKey
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-payment-part-item
      description: Retrieve a payment part item
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v1-payments.getpaymentitempart
      with:
        partid: tools.partid
        itempartid: tools.itempartid
        paymentKey: tools.paymentKey
      outputParameters:
      - type: object
        mapping: $.
    - name: refund-payment
      description: Refund a payment
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: v1-payments.postrefundpayment
      with:
        body: tools.body
        paymentKey: tools.paymentKey
      outputParameters:
      - type: object
        mapping: $.
    - name: refund-payment-auto-unapplying
      description: Refund a payment with auto-unapplying
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: v1-payments.postrefundpaymentwithautounapply
      with:
        body: tools.body
        paymentKey: tools.paymentKey
      outputParameters:
      - type: object
        mapping: $.
    - name: transfer-payment
      description: Transfer a payment
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: v1-payments.puttransferpayment
      with:
        body: tools.body
        paymentKey: tools.paymentKey
      outputParameters:
      - type: object
        mapping: $.
    - name: unapply-payment
      description: Unapply a payment
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: v1-payments.putunapplypayment
      with:
        body: tools.body
        paymentKey: tools.paymentKey
      outputParameters:
      - type: object
        mapping: $.