CyberSource Pull Funds API
Cybersource Payouts Funds Transfer REST API for Account Funding Transaction (AFT)
Cybersource Payouts Funds Transfer REST API for Account Funding Transaction (AFT)
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/cybersource-pull-funds-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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