Pin Payments · Capability

Pin Payments API

A complete payments solution, built for speed and simplicity. The Pin Payments API enables you to charge cards, manage customers, issue refunds, store cards, and run subscriptions.

Run with Naftiko PinPaymentsAPI

What You Can Do

POST
Post charges — Create a charge
/charges
GET
Get charges — List charges
/charges
GET
Get charges search — Search charges
/charges/search
GET
Get charges charge token — Retrieve a charge
/charges/{charge_token}
PUT
Put charges charge token void — Void an authorized charge
/charges/{charge_token}/void
PUT
Put charges charge token capture — Capture a previously authorized charge
/charges/{charge_token}/capture
GET
Get charges verify — Verify a 3D Secure result
/charges/verify
GET
Get charges charge token refunds — List refunds for a charge
/charges/{charge_token}/refunds
POST
Post charges charge token refunds — Create a refund
/charges/{charge_token}/refunds
GET
Get refunds — List refunds
/refunds
GET
Get refunds refund token — Retrieve a refund
/refunds/{refund_token}
POST
Post customers — Create a customer
/customers
GET
Get customers — List customers
/customers
GET
Get customers customer token — Retrieve a customer
/customers/{customer_token}
PUT
Put customers customer token — Update a customer
/customers/{customer_token}
DELETE
Delete customers customer token — Delete a customer
/customers/{customer_token}
GET
Get customers customer token charges — List charges for a customer
/customers/{customer_token}/charges
GET
Get customers customer token cards — List cards for a customer
/customers/{customer_token}/cards
POST
Post customers customer token cards — Add a card to a customer
/customers/{customer_token}/cards
DELETE
Delete customers customer token cards card token — Remove a non-primary card from a customer
/customers/{customer_token}/cards/{card_token}
GET
Get customers customer token subscriptions — List subscriptions for a customer
/customers/{customer_token}/subscriptions
DELETE
Delete customers customer token subscriptions su — Cancel a customer subscription
/customers/{customer_token}/subscriptions/{sub_token}
POST
Post cards — Tokenize a card
/cards
GET
Get cards card token — Retrieve a card
/cards/{card_token}

MCP Tools

post-charges

Create a charge

get-charges

List charges

read-only idempotent
get-charges-search

Search charges

read-only idempotent
get-charges-charge-token

Retrieve a charge

read-only idempotent
put-charges-charge-token-void

Void an authorized charge

idempotent
put-charges-charge-token-capture

Capture a previously authorized charge

idempotent
get-charges-verify

Verify a 3D Secure result

read-only idempotent
get-charges-charge-token-refunds

List refunds for a charge

read-only idempotent
post-charges-charge-token-refunds

Create a refund

get-refunds

List refunds

read-only idempotent
get-refunds-refund-token

Retrieve a refund

read-only idempotent
post-customers

Create a customer

get-customers

List customers

read-only idempotent
get-customers-customer-token

Retrieve a customer

read-only idempotent
put-customers-customer-token

Update a customer

idempotent
delete-customers-customer-token

Delete a customer

idempotent
get-customers-customer-token-charges

List charges for a customer

read-only idempotent
get-customers-customer-token-cards

List cards for a customer

read-only idempotent
post-customers-customer-token-cards

Add a card to a customer

delete-customers-customer-token-cards-card-token

Remove a non-primary card from a customer

idempotent
get-customers-customer-token-subscriptions

List subscriptions for a customer

read-only idempotent
delete-customers-customer-token-subscriptions-su

Cancel a customer subscription

idempotent
post-cards

Tokenize a card

get-cards-card-token

Retrieve a card

read-only idempotent

Capability Spec

