Simplifi/Simplifipay Funding Source API

The Funding Source API from Simplifi/Simplifipay — 6 operation(s) for funding source.

OpenAPI Specification

simplifi-simplifipay-funding-source-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: SimpliFi Cards Auth Funding Source API
  version: 1.0.0
  description: 'SimpliFi Cards-as-a-Service API for issuing and managing virtual and physical cards across the GCC. Covers authentication (JWT), card programs, funding sources, cards, users, transactions, fees, rule groups, and webhook management. SimpliFi uses an asynchronous architecture: API calls return 2xx on receipt and final outcomes are delivered via webhooks.'
  contact:
    name: SimpliFi Support
    email: info@simplifipay.com
    url: https://apidoc.simplifipay.com/
servers:
- url: https://{env}-lb.simplifipay.com
  description: Load-balanced API host; {env} is the environment token issued during onboarding
  variables:
    env:
      default: uat
      description: Environment token issued by SimpliFi
security:
- bearerAuth: []
tags:
- name: Funding Source
paths:
  /v2/card-program/{uuid}/funding-source:
    post:
      summary: Link Funding Source to Card Program
      deprecated: false
      description: 'The Link Funding Source to Card Program endpoint links a funding source to a card program.

        The funding source works as an account that would be used to fund all its cards under this

        Card Program. Following are the properties of this endpoint.'
      tags:
      - Funding Source
      parameters:
      - name: uuid
        in: path
        description: This is a unique identifier for the program that was created using the Create Card Program API.
        required: true
        example: ''
        schema:
          type: string
      - name: Authorization
        in: header
        description: This field contains the JWT token that is used to authenticate the user.
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
      - name: requestUuid
        in: header
        description: 'A unique id is required to be passed as part of the header whenever a SimpliFi API is called from your

          system. This would help us in debugging in case of a discrepancy in the expected behavior of the API.'
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
          minLength: 20
          maxLength: 40
          examples:
          - 00d366f2-a6e9-4714-b172-02c4e58c29d8
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FundingSourceRequestModel'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FundingSourceResponseModel'
          headers: {}
        '400':
          description: Access token is missing or invalid
          content:
            application/json:
              schema:
                type: object
                properties: {}
          headers: {}
        '401':
          description: Access token is missing or invalid
          content:
            application/json:
              schema:
                type: object
                properties: {}
          headers: {}
      security:
      - bearerAuth: []
      operationId: linkFundingSourceToCardProgram
  /v1/card-program/{uuid}/funding-source-balance:
    get:
      summary: Get Balance of Funding Source
      deprecated: false
      description: 'The Get Balance of Funding Source endpoint retrieves the remaining balance of a funding source.

        Following are the properties of this endpoint.'
      tags:
      - Funding Source
      parameters:
      - name: uuid
        in: path
        description: This is a unique identifier for the program that was created using the Create Card Program API.
        required: true
        example: ''
        schema:
          type: string
      - name: Authorization
        in: header
        description: This field contains the JWT token that is used to authenticate the user.
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
      - name: requestUuid
        in: header
        description: 'A unique id is required to be passed as part of the header whenever a SimpliFi API is called from your

          system. This would help us in debugging in case of a discrepancy in the expected behavior of the API.'
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
          minLength: 20
          maxLength: 40
          examples:
          - 00d366f2-a6e9-4714-b172-02c4e58c29d8
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FundingSourceBalanceModel'
          headers: {}
        '400':
          description: Access token is missing or invalid
          content:
            application/json:
              schema:
                type: object
                properties: {}
          headers: {}
        '401':
          description: Access token is missing or invalid
          content:
            application/json:
              schema:
                type: object
                properties: {}
          headers: {}
      security:
      - bearerAuth: []
      operationId: getBalanceOfFundingSource
  /v1/card-program/raise-funding:
    post:
      summary: Raise Funding
      deprecated: false
      description: 'The Raise Funding endpoint helps in adding or removing funds from a funding source. This API doesn''t

        actually move the money between accounts but should be used so that the proof of funds is shared with

        the Issuer/Processor Bank. After the proof of funds attachment is verified by the Issuer/Processor

        funds would reflect in the respective funding source. Following are the properties of this endpoint.'
      tags:
      - Funding Source
      parameters:
      - name: Authorization
        in: header
        description: This field contains the JWT token that is used to authenticate the user.
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
      - name: requestUuid
        in: header
        description: 'A unique id is required to be passed as part of the header whenever a SimpliFi API is called from your

          system. This would help us in debugging in case of a discrepancy in the expected behavior of the API.'
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
          minLength: 20
          maxLength: 40
          examples:
          - 00d366f2-a6e9-4714-b172-02c4e58c29d8
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RaiseFundingRequestModel'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RaiseFundingResponseModel'
          headers: {}
        '400':
          description: Access token is missing or invalid
          content:
            application/json:
              schema:
                type: object
                properties: {}
          headers: {}
        '401':
          description: Access token is missing or invalid
          content:
            application/json:
              schema:
                type: object
                properties: {}
          headers: {}
      security:
      - bearerAuth: []
      operationId: raiseFunding
  /v1/statement:
    get:
      summary: Funding Source Statement
      deprecated: false
      description: Get funding source statement based on date range.
      tags:
      - Funding Source
      parameters:
      - name: accountId
        in: query
        description: The account ID of the processor mapping (wallet).
        required: true
        schema:
          type: string
      - name: startDate
        in: query
        description: start date of date-range
        required: false
        schema:
          type: string
          format: date
          examples:
          - '2025-02-28'
      - name: endDate
        in: query
        description: end date date of date-range
        required: false
        schema:
          type: string
          format: date
          examples:
          - '2025-02-28'
      - name: sortBy
        in: query
        description: sort statement column value
        required: false
        schema:
          type: string
      - name: sortDir
        in: query
        description: sort direction
        required: false
        schema:
          type: string
      - name: Authorization
        in: header
        description: This field contains the JWT token that is used to authenticate the user.
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
      - name: requestUuid
        in: header
        description: 'A unique id is required to be passed as part of the header whenever a SimpliFi API is called from your

          system. This would help us in debugging in case of a discrepancy in the expected behavior of the API.'
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
          minLength: 20
          maxLength: 40
          examples:
          - 00d366f2-a6e9-4714-b172-02c4e58c29d8
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatementResponse'
          headers: {}
        '401':
          description: Access token is missing or invalid
          content:
            application/json:
              schema:
                type: object
                properties: {}
          headers: {}
      security:
      - bearerAuth: []
      operationId: fundingSourceStatement
  /v1/funding-source/{thirdPartyId}/rule-group:
    post:
      summary: Create Rule Group on Funding Account
      deprecated: false
      description: The 'Create Rule Group' endpoint creates new rule group on the Funding Account.
      tags:
      - Funding Source
      parameters:
      - name: thirdPartyId
        in: path
        description: This is a unique identifier for the Account ID of funding source (wallet)
        required: true
        example: ''
        schema:
          type: string
      - name: Authorization
        in: header
        description: This field contains the JWT token that is used to authenticate the user.
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
      - name: requestUuid
        in: header
        description: 'A unique id is required to be passed as part of the header whenever a SimpliFi API is called from your

          system. This would help us in debugging in case of a discrepancy in the expected behavior of the API.'
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
          minLength: 20
          maxLength: 40
          examples:
          - 00d366f2-a6e9-4714-b172-02c4e58c29d8
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RuleGroupModel'
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RuleGroupModel'
          headers: {}
        '400':
          description: Entity not found with the specified UUID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          headers: {}
        '401':
          description: Access token is missing or invalid
          content:
            application/json:
              schema:
                type: object
                properties: {}
          headers: {}
      security:
      - bearerAuth: []
      operationId: createRuleGroupOnFundingAccount
    put:
      summary: Update Rule Group on Funding Account
      deprecated: false
      description: The 'Update Rule Group' endpoint updates an existing group on the Funding Account.
      tags:
      - Funding Source
      parameters:
      - name: thirdPartyId
        in: path
        description: This is a unique identifier for the Account ID of funding source (wallet)
        required: true
        example: ''
        schema:
          type: string
      - name: requestUuid
        in: header
        description: 'A unique id is required to be passed as part of the header whenever a SimpliFi API is called from your

          system. This would help us in debugging in case of a discrepancy in the expected behavior of the API.'
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
          minLength: 20
          maxLength: 40
          examples:
          - 00d366f2-a6e9-4714-b172-02c4e58c29d8
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RuleGroupModel'
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RuleGroupModel'
          headers: {}
        '400':
          description: Entity not found with the specified UUID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          headers: {}
        '401':
          description: Access token is missing or invalid
          content:
            application/json:
              schema:
                type: object
                properties: {}
          headers: {}
      security:
      - bearerAuth: []
      operationId: updateRuleGroupOnFundingAccount
    delete:
      summary: Delete Rule Group on Funding Account
      deprecated: false
      description: The 'Delete Rule Group' endpoint deletes an existing group on the Funding Account.
      tags:
      - Funding Source
      parameters:
      - name: thirdPartyId
        in: path
        description: This is a unique identifier for the Account ID of funding source (wallet)
        required: true
        example: ''
        schema:
          type: string
      - name: Authorization
        in: header
        description: This field contains the JWT token that is used to authenticate the user.
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
      - name: requestUuid
        in: header
        description: 'A unique id is required to be passed as part of the header whenever a SimpliFi API is called from your

          system. This would help us in debugging in case of a discrepancy in the expected behavior of the API.'
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
          minLength: 20
          maxLength: 40
          examples:
          - 00d366f2-a6e9-4714-b172-02c4e58c29d8
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RuleGroupModel'
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RuleGroupModel'
          headers: {}
        '400':
          description: Entity not found with the specified UUID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          headers: {}
        '401':
          description: Access token is missing or invalid
          content:
            application/json:
              schema:
                type: object
                properties: {}
                x--orders: []
                x--ignore-properties: []
          headers: {}
      security:
      - bearerAuth: []
      operationId: deleteRuleGroupOnFundingAccount
    get:
      summary: Get Rule Groups on Funding Account
      deprecated: false
      description: The 'Get Rule Group' endpoint fetches all existing groups on the Funding Account.
      tags:
      - Funding Source
      parameters:
      - name: thirdPartyId
        in: path
        description: This is a unique identifier for the Account ID of funding source (wallet)
        required: true
        example: ''
        schema:
          type: string
      - name: Authorization
        in: header
        description: This field contains the JWT token that is used to authenticate the user.
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
      - name: requestUuid
        in: header
        description: 'A unique id is required to be passed as part of the header whenever a SimpliFi API is called from your

          system. This would help us in debugging in case of a discrepancy in the expected behavior of the API.'
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
          minLength: 20
          maxLength: 40
          examples:
          - 00d366f2-a6e9-4714-b172-02c4e58c29d8
      responses:
        '202':
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RuleGroupResponseModel'
          headers: {}
        '400':
          description: Entity not found with the specified UUID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          headers: {}
        '401':
          description: Access token is missing or invalid
          content:
            application/json:
              schema:
                type: object
                properties: {}
          headers: {}
      security:
      - bearerAuth: []
      operationId: getRuleGroupsOnFundingAccount
  /v1/funding-source/{thirdPartyId}/rule-group/{ruleGroupUuid}:
    post:
      summary: Appply Rule Group on Funding Account
      deprecated: false
      description: The 'Apply Rule Group' endpoint applies an existing rule group on the Funding Account.
      tags:
      - Funding Source
      parameters:
      - name: thirdPartyId
        in: path
        description: This is a unique identifier for the Account ID of funding source (wallet)
        required: true
        example: ''
        schema:
          type: string
      - name: ruleGroupUuid
        in: path
        description: This is a unique identifier for the Rule Group
        required: true
        example: ''
        schema:
          type: string
      - name: Authorization
        in: header
        description: This field contains the JWT token that is used to authenticate the user.
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
      - name: requestUuid
        in: header
        description: 'A unique id is required to be passed as part of the header whenever a SimpliFi API is called from your

          system. This would help us in debugging in case of a discrepancy in the expected behavior of the API.'
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
          minLength: 20
          maxLength: 40
          examples:
          - 00d366f2-a6e9-4714-b172-02c4e58c29d8
      responses:
        '202':
          description: accepted.
          headers: {}
        '400':
          description: Entity not found with the specified UUID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          headers: {}
        '401':
          description: Access token is missing or invalid
          content:
            application/json:
              schema:
                type: object
                properties: {}
          headers: {}
      security:
      - bearerAuth: []
      operationId: appplyRuleGroupOnFundingAccount
    delete:
      summary: Remove Rule Group on Funding Account
      deprecated: false
      description: The 'Remove Rule Group' endpoint removes an existing rule group on the Funding Account.
      tags:
      - Funding Source
      parameters:
      - name: thirdPartyId
        in: path
        description: This is a unique identifier for the Account ID of funding source (wallet)
        required: true
        example: ''
        schema:
          type: string
      - name: ruleGroupUuid
        in: path
        description: This is a unique identifier for the Rule Group
        required: true
        example: ''
        schema:
          type: string
      - name: Authorization
        in: header
        description: This field contains the JWT token that is used to authenticate the user.
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
      - name: requestUuid
        in: header
        description: 'A unique id is required to be passed as part of the header whenever a SimpliFi API is called from your

          system. This would help us in debugging in case of a discrepancy in the expected behavior of the API.'
        required: true
        example: ''
        schema:
          type: string
          allowEmptyValue: false
          minLength: 20
          maxLength: 40
          examples:
          - 00d366f2-a6e9-4714-b172-02c4e58c29d8
      responses:
        '202':
          description: accepted.
          headers: {}
        '400':
          description: Entity not found with the specified UUID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          headers: {}
        '401':
          description: Access token is missing or invalid
          content:
            application/json:
              schema:
                type: object
                properties: {}
          headers: {}
      security:
      - bearerAuth: []
      operationId: removeRuleGroupOnFundingAccount
