CyberSource Pull Funds API

Cybersource Payouts Funds Transfer REST API for Account Funding Transaction (AFT)

Operations 3

POST /pts/v1/pull-funds-transfer Process a Pull Funds Transfer #
POST /pts/v1/pull-funds-transfer/{id}/reversal Process a Pull Funds Reversal #
POST /pts/v1/pull-funds-transfer/{id}/refund Process a Pull Funds Refund #

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/cybersource-pull-funds-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

cybersource-pull-funds-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
  version: 0.0.1
  title: CyberSource Merged Spec bankAccountValidation Pull Funds API
servers:
- url: https://apitest.cybersource.com/
tags:
- name: Pull Funds
  description: 'Cybersource Payouts Funds Transfer REST API for Account Funding Transaction (AFT)

    '
paths:
  /pts/v1/pull-funds-transfer:
    post:
      summary: Process a Pull Funds Transfer
      description: 'Receive funds using an Account Funding Transaction (AFT).

        '
      tags:
      - Pull Funds
      operationId: createPullFundsTransfer
      x-devcenter-metaData:
        categoryTag: Payouts
        developerGuides: https://developer.cybersource.com/docs/cybs/en-us/payouts/developer/visadirect/rest/payouts-dev/payouts-intro-intro.html
      parameters:
      - name: Content-Type
        in: header
        required: true
        schema:
          type: string
      - name: x-requestid
        in: header
        required: true
        schema:
          type: string
      - name: v-c-merchant-id
        in: header
        required: true
        schema:
          type: string
      - name: v-c-permissions
        in: header
        required: true
        schema:
          type: string
      - name: v-c-correlation-id
        in: header
        required: true
        schema:
          type: string
      - name: v-c-organization-id
        in: header
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Successful response.
          content:
            application/hal+json;charset=utf-8:
              schema:
                title: pullFunds201Response
                type: object
                properties:
                  id:
                    type: string
                    maxLength: 26
                    description: 'A unique identification number to identify the submitted request. It is also appended to the endpoint of the resource.

                      '
                  submitTimeUtc:
                    type: string
                    maxLength: 20
                    minLength: 20
                    description: 'Time of request in UTC.

                      Format: `YYYY-MM-DDThh:mm:ssZ`


                      **Example**

                      `2016-08-11T22:47:57Z` equals August 11, 2016, at 22:47:57 (10:47:57 p.m.).

                      The `T` separates the date and the time.

                      The `Z` indicates UTC.

                      '
                  orderInformation:
                    type: object
                    properties:
                      amountDetails:
                        type: object
                        properties:
                          totalAmount:
                            type: string
                            maxLength: 12
                            description: 'Amount you requested for the payment.

                              '
                          currency:
                            type: string
                            pattern: ^(\s{0,3}|.{3})$
                            description: 'Currency used for the order. Use the three-character ISO Standard Currency Codes

                              '
                  status:
                    type: string
                    maxLength: 18
                    description: 'The status of the submitted transaction.


                      Possible values:

                      - AUTHORIZED

                      - DECLINED

                      - SERVER_ERROR

                      - INVALID_REQUEST

                      - PARTIAL_AUTHORIZED

                      '
                  errorInformation:
                    type: object
                    properties:
                      reason:
                        type: string
                        maxLength: 31
                        description: 'The reason of the status.


                          Possible values:

                          - CONTACT_PROCESSOR

                          - INVALID_MERCHANT_CONFIGURATION

                          - STOLEN_LOST_CARD

                          - PROCESSOR_DECLINED

                          - PARTIAL_APPROVAL

                          - PAYMENT_REFUSED

                          - INVALID_ACCOUNT

                          - ISSUER_UNAVAILABLE

                          - INSUFFICIENT_FUND

                          - EXPIRED_CARD

                          - INVALID_PIN

                          - UNAUTHORIZED_CARD

                          - EXCEEDS_CREDIT_LIMIT

                          - DEBIT_CARD_USAGE_LIMIT_EXCEEDED

                          - CVN_NOT_MATCH

                          - DUPLICATE_REQUEST

                          - GENERAL_DECLINE

                          - BLACKLISTED_CUSTOMER

                          - GATEWAY_TIMEOUT

                          - INVALID_DATA

                          - SYSTEM_ERROR

                          - SERVICE_UNAVAILABLE

                          - PROCESSOR_TIMEOUT

                          - PAYMENT_REJECTED

                          - PULL_PAYMENT_REFUSED

                          '
                      message:
                        type: string
                        maxLength: 256
                        description: 'The detail message related to the status and reason listed above.

                          '
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                              maxLength: 256
                              description: 'This is the flattened JSON object field name/path that is either missing or invalid.

                                '
                            reason:
                              type: string
                              maxLength: 31
                              description: "Possible reasons for the error. \n\nPossible values:\n- AUTH_ALREADY_REVERSED\n- CONTACT_PROCESSOR\n- DEBIT_CARD_USAGE_LIMIT_EXCEEDED\n- EXCEEDS_AUTH_AMOUNT\n- EXCEEDS_CREDIT_LIMIT\n- EXPIRED_CARD\n- GENERAL_DECLINE\n- INSUFFICIENT_FUND\n- INVALID_CVN\n- INVALID_DATA\n- MISSING_AUTH\n- PARTIAL_APPROVAL\n- PROCESSOR_DECLINED\n- SERVER_ERROR\n- STOLEN_LOST_CARD\n- SUCCESS\n- UNAUTHORIZED_CARD\n"
                  processorInformation:
                    type: object
                    properties:
                      systemTraceAuditNumber:
                        type: string
                        maxLength: 6
                        description: 'This field is returned by authorization and incremental authorization services.

                          System trace number that must be printed on the customer''s receipt.

                          '
                      approvalCode:
                        type: string
                        maxLength: 6
                        description: 'Issuer-generated approval code for the transaction.

                          '
                      responseCode:
                        type: string
                        maxLength: 10
                        description: 'Transaction status from the processor.

                          '
                      transactionId:
                        type: string
                        maxLength: 15
                        description: 'Network transaction identifier (TID). This value can be used to identify a specific transaction when you are discussing the transaction with your processor.

                          '
                      consumerAuthenticationResponse:
                        type: object
                        properties:
                          code:
                            type: string
                            maxLength: 3
                            description: 'Mapped response code for Visa Secure. A code is only returned if a CAVV result code is returned by the processor.

                              '
                      retrievalReferenceNumber:
                        type: string
                        maxLength: 12
                        description: "This field contains a number that is used with other data elements as a key to identify and track all messages related to a given cardholder transaction; that is, to a given transaction set.\n\nRecommended format: ydddhhnnnnnn \n\nPositions 1-4: The yddd equivalent of the date, where y = 0-9 and ddd = 001 – 366. \nPositions 5-12: A unique identification number generated by the merchant or assigned by Cybersource.\n"
                      avs:
                        type: object
                        properties:
                          code:
                            type: string
                            maxLength: 1
                            description: "AVS result code.\n\nCode\tDescription\n- 'Y' Full Match\n- 'A' Partial Match (street address only)\n- 'Z' Partial Match (postal/zip only)\n- 'N' Non-Match\n- 'U' Unable to Verify\n- 'R' Indeterminate Outcome (Retry)\n"
                      responseDetails:
                        type: string
                        maxLength: 255
                        description: 'This field might contain information about a decline.

                          '
                      customer:
                        type: object
                        properties:
                          personalIdResult:
                            type: string
                            maxLength: 1
                            description: 'Personal identifier validation result.


                              Valid values:

                              - ''1'': Verified

                              - ''2'': Failed

                              - ''3'': Not performed

                              - ''4'': Issuer does not support id verification

                              '
                      electronicVerificationResults:
                        type: object
                        properties:
                          emailRaw:
                            type: string
                            maxLength: 1
                            description: 'Raw Electronic Verification response code from the processor for the customer''s email address.


                              Valid values:

                              - ''1'': Verified

                              - ''2'': Failed

                              - ''3'': Not performed

                              '
                          firstNameRaw:
                            type: string
                            maxLength: 2
                            description: 'Raw electronic verification response code from the processor for the customer''s first name.


                              Valid values:

                              - ''01'': Match

                              - ''50'': Partial Match

                              - ''99'': No Match

                              '
                          lastNameRaw:
                            type: string
                            maxLength: 2
                            description: 'Raw electronic verification response code from the processor for the customer''s last name.


                              Valid values:

                              - ''01'': Match

                              - ''50'': Partial Match

                              - ''99'': No Match

                              '
                          middleNameRaw:
                            type: string
                            maxLength: 2
                            description: 'Raw electronic verification response code from the processor for the customer''s middle name.


                              Valid values:

                              - ''01'': Match

                              - ''50'': Partial Match

                              - ''99'': No Match

                              '
                          nameRaw:
                            type: string
                            maxLength: 2
                            description: 'Raw Electronic Verification response code from the processor for the customer''s name.


                              Valid values:

                              - ''01'': Match

                              - ''50'': Partial Match

                              - ''99'': No Match

                              '
                          phoneNumberRaw:
                            type: string
                            maxLength: 1
                            description: 'Raw Electronic Verification response code from the processor for the customer''s phone number.


                              Valid values:

                              - ''1'': Verified

                              - ''2'': Failed

                              - ''3'': Not performed

                              '
                      cardVerification:
                        type: object
                        properties:
                          resultCode:
                            type: string
                            maxLength: 1
                            description: 'CVN result code.

                              '
                          resultCodeRaw:
                            type: string
                            maxLength: 10
                            description: 'CVN result code sent directly from the processor. Returned only when the processor returns this value.


                              **Important** Do not use this field to evaluate the result of card verification. Use for debugging purposes only.

                              '
                  _links:
                    type: object
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                        description: A GET link to the AFT
                      reversal:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                        description: A POST link for a reversal
                      refund:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                        description: A POST link for a refund
                      customer:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                        description: A GET link to the customer supplied in the AFT
                      paymentInstrument:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                        description: A GET link to the payment instrument supplied in the AFT
                      instrumentIdentifier:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                        description: A GET link to the instrument identifier used in the AFT
                example:
                  _links:
                    refund:
                      href: /pts/v1/pull-funds-transfer/6668885718936344401953/refund
                      method: POST
                    reversal:
                      href: /pts/v1/pull-funds-transfer/6668885718936344401953/reversal
                      method: POST
                    self:
                      method: GET
                      href: /pts/v1/pull-funds-transfer/6668885718936344401953
                  processorInformation:
                    approvalCode: 98765X
                    transactionId: '393209441134856'
                    systemTraceAuditNumber: '572474'
                    responseCode: '5'
                  id: '6668885718936344401953'
                  status: AUTHORIZED
                  submitTimeUtc: '2022-10-27T16:36:12Z'
        '400':
          description: Invalid request.
          content:
            application/hal+json;charset=utf-8:
              schema:
                title: pullFunds400Response
                type: object
                properties:
                  id:
                    type: string
                    maxLength: 26
                    description: 'A unique identification number to identify the submitted request. It is also appended to the endpoint of the resource.

                      '
                  submitTimeUtc:
                    type: string
                    maxLength: 20
                    minLength: 20
                    description: 'Time of request in UTC.

                      Format: `YYYY-MM-DDThh:mm:ssZ`


                      **Example**

                      `2016-08-11T22:47:57Z` equals August 11, 2016, at 22:47:57 (10:47:57 p.m.).

                      The `T` separates the date and the time.

                      The `Z` indicates UTC.

                      '
                  status:
                    type: string
                    description: 'Possible values:

                      - INVALID_REQUEST

                      '
                  reason:
                    type: string
                    description: 'The reason of the status.


                      Possible values:

                      - INVALID_DATA

                      - MISSING_FIELD

                      - INVALID_MERCHANT_CONFIGURATION

                      - INVALID_REQUEST

                      - INVALID_PAYMENT_ID

                      '
                  message:
                    type: string
                    description: 'The detail message related to the status and reason listed above.


                      Possible values:

                      - One or more fields in the request contains invalid data.

                      - The request is missing one or more required fields.

                      - Declined - There is a problem with your CyberSource merchant configuration.

                      '
                  details:
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          description: 'This is the flattened JSON object field name/path that is either missing or invalid.

                            '
                        reason:
                          type: string
                          description: 'Possible reasons for the error.


                            Possible values:

                            - MISSING_FIELD

                            - INVALID_DATA

                            '
        '401':
          description: Unauthorized.
          content:
            application/hal+json;charset=utf-8:
              schema:
                title: pullFunds401Response
                type: object
                properties:
                  id:
                    type: string
                    maxLength: 26
                    description: 'A unique identification number to identify the submitted request. It is also appended to the endpoint of the resource.

                      '
                  submitTimeUtc:
                    type: string
                    maxLength: 20
                    minLength: 20
                    description: 'Time of request in UTC.

                      Format: `YYYY-MM-DDThh:mm:ssZ`


                      **Example**

                      `2016-08-11T22:47:57Z` equals August 11, 2016, at 22:47:57 (10:47:57 p.m.).

                      The `T` separates the date and the time.

                      The `Z` indicates UTC.

                      '
                  reason:
                    type: string
                    description: 'The reason of the status.


                      Possible values:

                      - UNAUTHORIZED

                      '
                  message:
                    type: string
                    description: 'The detail message related to the status and reason listed above.


                      Possible values:

                      - Authentication Failed

                      '
        '404':
          description: Not Found.
          content:
            application/hal+json;charset=utf-8:
              schema:
                title: pullFunds404Response
                type: object
                properties:
                  id:
                    type: string
                    maxLength: 26
                    description: 'A unique identification number to identify the submitted request. It is also appended to the endpoint of the resource.

                      '
                  submitTimeUtc:
                    type: string
                    maxLength: 20
                    minLength: 20
                    description: 'Time of request in UTC.

                      Format: `YYYY-MM-DDThh:mm:ssZ`


                      **Example**

                      `2016-08-11T22:47:57Z` equals August 11, 2016, at 22:47:57 (10:47:57 p.m.).

                      The `T` separates the date and the time.

                      The `Z` indicates UTC.

                      '
                  reason:
                    type: string
                    description: 'The reason of the status.


                      Possible values:

                      - NOT_FOUND

                      '
                  message:
                    type: string
                    description: 'The detail message related to the status and reason listed above.


                      Possible values:

                      - The requested resource does not exist

                      '
        '502':
          description: Unexpected system error or system timeout.
          content:
            application/hal+json;charset=utf-8:
              schema:
                title: pullFunds502Response
                type: object
                properties:
                  id:
                    type: string
                    maxLength: 26
                    description: 'A unique identification number to identify the submitted request. It is also appended to the endpoint of the resource.

                      '
                  submitTimeUtc:
                    type: string
                    maxLength: 20
                    minLength: 20
                    description: 'Time of request in UTC.

                      Format: `YYYY-MM-DDThh:mm:ssZ`


                      **Example**

                      `2016-08-11T22:47:57Z` equals August 11, 2016, at 22:47:57 (10:47:57 p.m.).

                      The `T` separates the date and the time.

                      The `Z` indicates UTC.

                      '
                  status:
                    type: string
                    description: 'Possible values:

                      - SERVER_ERROR

                      '
                  reason:
                    type: string
                    description: 'The reason of the status.


                      Possible values:

                      - SYSTEM_ERROR

                      - SERVICE_TIMEOUT

                      '
                  message:
                    type: string
                    description: 'The detail message related to the status and reason listed above.


                      Possible values:

                      - Error - General system failure.

                      - The request was received, but a service did not finish running in time.

                      '
      x-example:
        example0:
          summary: Process Pull Funds Transfer
          sample-name: Process Pull Funds Transfer
          value:
            clientReferenceInformation:
              code: '33557799'
              applicationName: EXAMPLE API
              applicationVersion: V1
              applicationUser: example_user
            orderInformation:
              amountDetails:
                totalAmount: '53.00'
                currency: USD
            processingInformation:
              commerceIndicator: INTERNET
              businessApplicationId: WT
              purposeOfPayment: example
            recipientInformation:
              administrativeArea: TX
              country: US
              firstName: Jennifer
              middleInitial: M
              lastName: Doe
              identificationNumber: '1234567890'
              type: I
              descriptor: Jennifer1234
              address1: 123 Main St
              address2: Suite 4000
            senderInformation:
              postalCode: '94440'
              firstName: John
              middleInitial: A
              lastName: Doe
              address1: 567 Paseo Padre Boulevard
              address2: Apt 4
              locality: Foster City
              administrativeArea: CA
              country: US
              paymentInformation:
                card:
                  type: '001'
                  securityCode: '123'
                  number: '4111111111111111'
                  expirationMonth: '12'
                  expirationYear: '2035'
                accountType: '30'
              personalIdentification:
                issuingCountry: US
                id: 123abc
                type: TXIN
                personalIdType: I
              referenceNumber: '123456'
        example1:
          summary: Process Pull Funds Transfer with Token
          sample-name: Process Pull Funds Transfer with Token
          value:
            clientReferenceInformation:
              code: REF123456
              applicationName: Great Stuff Storefront
              applicationUser: G. Miller
            orderInformation:
              amountDetails:
                totalAmount: '100'
                currency: USD
            processingInformation:
              commerceIndicator: INTERNET
              businessApplicationId: PP
            recipientInformation:
              firstName: Amit
              lastName: Gupta
              country: US
              administrativeArea: CA
              identificationNumber: '123456789'
              type: I
            senderInformation:
              firstName: Ellen
              lastName: Torres
              address: 123 N Test St
              address1: 567 Paseo Padre Boulevard
              middleInitial: A
              country: US
              postalCode: '94404'
              locality: Foster City
              administrativeArea: CA
              paymentInformation:
                paymentInstrument:
                  id: 423A101DDF000D27E063AF598E0AFEE1
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              type: object
              properties:
                clientReferenceInformation:
                  type:
                  - object
                  - 'null'
                  properties:
                    code:
                      type:
                      - string
                      - 'null'
                      maxLength: 50
                      description: 'Originator-generated order reference or tracking number. It is recommended that you send a unique value for each transaction so that you can perform meaningful searches for the transaction.

                        '
                    applicationName:
                      type:
                      - string
                      - 'null'
                      maxLength: 50
                      description: 'The name of the Connection Method that the originator uses to send a transaction request to CyberSource.

                        '
                    applicationVersion:
                      type:
                      - string
                      - 'null'
                      maxLength: 50
                      description: 'Version of the CyberSource application or integration used for a transaction.

                        '
                    applicationUser:
                      type:
                      - string
                      - 'null'
                      maxLength: 60
                      description: 'The entity that is responsible for running the transaction and submitting the processing request to CyberSource. This could be a person, a system, or a connection method.

                        '
                orderInformation:
                  type: object
                  properties:
                    amountDetails:
                      type: object
                      required:
                      - totalAmount
                      - currency
                      properties:
                        totalAmount:
                          type: string
                          maxLength: 12
                          description: "The total amount of the funds transfer including all fees.\n\nThis value cannot be negative.  \nYou can include a decimal point (.), but no other special characters.\n"
                        currency:
                          type: string
                          maxLength: 3
                          description: "Use a 3-character alpha currency code for currency of the sender.\n\nISO standard currencies: [http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf)  \n\nCurrency must be supported by the processor.\n"
                        serviceFee:
                          type:
                          - string
                          - 'null'
                          maxLength: 8
                          description: 'When present, this field contains the sender''s surcharge as assessed by the originator. Values in this field must be in the same currency and format as defined in the amount field.

                            '
                        foreignExchangeFee:
                          type:
                          - string
                          - 'n

# --- truncated at 32 KB (131 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cybersource/refs/heads/main/openapi/cybersource-pull-funds-api-openapi.yml