pin-payments-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Pin Payments API
  description: A complete payments solution, built for speed and simplicity. The Pin Payments API enables you to charge cards,
    manage customers, issue refunds, store cards, and run subscriptions.
  tags:
  - Pin
  - Payments
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: pin-payments
    baseUri: https://api.pinpayments.com/1
    description: Pin Payments API HTTP API.
    authentication:
      type: basic
      username: '{{PIN_PAYMENTS_USERNAME}}'
      password: '{{PIN_PAYMENTS_PASSWORD}}'
    resources:
    - name: charges
      path: /charges
      operations:
      - name: post-charges
        method: POST
        description: Create a charge
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: get-charges
        method: GET
        description: List charges
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: charges-search
      path: /charges/search
      operations:
      - name: get-charges-search
        method: GET
        description: Search charges
        inputParameters:
        - name: query
          in: query
          type: string
        - name: start_date
          in: query
          type: string
        - name: end_date
          in: query
          type: string
        - name: sort
          in: query
          type: string
        - name: direction
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: charges-charge-token
      path: /charges/{charge_token}
      operations:
      - name: get-charges-charge-token
        method: GET
        description: Retrieve a charge
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: charges-charge-token-void
      path: /charges/{charge_token}/void
      operations:
      - name: put-charges-charge-token-void
        method: PUT
        description: Void an authorized charge
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: charges-charge-token-capture
      path: /charges/{charge_token}/capture
      operations:
      - name: put-charges-charge-token-capture
        method: PUT
        description: Capture a previously authorized charge
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: charges-verify
      path: /charges/verify
      operations:
      - name: get-charges-verify
        method: GET
        description: Verify a 3D Secure result
        inputParameters:
        - name: session_token
          in: query
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: charges-charge-token-refunds
      path: /charges/{charge_token}/refunds
      operations:
      - name: get-charges-charge-token-refunds
        method: GET
        description: List refunds for a charge
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: post-charges-charge-token-refunds
        method: POST
        description: Create a refund
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: refunds
      path: /refunds
      operations:
      - name: get-refunds
        method: GET
        description: List refunds
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: refunds-refund-token
      path: /refunds/{refund_token}
      operations:
      - name: get-refunds-refund-token
        method: GET
        description: Retrieve a refund
        inputParameters:
        - name: refund_token
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: customers
      path: /customers
      operations:
      - name: post-customers
        method: POST
        description: Create a customer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: get-customers
        method: GET
        description: List customers
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: customers-customer-token
      path: /customers/{customer_token}
      operations:
      - name: get-customers-customer-token
        method: GET
        description: Retrieve a customer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: put-customers-customer-token
        method: PUT
        description: Update a customer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: delete-customers-customer-token
        method: DELETE
        description: Delete a customer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: customers-customer-token-charges
      path: /customers/{customer_token}/charges
      operations:
      - name: get-customers-customer-token-charges
        method: GET
        description: List charges for a customer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: customers-customer-token-cards
      path: /customers/{customer_token}/cards
      operations:
      - name: get-customers-customer-token-cards
        method: GET
        description: List cards for a customer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: post-customers-customer-token-cards
        method: POST
        description: Add a card to a customer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: customers-customer-token-cards-card-token
      path: /customers/{customer_token}/cards/{card_token}
      operations:
      - name: delete-customers-customer-token-cards-card-token
        method: DELETE
        description: Remove a non-primary card from a customer
        inputParameters:
        - name: card_token
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: customers-customer-token-subscriptions
      path: /customers/{customer_token}/subscriptions
      operations:
      - name: get-customers-customer-token-subscriptions
        method: GET
        description: List subscriptions for a customer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: customers-customer-token-subscriptions-sub-token
      path: /customers/{customer_token}/subscriptions/{sub_token}
      operations:
      - name: delete-customers-customer-token-subscriptions-su
        method: DELETE
        description: Cancel a customer subscription
        inputParameters:
        - name: sub_token
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: cards
      path: /cards
      operations:
      - name: post-cards
        method: POST
        description: Tokenize a card
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: cards-card-token
      path: /cards/{card_token}
      operations:
      - name: get-cards-card-token
        method: GET
        description: Retrieve a card
        inputParameters:
        - name: card_token
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: pin-payments-rest
    description: REST adapter for Pin Payments API.
    resources:
    - path: /charges
      name: post-charges
      operations:
      - method: POST
        name: post-charges
        description: Create a charge
        call: pin-payments.post-charges
        outputParameters:
        - type: object
          mapping: $.
    - path: /charges
      name: get-charges
      operations:
      - method: GET
        name: get-charges
        description: List charges
        call: pin-payments.get-charges
        outputParameters:
        - type: object
          mapping: $.
    - path: /charges/search
      name: get-charges-search
      operations:
      - method: GET
        name: get-charges-search
        description: Search charges
        call: pin-payments.get-charges-search
        outputParameters:
        - type: object
          mapping: $.
    - path: /charges/{charge_token}
      name: get-charges-charge-token
      operations:
      - method: GET
        name: get-charges-charge-token
        description: Retrieve a charge
        call: pin-payments.get-charges-charge-token
        outputParameters:
        - type: object
          mapping: $.
    - path: /charges/{charge_token}/void
      name: put-charges-charge-token-void
      operations:
      - method: PUT
        name: put-charges-charge-token-void
        description: Void an authorized charge
        call: pin-payments.put-charges-charge-token-void
        outputParameters:
        - type: object
          mapping: $.
    - path: /charges/{charge_token}/capture
      name: put-charges-charge-token-capture
      operations:
      - method: PUT
        name: put-charges-charge-token-capture
        description: Capture a previously authorized charge
        call: pin-payments.put-charges-charge-token-capture
        outputParameters:
        - type: object
          mapping: $.
    - path: /charges/verify
      name: get-charges-verify
      operations:
      - method: GET
        name: get-charges-verify
        description: Verify a 3D Secure result
        call: pin-payments.get-charges-verify
        outputParameters:
        - type: object
          mapping: $.
    - path: /charges/{charge_token}/refunds
      name: get-charges-charge-token-refunds
      operations:
      - method: GET
        name: get-charges-charge-token-refunds
        description: List refunds for a charge
        call: pin-payments.get-charges-charge-token-refunds
        outputParameters:
        - type: object
          mapping: $.
    - path: /charges/{charge_token}/refunds
      name: post-charges-charge-token-refunds
      operations:
      - method: POST
        name: post-charges-charge-token-refunds
        description: Create a refund
        call: pin-payments.post-charges-charge-token-refunds
        outputParameters:
        - type: object
          mapping: $.
    - path: /refunds
      name: get-refunds
      operations:
      - method: GET
        name: get-refunds
        description: List refunds
        call: pin-payments.get-refunds
        outputParameters:
        - type: object
          mapping: $.
    - path: /refunds/{refund_token}
      name: get-refunds-refund-token
      operations:
      - method: GET
        name: get-refunds-refund-token
        description: Retrieve a refund
        call: pin-payments.get-refunds-refund-token
        with:
          refund_token: rest.refund_token
        outputParameters:
        - type: object
          mapping: $.
    - path: /customers
      name: post-customers
      operations:
      - method: POST
        name: post-customers
        description: Create a customer
        call: pin-payments.post-customers
        outputParameters:
        - type: object
          mapping: $.
    - path: /customers
      name: get-customers
      operations:
      - method: GET
        name: get-customers
        description: List customers
        call: pin-payments.get-customers
        outputParameters:
        - type: object
          mapping: $.
    - path: /customers/{customer_token}
      name: get-customers-customer-token
      operations:
      - method: GET
        name: get-customers-customer-token
        description: Retrieve a customer
        call: pin-payments.get-customers-customer-token
        outputParameters:
        - type: object
          mapping: $.
    - path: /customers/{customer_token}
      name: put-customers-customer-token
      operations:
      - method: PUT
        name: put-customers-customer-token
        description: Update a customer
        call: pin-payments.put-customers-customer-token
        outputParameters:
        - type: object
          mapping: $.
    - path: /customers/{customer_token}
      name: delete-customers-customer-token
      operations:
      - method: DELETE
        name: delete-customers-customer-token
        description: Delete a customer
        call: pin-payments.delete-customers-customer-token
        outputParameters:
        - type: object
          mapping: $.
    - path: /customers/{customer_token}/charges
      name: get-customers-customer-token-charges
      operations:
      - method: GET
        name: get-customers-customer-token-charges
        description: List charges for a customer
        call: pin-payments.get-customers-customer-token-charges
        outputParameters:
        - type: object
          mapping: $.
    - path: /customers/{customer_token}/cards
      name: get-customers-customer-token-cards
      operations:
      - method: GET
        name: get-customers-customer-token-cards
        description: List cards for a customer
        call: pin-payments.get-customers-customer-token-cards
        outputParameters:
        - type: object
          mapping: $.
    - path: /customers/{customer_token}/cards
      name: post-customers-customer-token-cards
      operations:
      - method: POST
        name: post-customers-customer-token-cards
        description: Add a card to a customer
        call: pin-payments.post-customers-customer-token-cards
        outputParameters:
        - type: object
          mapping: $.
    - path: /customers/{customer_token}/cards/{card_token}
      name: delete-customers-customer-token-cards-card-token
      operations:
      - method: DELETE
        name: delete-customers-customer-token-cards-card-token
        description: Remove a non-primary card from a customer
        call: pin-payments.delete-customers-customer-token-cards-card-token
        with:
          card_token: rest.card_token
        outputParameters:
        - type: object
          mapping: $.
    - path: /customers/{customer_token}/subscriptions
      name: get-customers-customer-token-subscriptions
      operations:
      - method: GET
        name: get-customers-customer-token-subscriptions
        description: List subscriptions for a customer
        call: pin-payments.get-customers-customer-token-subscriptions
        outputParameters:
        - type: object
          mapping: $.
    - path: /customers/{customer_token}/subscriptions/{sub_token}
      name: delete-customers-customer-token-subscriptions-su
      operations:
      - method: DELETE
        name: delete-customers-customer-token-subscriptions-su
        description: Cancel a customer subscription
        call: pin-payments.delete-customers-customer-token-subscriptions-su
        with:
          sub_token: rest.sub_token
        outputParameters:
        - type: object
          mapping: $.
    - path: /cards
      name: post-cards
      operations:
      - method: POST
        name: post-cards
        description: Tokenize a card
        call: pin-payments.post-cards
        outputParameters:
        - type: object
          mapping: $.
    - path: /cards/{card_token}
      name: get-cards-card-token
      operations:
      - method: GET
        name: get-cards-card-token
        description: Retrieve a card
        call: pin-payments.get-cards-card-token
        with:
          card_token: rest.card_token
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: pin-payments-mcp
    transport: http
    description: MCP adapter for Pin Payments API for AI agent use.
    tools:
    - name: post-charges
      description: Create a charge
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: pin-payments.post-charges
      outputParameters:
      - type: object
        mapping: $.
    - name: get-charges
      description: List charges
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pin-payments.get-charges
      outputParameters:
      - type: object
        mapping: $.
    - name: get-charges-search
      description: Search charges
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pin-payments.get-charges-search
      with:
        query: tools.query
        start_date: tools.start_date
        end_date: tools.end_date
        sort: tools.sort
        direction: tools.direction
      inputParameters:
      - name: query
        type: string
        description: query
      - name: start_date
        type: string
        description: start_date
      - name: end_date
        type: string
        description: end_date
      - name: sort
        type: string
        description: sort
      - name: direction
        type: integer
        description: direction
      outputParameters:
      - type: object
        mapping: $.
    - name: get-charges-charge-token
      description: Retrieve a charge
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pin-payments.get-charges-charge-token
      outputParameters:
      - type: object
        mapping: $.
    - name: put-charges-charge-token-void
      description: Void an authorized charge
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: pin-payments.put-charges-charge-token-void
      outputParameters:
      - type: object
        mapping: $.
    - name: put-charges-charge-token-capture
      description: Capture a previously authorized charge
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: pin-payments.put-charges-charge-token-capture
      outputParameters:
      - type: object
        mapping: $.
    - name: get-charges-verify
      description: Verify a 3D Secure result
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pin-payments.get-charges-verify
      with:
        session_token: tools.session_token
      inputParameters:
      - name: session_token
        type: string
        description: session_token
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: get-charges-charge-token-refunds
      description: List refunds for a charge
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pin-payments.get-charges-charge-token-refunds
      outputParameters:
      - type: object
        mapping: $.
    - name: post-charges-charge-token-refunds
      description: Create a refund
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: pin-payments.post-charges-charge-token-refunds
      outputParameters:
      - type: object
        mapping: $.
    - name: get-refunds
      description: List refunds
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pin-payments.get-refunds
      outputParameters:
      - type: object
        mapping: $.
    - name: get-refunds-refund-token
      description: Retrieve a refund
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pin-payments.get-refunds-refund-token
      with:
        refund_token: tools.refund_token
      inputParameters:
      - name: refund_token
        type: string
        description: refund_token
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: post-customers
      description: Create a customer
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: pin-payments.post-customers
      outputParameters:
      - type: object
        mapping: $.
    - name: get-customers
      description: List customers
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pin-payments.get-customers
      outputParameters:
      - type: object
        mapping: $.
    - name: get-customers-customer-token
      description: Retrieve a customer
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pin-payments.get-customers-customer-token
      outputParameters:
      - type: object
        mapping: $.
    - name: put-customers-customer-token
      description: Update a customer
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: pin-payments.put-customers-customer-token
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-customers-customer-token
      description: Delete a customer
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: pin-payments.delete-customers-customer-token
      outputParameters:
      - type: object
        mapping: $.
    - name: get-customers-customer-token-charges
      description: List charges for a customer
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pin-payments.get-customers-customer-token-charges
      outputParameters:
      - type: object
        mapping: $.
    - name: get-customers-customer-token-cards
      description: List cards for a customer
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pin-payments.get-customers-customer-token-cards
      outputParameters:
      - type: object
        mapping: $.
    - name: post-customers-customer-token-cards
      description: Add a card to a customer
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: pin-payments.post-customers-customer-token-cards
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-customers-customer-token-cards-card-token
      description: Remove a non-primary card from a customer
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: pin-payments.delete-customers-customer-token-cards-card-token
      with:
        card_token: tools.card_token
      inputParameters:
      - name: card_token
        type: string
        description: card_token
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: get-customers-customer-token-subscriptions
      description: List subscriptions for a customer
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pin-payments.get-customers-customer-token-subscriptions
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-customers-customer-token-subscriptions-su
      description: Cancel a customer subscription
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: pin-payments.delete-customers-customer-token-subscriptions-su
      with:
        sub_token: tools.sub_token
      inputParameters:
      - name: sub_token
        type: string
        description: sub_token
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: post-cards
      description: Tokenize a card
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: pin-payments.post-cards
      outputParameters:
      - type: object
        mapping: $.
    - name: get-cards-card-token
      description: Retrieve a card
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pin-payments.get-cards-card-token
      with:
        card_token: tools.card_token
      inputParameters:
      - name: card_token
        type: string
        description: card_token
        required: true
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    PIN_PAYMENTS_USERNAME: PIN_PAYMENTS_USERNAME
    PIN_PAYMENTS_PASSWORD: PIN_PAYMENTS_PASSWORD