Slash Payments API

The Payments API from Slash — 4 operation(s) for payments.

Operations 7

GET /payments/payment-intent Get payments payment intent #
POST /payments/payment-intent Create payments payment intent #
GET /payments/payment-intent/{paymentIntentId} Get payments payment intent by payment intent id #
PATCH /payments/payment-intent/{paymentIntentId} Update payments payment intent by payment intent id #
GET /payments/refund Get payments refund #
POST /payments/refund Create payments refund #
GET /payments/refund/{refundId} Get payments refund by refund id #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/joinslash-com:joinslash-com-payments-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

joinslash-com-payments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Slash Public Payments API
  description: API description
  version: 0.0.1
  contact: {}
servers:
- url: https://api.slash.com
  description: production
security:
- api_key: []
- partner_api_key: []
- bearer: []
- developer_application: []
tags:
- name: Payments
paths:
  /payments/payment-intent:
    x-api-key-scopes:
    - revenue
    x-reference-path: paths/payments/payment-intent/route.yaml
    get:
      description: List payment intents for your legal entity, newest first. Supports cursor pagination and filtering by status.
      parameters:
      - name: cursor
        required: false
        in: query
        schema:
          type: string
        description: A cursor string to fetch the next page of results
        x-reference-path: schemas/Pagination/CursorParameter.yaml
      - name: filter:legalEntityId
        description: The legal entity ID. Required if authenticating with access to multiple legal entities.
        in: query
        required: false
        schema:
          type: string
      - name: filter:status
        description: Filter payment intents by status.
        in: query
        required: false
        schema:
          type: string
          enum:
          - pending
          - processing
          - succeeded
          - canceled
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PaymentIntent'
                      x-entrypoint:
                        virtualPath: schemas/PaymentIntent
                        sourcePath: schemas/PaymentIntent.yaml
                        title: PaymentIntent
                        origin: ./src/publicApi
                  metadata:
                    $ref: '#/components/schemas/Pagination.PaginationResponse'
                    x-entrypoint:
                      virtualPath: schemas/Pagination/PaginationResponse
                      sourcePath: schemas/Pagination/PaginationResponse.yaml
                      title: PaginationResponse
                      origin: ./src/publicApi
                required:
                - items
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: TooManyRequests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      - bearer: []
      tags:
      - Payments
      summary: Get payments payment intent
      x-summary-source: derived
      operationId: getPaymentsPaymentIntent
      x-operation-id-source: derived
    post:
      description: Create a payment intent for collection with the Slash Checkout SDK. When returned, the client secret authorizes the browser to load and confirm only this payment intent and must not be logged or stored in browser persistence.
      parameters:
      - name: X-Idempotency-Key
        description: An optional unique key for this payment intent. Retrying the same request with the same key returns the previously created payment intent.
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: integer
                  minimum: 1
                  description: Payment amount in the smallest unit of `currency`.
                currency:
                  type: string
                  description: ISO currency code for the payment. Supported currencies are `usd` and `eur`.
                  enum:
                  - usd
                  - eur
                metadata:
                  type: object
                  description: Merchant-defined metadata stored on the payment intent and returned in payment intent responses.
                  additionalProperties: true
                allowedPaymentMethods:
                  type: array
                  minItems: 1
                  uniqueItems: true
                  items:
                    $ref: '#/components/schemas/slashfi.models.enums.Acquiring.PaymentMethod.yaml'
                    x-entrypoint:
                      virtualPath: enums/Acquiring/PaymentMethod
                      sourcePath: enums/Acquiring/PaymentMethod.yaml
                      title: PaymentMethod
                      origin: /home/packages/api-specs/server-api-v2/node_modules/@slashfi/models/schemas
                      globalImport: true
                      typescript:
                        importPath: import  * as models from '@slashfi/models';
                        symbolValue: models.enums.Acquiring.PaymentMethod
                        typeValue: models.enums.Acquiring.PaymentMethod
                  description: Payment methods the buyer may use. Omit to allow all supported methods.
              required:
              - amount
              - currency
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paths.payments.payment-intent._dto.PostResponse'
                x-entrypoint:
                  virtualPath: paths/payments/payment-intent/_dto/PostResponse
                  sourcePath: paths/payments/payment-intent/_dto/PostResponse.yaml
                  title: PostResponse
                  origin: ./src/publicApi
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: TooManyRequests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      - bearer: []
      tags:
      - Payments
      summary: Create payments payment intent
      x-summary-source: derived
      operationId: postPaymentsPaymentIntent
      x-operation-id-source: derived
  /payments/payment-intent/{paymentIntentId}:
    x-api-key-scopes:
    - revenue
    x-reference-path: paths/payments/payment-intent/{paymentIntentId}/route.yaml
    get:
      description: Get a single payment intent by ID. Use this to check whether a payment has settled (`status` becomes `succeeded`) as an alternative or reconciliation fallback to webhooks.
      parameters:
      - name: paymentIntentId
        in: path
        required: true
        schema:
          type: string
      - name: filter:legalEntityId
        description: The legal entity ID. Required if authenticating with access to multiple legal entities.
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/PaymentIntent'
                  x-entrypoint:
                    virtualPath: schemas/PaymentIntent
                    sourcePath: schemas/PaymentIntent.yaml
                    title: PaymentIntent
                    origin: ./src/publicApi
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: TooManyRequests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      - bearer: []
      tags:
      - Payments
      summary: Get payments payment intent by payment intent id
      x-summary-source: derived
      operationId: getPaymentsPaymentIntentByPaymentIntentId
      x-operation-id-source: derived
    patch:
      description: Update the fields of a pending payment intent. Payment intents that are processing or in a terminal state cannot be updated.
      parameters:
      - name: paymentIntentId
        in: path
        required: true
        schema:
          type: string
      - name: filter:legalEntityId
        description: The legal entity ID. Required if authenticating with access to multiple legal entities.
        in: query
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              minProperties: 1
              additionalProperties: false
              properties:
                amount:
                  type: integer
                  minimum: 1
                  description: Payment amount in cents. Must be strictly positive.
                currency:
                  type: string
                  description: ISO currency code for the payment.
                  enum:
                  - usd
                  - eur
                metadata:
                  type: object
                  description: Merchant-defined metadata to shallow-merge into the existing metadata. Omitted keys remain unchanged. Set a top-level key to null to delete it.
                  additionalProperties: true
                allowedPaymentMethods:
                  type: array
                  nullable: true
                  minItems: 1
                  uniqueItems: true
                  items:
                    $ref: '#/components/schemas/slashfi.models.enums.Acquiring.PaymentMethod.yaml'
                    x-entrypoint:
                      virtualPath: enums/Acquiring/PaymentMethod
                      sourcePath: enums/Acquiring/PaymentMethod.yaml
                      title: PaymentMethod
                      origin: /home/packages/api-specs/server-api-v2/node_modules/@slashfi/models/schemas
                      globalImport: true
                      typescript:
                        importPath: import  * as models from '@slashfi/models';
                        symbolValue: models.enums.Acquiring.PaymentMethod
                        typeValue: models.enums.Acquiring.PaymentMethod
                  description: Omit to keep the current allowed payment methods, set to null to allow all supported methods, or provide a list to replace them.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentIntent'
                x-entrypoint:
                  virtualPath: schemas/PaymentIntent
                  sourcePath: schemas/PaymentIntent.yaml
                  title: PaymentIntent
                  origin: ./src/publicApi
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: The payment intent is no longer pending and cannot be updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
                x-entrypoint:
                  origin: ./src/publicApi
                  sourcePath: src/publicApi/paths/payments/payment-intent/{paymentIntentId}/route.yaml
                  title: Error
                  virtualPath: components/Error
                  globalImport: true
        '429':
          description: TooManyRequests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      - bearer: []
      tags:
      - Payments
      summary: Update payments payment intent by payment intent id
      x-summary-source: derived
      operationId: patchPaymentsPaymentIntentByPaymentIntentId
      x-operation-id-source: derived
  /payments/refund:
    x-api-key-scopes:
    - revenue
    x-reference-path: paths/payments/refund/route.yaml
    get:
      description: List refunds for your legal entity, newest first. Supports cursor pagination and filtering by payment intent and status.
      parameters:
      - name: cursor
        required: false
        in: query
        schema:
          type: string
        description: A cursor string to fetch the next page of results
        x-reference-path: schemas/Pagination/CursorParameter.yaml
      - name: filter:legalEntityId
        description: The legal entity ID. Required if authenticating with access to multiple legal entities.
        in: query
        required: false
        schema:
          type: string
      - name: filter:paymentIntentId
        description: Filter refunds by payment intent ID.
        in: query
        required: false
        schema:
          type: string
      - name: filter:status
        description: Filter refunds by status.
        in: query
        required: false
        schema:
          type: string
          enum:
          - pending
          - processing
          - succeeded
          - failed
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Refund'
                      x-entrypoint:
                        virtualPath: schemas/Refund
                        sourcePath: schemas/Refund.yaml
                        title: Refund
                        origin: ./src/publicApi
                  metadata:
                    $ref: '#/components/schemas/Pagination.PaginationResponse'
                    x-entrypoint:
                      virtualPath: schemas/Pagination/PaginationResponse
                      sourcePath: schemas/Pagination/PaginationResponse.yaml
                      title: PaginationResponse
                      origin: ./src/publicApi
                required:
                - items
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: TooManyRequests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      - bearer: []
      tags:
      - Payments
      summary: Get payments refund
      x-summary-source: derived
      operationId: getPaymentsRefund
      x-operation-id-source: derived
    post:
      description: Refund all or part of a succeeded payment. Optionally provide an `X-Idempotency-Key` header so retries with the same key and request return the existing refund.
      parameters:
      - name: X-Idempotency-Key
        description: An optional unique key for this refund. Retrying the same request with the same key returns the previously created refund.
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                paymentIntentId:
                  type: string
                  description: The payment intent to refund.
                amount:
                  type: integer
                  minimum: 1
                  description: Amount to refund, in the smallest unit of the payment intent's currency. The refund is always issued in the payment intent's currency.
              required:
              - paymentIntentId
              - amount
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Refund'
                  x-entrypoint:
                    virtualPath: schemas/Refund
                    sourcePath: schemas/Refund.yaml
                    title: Refund
                    origin: ./src/publicApi
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: TooManyRequests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      - bearer: []
      tags:
      - Payments
      summary: Create payments refund
      x-summary-source: derived
      operationId: postPaymentsRefund
      x-operation-id-source: derived
  /payments/refund/{refundId}:
    x-api-key-scopes:
    - revenue
    x-reference-path: paths/payments/refund/{refundId}/route.yaml
    get:
      description: Get a single refund by ID.
      parameters:
      - name: refundId
        in: path
        required: true
        schema:
          type: string
      - name: filter:legalEntityId
        description: The legal entity ID. Required if authenticating with access to multiple legal entities.
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Refund'
                  x-entrypoint:
                    virtualPath: schemas/Refund
                    sourcePath: schemas/Refund.yaml
                    title: Refund
                    origin: ./src/publicApi
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: TooManyRequests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      - bearer: []
      tags:
      - Payments
      summary: Get payments refund by refund id
      x-summary-source: derived
      operationId: getPaymentsRefundByRefundId
      x-operation-id-source: derived