components:
  schemas:
    StatementResponse:
      type: object
      properties:
        companyName:
          type: string
          description: Name of the company.
          examples:
          - SimpliFi
        statementDate:
          type: string
          format: date
          description: The date on which the statement is created.
          examples:
          - '2025-02-28'
        accountId:
          type: string
          description: The account ID of wallet.
          examples:
          - '885180123'
        currency:
          type: string
          description: The currency in which the amounts are transacted.
          examples:
          - USD
        startDate:
          type: string
          format: date-time
          description: The start date of the date range.
          examples:
          - '2025-02-28 13:31:00'
        endDate:
          type: string
          format: date-time
          description: The end date of the date range.
          examples:
          - '2025-02-28 13:31:00'
        openingBalance:
          type: number
          format: decimal
          description: The opening balance on the account from the start date of the date range.
          examples:
          - '6.95'
        closingBalance:
          type: number
          format: decimal
          description: The closing balance on the account till the end date of the date range.
          examples:
          - '6.95'
        transactions:
          type: array
          description: The array of transactions.
          items:
            $ref: '#/components/schemas/StatementResponseDetails'
      required:
      - companyName
      - statementDate
      - accountId
      - currency
      - startDate
      - endDate
      - openingBalance
      - closingBalance
      - transactions
    RaiseFundingResponseModel:
      type: object
      properties:
        cardProgramUuid:
          type: string
          description: 'This field contains the system generated unique identifier for the program

            that was created using the Create Card Program API.'
          examples:
          - c83d26ed-f093-4e43-b81b-35884f068d4b
        amount:
          type: number
          format: decimal
          description: This field contains the amount that has been requested for fund transfer.
          examples:
          - '10000.00'
        transactionType:
          type: string
          description: This field contains the type of the transaction either `CREDIT` or `DEBIT`.
          enum:
          - CREDIT
          - DEBIT
          examples:
          - CREDIT
        status:
          type: string
          description: This field contains the status of the Raise Funding
          enum:
          - PENDING
          - ACKNOWLEDGED
          - APPROVED
          - NOT_APPROVED
          - REJECTED
          examples:
          - PENDING
      required:
      - cardProgramUuid
      - amount
      - transactionType
      - status
    RuleGroupModel:
      type: object
      properties:
        uuid:
          type: string
          description: 'This field contains the system generated unique identifier for the rule group

            that was created using the Rule Group API.'
          examples:
          - cceec464-eb26-4fbf-8e91-695f133ced0a
        name:
          type: string
          description: Name of the rule group
          examples:
          - Rule Group 1
        description:
          type: string
          description: Description of the rule group
          examples:
          - Rule Group 1 Description
        transactionRestrictions:
          $ref: '#/components/schemas/RuleGroupTransactionRestrictions'
        loadRestrictions:
          $ref: '#/components/schemas/RuleGroupLoadRestrictions'
        spendRestrictions:
          $ref: '#/components/schemas/RuleGroupSpendRestrictions'
      required:
      - name
    TransactionIdParameter:
      type: string
      description: This is an identifier of the transaction.
      examples:
      - '6712309'
    ErrorModel:
      type: object
      properties:
        errorCode:
          type: integer
          description: A 5-7 digit number defining the error
          examples:
          - '99997'
        message:
          type: string
          description: A brief message defining the error
          examples:
          - General Error
    RuleGroupResponseModel:
      type: object
      properties:
        ruleGroup:
          $ref: '#/components/schemas/RuleGroupModel'
        enabled:
          type: boolean
          description: This field tells whether the `ruleGroup` is enabled or not
          examples:
          - 'true'
      required:
      - ruleGroup
      - enabled
    RuleGroupTransactionRestrictions:
      type: object
      description: Details of transaction-related restrictions.
      properties:
        merchantRules:
          $ref: '#/components/schemas/RuleGroupMerchantRules'
      required:
      - merchantRules
    RuleGroupMerchantRules:
      type: object
      description: Allow or deny merchant category codes.
      properties:
        allow:
          type: boolean
          examples:
          - 'true'
        mcc:
          type: array
          items:
            type: string
        mccException:
          type: array
          items:
            type: string
      required:
      - allow
      - mcc
    RuleGroupSpendRestrictions:
      type: object
      description: Details of card spend-related restrictions.
      properties:
        setLimitPerTxn:
          type: number
          format: decimal
          examples:
          - 123.45
        velocityDailyLimit:
          type: number
          format: decimal
          examples:
          - 3.45
        velocityWeeklyLimit:
          type: number
          format: decimal
          examples:
          - 23.45
        velocityMonthlyLimit:
          type: number
          format: decimal
          examples:
          - 123.45
        txnCountDaily:
          type: number
          format: int32
          examples:
          - 3
        txnCountWeekly:
          type: number
          format: int32
          examples:
          - 5
        txnCountMonthly:
          type: number
          format: int32
          examples:
          - 10
    FundingSourceRequestModel:
      type: object
      properties:
        fundingSource:
          type: string
          description: 'This field contains a token that identifies the funding source that is to be linked with

            the card program. This information will be shared separately. If you don’t have them

            already, click on [this link](https://simplifipay.com/).'
          examples:
          - '1234567'
      required:
      - fundingSource
    RaiseFundingRequestModel:
      type: object
      properties:
        cardProgramUuid:
          type: string
          description: 'This field contains the system generated unique identifier for the program

            that was created using the Create Card Program API.'
          examples:
          - c83d26ed-f093-4e43-b81b-35884f068d4b
        amount:
          type: number
          format: decimal
          description: This field contains the amount that has been requested for fund transfer.
          examples:
          - '10000.00'
        transactionType:
          type: string
          description: This field contains the type of the transaction either `CREDIT` or `DEBIT`.
          enum:
          - CREDIT
          - DEBIT
          examples:
          - CREDIT
        documentUploadUuid:
          type: string
          description: 'This field contains the system generated unique identifier for the document

            that was uploaded'
          examples:
          - e95a7a97-5889-4001-8c40-ed79a8ab6ae9
      required:
      - cardProgramUuid
      - amount
      - transactionType
      - documentUploadUuid
    StatementResponseDetails:
      type: object
      properties:
        fundRequestUuid:
          type: string
          description: This is a unique identifier of the fund request.
          examples:
          - 11e082c2-993d-4026-82c4-1234ec464796
        transactionId:
          $ref: '#/components/schemas/TransactionIdParameter'
        transactionDate:
          type: string
          format: date-time
          description: The date on which the transaction was carried out.
          examples:
          - '2025-02-28 13:31:00'
        amount:
          type: number
          format: decimal
          description: The fund amount.
          examples:
          - '6.95'
        fundRequestType:
          type: string
          description: The type for fund request.
          enum:
          - LOAD
          - UNLOAD
          examples:
          - LOAD
        fundRequestCategory:
          type: string
          description: The category for fund request.
          enum:
          - RAISE_FUNDING
          - FUND_TRANSFER
          - CARD_LOAD
          - CARD_UNLOAD
          examples:
          - RAISE_FUNDING
        previousBalance:
          type: number
          format: decimal
          description: The balance on the account before this transaction.
          examples:
          - '6.95'
        currentBalance:
          type: number
          format: decimal
          description: The current balance on the account.
          examples:
          - '6.95'
        maskPan:
          type: string
          description: The mask pan of the transaction.
          examples:
          - '************2737'
        userName:
          type: string
          description: The username of the user of this transaction.
          examples:
          - john.smith@simplifipay.com
        userFullName:
          type: string
          description: The full name of the user of this transaction.
          examples:
          - John Smith
        userUuid:
          type: string
          description: The UUID of the user of this transaction.
          examples:
          - 1b2dbfc7-3432-4eb8-9367-fb123dcf2ba0
        srcCurrency:

# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/simplifi-simplifipay/refs/heads/main/openapi/simplifi-simplifipay-funding-source-api-openapi.yml