components:
  schemas:
    slashfi.models.enums.Acquiring.PaymentMethod.yaml:
      type: string
      description: Payment method available for an acquiring PaymentIntent checkout.
      enum:
      - card
      - apple_pay
      - google_pay
      x-entrypoint:
        virtualPath: enums/Acquiring/PaymentMethod
        sourcePath: enums/Acquiring/PaymentMethod.yaml
        title: PaymentMethod
        origin: /home/packages/api-specs/server-api-v2/node_modules/@slashfi/models/schemas
        globalImport: true
      title: PaymentMethod
    paths.payments.payment-intent._dto.PostResponse:
      allOf:
      - $ref: '#/components/schemas/PaymentIntent'
        x-entrypoint:
          virtualPath: schemas/PaymentIntent
          sourcePath: schemas/PaymentIntent.yaml
          title: PaymentIntent
          origin: ./src/publicApi
      x-entrypoint:
        virtualPath: paths/payments/payment-intent/_dto/PostResponse
        sourcePath: paths/payments/payment-intent/_dto/PostResponse.yaml
        title: PostResponse
        origin: ./src/publicApi
      title: PostResponse
    Refund:
      type: object
      description: The refund object. Its `status` tracks the refund from creation through completion.
      properties:
        id:
          type: string
          description: Unique identifier for the refund.
        status:
          type: string
          description: Current refund processing status.
          enum:
          - pending
          - processing
          - succeeded
          - failed
        amount:
          type: integer
          description: Refund amount in the smallest unit of `currency`. Refunds are always in the currency of the payment intent being refunded.
        currency:
          type: string
          description: ISO currency code for the refund. Supported currencies are `usd` and `eur`.
          enum:
          - usd
          - eur
        paymentIntentId:
          type: string
          description: The payment intent being refunded.
        createdAt:
          type: string
          format: date-time
          description: ISO-8601 timestamp the refund was created at.
        updatedAt:
          type: string
          format: date-time
          description: ISO-8601 timestamp the refund last changed status.
      required:
      - id
      - status
      - amount
      - currency
      - paymentIntentId
      - createdAt
      - updatedAt
      x-entrypoint:
        virtualPath: schemas/Refund
        sourcePath: schemas/Refund.yaml
        title: Refund
        origin: ./src/publicApi
      title: Refund
    Pagination.PaginationResponse:
      type: object
      description: Response sent when requesting a list of data
      properties:
        nextCursor:
          type: string
          description: The cursor to use to retrieve the next page of data. If this is not sent, there is no more data to retrieve.
        count:
          type: number
          description: The number of items in the current page of data.
      x-entrypoint:
        virtualPath: schemas/Pagination/PaginationResponse
        sourcePath: schemas/Pagination/PaginationResponse.yaml
        title: PaginationResponse
        origin: ./src/publicApi
      title: PaginationResponse
    PaymentIntent:
      type: object
      description: The payment intent object. Its `status` tracks the payment from creation through settlement.
      properties:
        id:
          type: string
          description: Unique identifier for the payment intent.
        status:
          type: string
          description: Status of the payment intent. `pending` intents have not been paid yet; `processing` intents have a payment in flight awaiting settlement; `succeeded` intents have a confirmed settled payment; `canceled` intents were canceled and can no longer be paid.
          enum:
          - pending
          - processing
          - succeeded
          - canceled
        amount:
          type: integer
          description: Payment amount in the smallest unit of `currency`.
        currency:
          type: string
          description: ISO currency code for the payment. Supported currencies are `usd` and `eur`.
          enum:
          - usd
          - eur
        metadata:
          type: object
          description: Merchant-defined metadata stored on the payment intent and echoed in payment intent responses and the payment-intent success webhook.
          additionalProperties: true
        clientSecret:
          type: string
          description: Sensitive PaymentIntent-scoped browser capability. Do not log or store it in browser persistence.
        allowedPaymentMethods:
          type: array
          items:
            $ref: '#/components/schemas/slashfi.models.enums.Acquiring.PaymentMethod.yaml'
            x-entrypoint:
              virtualPath: enums/Acquiring/PaymentMethod
              sourcePath: enums/Acquiring/PaymentMethod.yaml
              title: PaymentMethod
              origin: /home/packages/api-specs/server-api-v2/node_modules/@slashfi/models/schemas
              globalImport: true
              typescript:
                importPath: import  * as models from '@slashfi/models';
                symbolValue: models.enums.Acquiring.PaymentMethod
                typeValue: models.enums.Acquiring.PaymentMethod
          description: Payment methods the merchant allows, exactly as set on create or update. Omitted when all supported methods are allowed.
        createdAt:
          type: string
          format: date-time
          description: ISO-8601 timestamp the payment intent was created at.
        updatedAt:
          type: string
          format: date-time
          description: ISO-8601 timestamp the payment intent last changed status.
      required:
      - id
      - status
      - amount
      - currency
      - createdAt
      - updatedAt
      x-entrypoint:
        virtualPath: schemas/PaymentIntent
        sourcePath: schemas/PaymentIntent.yaml
        title: PaymentIntent
        origin: ./src/publicApi
      title: PaymentIntent
    Error:
      type: object
      properties:
        message:
          type: string
        name:
          type: string
        identifier:
          type: string
        rawStatus:
          type: number
        meta:
          type: object
          additionalProperties: true
      required:
      - message
      - name
      - identifier
      - rawStatus
      x-entrypoint:
        origin: ./src/publicApi
        sourcePath: ./src/publicApi/main.yaml
        title: Error
        virtualPath: components/Error
      title: Error
  securitySchemes:
    api_key:
      type: apiKey
      description: "API key authentication for public API requests.\n\nKeys come in two flavors:\n\n- *Legal-entity-scoped keys* are pinned to a single legal entity.\n  Minted via the dashboard under a specific entity; every request\n  acts on that entity.\n- *User-scoped keys* are pinned to a user and span every legal\n  entity that user has access to. Every request made with a\n  user-scoped key (except `GET /legal-entity`, which lists the\n  legal entities the user can access) must include an\n  `x-legal-entity` header naming the legal entity the request is\n  operating on. Requests without the header are rejected with\n  `400`. The authenticated user must have an active permission\n  role on the supplied legal entity, otherwise the request is\n  rejected with `403`.\n"
      name: X-API-Key
      in: header
    partner_api_key:
      type: apiKey
      description: 'Partner-program API key authentication.


        Keys are minted in the partner dashboard (Developers → API Keys),

        are scoped to a single partner program, and are prefixed with

        `sk_partner_`. Partner keys are only accepted by routes that

        declare this scheme; they are rejected by `api_key` routes and

        vice versa.

        '
      name: X-API-Key
      in: header
    bearer:
      type: http
      scheme: bearer
    developer_application:
      type: http
      scheme: basic