CyberSource Verification API
The Verification API from CyberSource — 2 operation(s) for verification.
The Verification API from CyberSource — 2 operation(s) for verification.
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-verification-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 Verification API
servers:
- url: https://apitest.cybersource.com/
tags:
- name: Verification
paths:
/risk/v1/address-verifications:
post:
summary: Verify customer address
description: This call verifies that the customer address submitted is valid.
operationId: verifyCustomerAddress
tags:
- Verification
x-devcenter-metaData:
categoryTag: Risk_Management
responses:
'201':
description: Successful response
content:
application/hal+json;charset=utf-8:
schema:
title: riskV1AddressVerificationsPost201Response
type: object
properties:
_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.'
id:
type: string
maxLength: 26
description: 'An unique identification number generated by Cybersource to identify the submitted request. Returned by all services.
It is also appended to the endpoint of the resource.
On incremental authorizations, this value with be the same as the identification number returned in the original authorization response.
'
submitTimeUtc:
type: string
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.
Returned by Cybersource for all services.
'
submitTimeLocal:
type: string
description: Time that the transaction was submitted in local time. Generated by Cybersource.
status:
type: string
description: 'The status for the call can be:
- COMPLETED
- INVALID_REQUEST
- DECLINED
'
message:
type: string
description: "The message describing the reason of the status. Value can be\n - Apartment number missing or not found.\n - Insufficient address information.\n - House/Box number not found on street.\n - Multiple address matches were found.\n - P.O. Box identifier not found or out of range.\n - Route service identifier not found or out of range.\n - Street name not found in Postal code.\n - Postal code not found in database.\n - Unable to verify or correct address.\n - Multiple addres matches were found (international)\n - Address match not found (no reason given)\n - Unsupported character set\n"
clientReferenceInformation:
type: object
properties:
code:
type: string
maxLength: 59
description: 'Merchant-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.
#### Used by
**Authorization**
Required field.
#### PIN Debit
Requests for PIN debit reversals need to use the same merchant reference number that was used in the transaction that is being
reversed.
Required field for all PIN Debit requests (purchase, credit, and reversal).
#### FDC Nashville Global
Certain circumstances can cause the processor to truncate this value to 15 or 17 characters for Level II and Level III processing, which can cause a discrepancy between the value you submit and the value included in some processor reports.
'
comments:
type: string
maxLength: 255
description: 'Brief description of the order or any comment you wish to add to the order.
'
partner:
type: object
properties:
developerId:
type: string
maxLength: 8
description: 'Identifier for the developer that helped integrate a partner solution to CyberSource.
Send this value in all requests that are sent through the partner solutions built by that developer.
CyberSource assigns the ID to the developer.
**Note** When you see a developer ID of 999 in reports, the developer ID that was submitted is incorrect.
'
solutionId:
type: string
maxLength: 8
description: 'Identifier for the partner that is integrated to CyberSource.
Send this value in all requests that are sent through the partner solution. CyberSource assigns the ID to the partner.
**Note** When you see a solutionId of 999 in reports, the solutionId that was submitted is incorrect.
'
addressVerificationInformation:
type: object
properties:
addressType:
type: string
maxLength: 255
description: "Contains the record type of the postal code with which the address was matched.\n\n#### U.S. Addresses\nDepending on the quantity and quality of the address information provided,\nthis field contains one or two characters:\n\n- One character: sufficient correct information was provided to result in accurate matching.\n- Two characters: standardization would provide a better address if more or better\ninput address information were available. The second character is D (default).\n\nBlank fields are unassigned. When an address cannot be standardized, how the input\ndata was parsed determines the address type. In this case, standardization may indicate a street, rural route,\nhighway contract, general delivery, or PO box. \n\n#### All Other Countries\nThis field contains one of the following values:\n- P: Post.\n- S: Street.\n- x: Unknown.\n"
barCode:
type: object
properties:
value:
type: string
maxLength: 255
description: Delivery point bar code determined from the input address.
checkDigit:
type: number
maxLength: 1
description: Check digit for the 11-digit delivery point bar code.
applicableRegion:
type: string
maxLength: 255
description: 'Value can be
- Canada
- US
- International
The values of errorCode and statusCode mean different things depending on the applicable region.
Refer to the guide for more info.
'
errorCode:
type: string
maxLength: 255
description: 'Four-character error code returned for Canadian, US and international addresses.
For possible values, see Verification Services guide.
The meaning of the errorCode depends on value of applicableRegion.
'
statusCode:
type: string
maxLength: 255
description: 'Four-to-ten character status code returned for Canadian, US and international addresses.
For possible values, see Verification Services guide.
The meaning of the errorCode depends on value of applicableRegion.
'
careOf:
type: string
maxLength: 255
description: Care of data dropped from the standard address.
matchScore:
type: integer
maxLength: 1
description: 'Indicates the probable correctness of the address match. Returned for U.S. and Canadian addresses.
Returns a value from 0-9, where 0 is most likely to be correct and 9 is least
likely to be correct, or -1 if there is no address match.
'
standardAddress:
type: object
properties:
address1:
type: object
properties:
withApartment:
type: string
maxLength: 255
description: First line of the standardized address, including apartment information.
withoutApartment:
type: string
maxLength: 255
description: 'First line of the standardized address, without apartment information.
Returned for U.S. and Canadian addresses.
'
address2:
type: string
maxLength: 255
description: Second line of the standardized address.
address3:
type: string
maxLength: 255
description: Third line of the standardized address.
address4:
type: string
maxLength: 255
description: Fourth line of the standardized address.
locality:
type: string
maxLength: 255
description: Standardized city name.
county:
type: string
maxLength: 255
description: U.S. county if available.
country:
type: string
maxLength: 255
description: Standardized country name.
csz:
type: string
maxLength: 255
description: Standardized city, state or province, and ZIP +4 code or postal code line.
isoCountry:
type: string
maxLength: 255
description: Standardized two-character ISO country code.
administrativeArea:
type: string
maxLength: 255
description: U.S.P.S. standardized state or province abbreviation.
postalCode:
type: string
maxLength: 255
description: Standardized U.S. ZIP + 4 postal code.
errorInformation:
type: object
properties:
reason:
type: string
description: "The reason of the status. Value can be\n - `APARTMENT_NUMBER_NOT_FOUND`\n - `INSUFFICIENT_ADDRESS_INFORMATION`\n - `HOUSE_OR_BOX_NUMBER_NOT_FOUND`\n - `MULTIPLE_ADDRESS_MATCHES`\n - `BOX_NUMBER_NOT_FOUND`\n - `ROUTE_SERVICE_NOT_FOUND`\n - `STREET_NAME_NOT_FOUND`\n - `POSTAL_CODE_NOT_FOUND`\n - `UNVERIFIABLE_ADDRESS`\n - `MULTIPLE_ADDRESS_MATCHES_INTERNATIONAL`\n - `ADDRESS_MATCH_NOT_FOUND`\n - `UNSUPPORTED_CHARACTER_SET`\n - `INVALID_MERCHANT_CONFIGURATION`\n"
message:
type: string
description: The detail message related to the status and reason listed above.
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.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n"
'400':
description: Invalid request
content:
application/hal+json;charset=utf-8:
schema:
title: riskV1AddressVerificationsPost400Response
type: object
properties:
submitTimeUtc:
type: string
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.
Returned by Cybersource for all services.
'
status:
type: string
description: "The status of the submitted transaction.\n\nPossible values:\n - INVALID_REQUEST\n"
reason:
type: string
description: 'The reason of the status.
Possible Values:
- `MISSING_FIELD`
- `INVALID_DATA`
'
message:
type: string
description: The detail message related to the status and reason listed above.
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.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n"
'502':
description: Unexpected system error or system timeout.
content:
application/hal+json;charset=utf-8:
schema:
title: riskV1AddressVerificationsPost502Response
type: object
properties:
submitTimeUtc:
type: string
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.
Returned by Cybersource for all services.
'
status:
type: string
description: "The status of the submitted transaction.\n\nPossible values:\n - SERVER_ERROR\n"
reason:
type: string
description: "The reason of the status.\n\nPossible values:\n - SYSTEM_ERROR\n - SERVER_TIMEOUT\n - SERVICE_TIMEOUT\n"
message:
type: string
description: The detail message related to the status and reason listed above.
x-example:
example0:
summary: Verbose Request with all fields
value:
clientReferenceInformation:
code: addressEg
comments: dav-All fields
partner:
developerId: '7891234'
solutionId: '89012345'
orderInformation:
billTo:
address1: 12301 research st
address2: '1'
address3: '2'
address4: '3'
locality: Austin
country: US
administrativeArea: TX
postalCode: '78759'
shipTo:
address1: '1715 oaks apt # 7'
address2: ' '
address3: ''
address4: ''
locality: SUPERIOR
country: US
administrativeArea: WI
postalCode: '29681'
lineItems:
- unitPrice: '120.50'
productSKU: '9966223'
productCode: electronic
productName: headset
quantity: '3'
passenger:
firstname: ABCD
lastname: DEF
buyerInformation:
merchantCustomerId: ABCD
responseValue:
addressVerificationInformation:
matchScore: '0'
standardAddress:
country: US
address1:
withoutApartment: 1715 Oakes Ave
withApartment: 1715 Oakes Ave Apt 7
postalCode: 54880-2466
county: Douglas
locality: Superior
csz: Superior WI 54880-2466
administrativeArea: WI
isoCountry: US
addressType: H
barCode:
checkDigit: '0'
value: '246607'
statusCode: S99000
clientReferenceInformation:
code: addressEg
comments: dav-All fields
partner:
developerId: '7891234'
solutionId: '89012345'
id: '5574744400096019003092'
status: COMPLETED
submitTimeUtc: '2019-05-10T07:47:20Z'
example1:
summary: Shipping Details not US or Canada
value:
clientReferenceInformation:
code: addressEg
comments: dav-All fields
orderInformation:
billTo:
address1: 12301 research st
address2: '1'
address3: '2'
address4: '3'
locality: Austin
country: US
administrativeArea: TX
postalCode: '78759'
shipTo:
address1: 4R.ILHA TERCEIRA,232-R/C-ESQ
address2: ' '
address3: ''
address4: ''
locality: Carcavelos
country: PT
administrativeArea: WI
postalCode: '29681'
lineItems:
- unitPrice: '120.50'
productSKU: '9966223'
productCode: electronic
productName: headset
quantity: '3'
passenger:
firstname: ABCD
lastname: DEF
buyerInformation:
merchantCustomerId: ABCD
responseValue:
addressVerificationInformation:
matchScore: '6'
standardAddress:
country: Portugal
address2: C Esq - R
address1:
withApartment: R Ilha Terceira 232 - C Esq - R
postalCode: 2775-796
locality: Carcavelos
administrativeArea: Lisboa
isoCountry: PT
addressType: S
statusCode: SE600
clientReferenceInformation:
code: addressEg
id: '5574744458726021803092'
status: COMPLETED
submitTimeUtc: '2019-05-10T07:47:26Z'
example2:
summary: Canadian Billing Details
value:
clientReferenceInformation:
code: addressEg
comments: dav-All fields
orderInformation:
billTo:
address1: 1650 Burton Ave
address2: ''
address3: ''
address4: ''
locality: VICTORIA
country: CA
administrativeArea: BC
postalCode: V8T 2N6
lineItems:
- unitPrice: '120.50'
productSKU: '9966223'
productCode: electronic
productName: headset
quantity: '3'
passenger:
firstname: ABCD
lastname: DEF
buyerInformation:
merchantCustomerId: ABCD
responseValue:
addressVerificationInformation:
matchScore: '0'
standardAddress:
country: CA
address1:
withoutApartment: 1650 Burton Ave
withApartment: 1650 Burton Ave
postalCode: V8T2N6
locality: Victoria
csz: Victoria BC V8T 2N6
administrativeArea: BC
isoCountry: CA
addressType: S
statusCode: S0000
clientReferenceInformation:
code: addressEg
id: '5574744407796019403092'
status: COMPLETED
submitTimeUtc: '2019-05-10T07:47:20Z'
example3:
summary: Multiple Line Items
value:
clientReferenceInformation:
code: addressEg
comments: dav-All fields
orderInformation:
billTo:
address1: 12301 research st
address2: '1'
address3: '2'
address4: '3'
locality: Austin
country: US
administrativeArea: TX
postalCode: '78759'
shipTo:
address1: PO Box 9088
address2: ''
address3: ''
address4: ''
locality: San Jose
country: US
administrativeArea: CA
postalCode: '95132'
lineItems:
- unitPrice: '120.50'
productSKU: '9966223'
productCode: electronix
productName: headset
quantity: '3'
- unitPrice: '10.50'
productSKU: '9966226'
productCode: electronic
productName: wwrdf
quantity: '2'
buyerInformation:
merchantCustomerId: QWERTY
responseValue:
addressVerificationInformation:
matchScore: '0'
standardAddress:
country: US
address1:
withoutApartment: PO Box 9088
withApartment: PO Box 9088
postalCode: 95157-0088
county: Santa Clara
locality: San Jose
csz: San Jose CA 95157-0088
administrativeArea: CA
isoCountry: US
addressType: P
barCode:
checkDigit: '1'
value: 008888
statusCode: S90000
clientReferenceInformation:
code: addressEg
id: '5574744469676022203092'
status: COMPLETED
submitTimeUtc: '2019-05-10T07:47:27Z'
example4:
summary: Apartment Number Missing or Not Found
value:
clientReferenceInformation:
code: addressEg
comments: dav-error response check
orderInformation:
billTo:
address1: 6th 4th ave
address2: ''
locality: rensslaer
country: US
administrativeArea: NY
postalCode: '12144'
lineItems:
- unitPrice: '120.50'
productSKU: '996633'
productCode: handling
productName: qwerty
quantity: '3'
responseValue:
addressVerificationInformation:
errorCode: E420
statusCode: S20000
clientReferenceInformation:
code: addressEg
errorInformation:
reason: APARTMENT_NUMBER_NOT_FOUND
message: Apartment number missing or not found.
id: '5574744502546023003092'
status: DECLINED
submitTimeUtc: '2019-05-10T07:47:30Z'
example5:
summary: Address Match Not Found
value:
clientReferenceInformation:
code: addressEg
comments: dav-error response check
orderInformation:
billTo:
address1: 'Apt C '
address2: ''
locality: Glendale
country: US
administrativeArea: CA
postalCode: '91204'
responseValue:
addressVerificationInformation:
errorCode: E302
statusCode: S00000
clientReferenceInformation:
code: addressEg
errorInformation:
reason: ADDRESS_MATCH_NOT_FOUND
message: Address match not found.
id: '5574744508936023403092'
status: DECLINED
submitTimeUtc: '2019-05-10T07:47:31Z'
requestBody:
content:
application/json;charset=utf-8:
schema:
type: object
properties:
clientReferenceInformation:
type: object
properties:
code:
type: string
maxLength: 59
description: 'Merchant-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.
#### Used by
**Authorization**
Required field.
#### PIN Debit
Requests for PIN debit reversals need to use the same merchant reference number that was used in the transaction that is being
reversed.
Required field for all PIN Debit requests (purchase, credit, and reversal).
#### FDC Nashville Global
Certain circumstances can cause the processor to truncate this value to 15 or 17 characters for Level II and Level III processing, which can cause a discrepancy between the value you submit and the value included in some processor reports.
'
comments:
type: string
maxLength: 255
description: 'Brief description of the order or any comment you wish to add to the order.
'
partner:
type: object
properties:
developerId:
type: string
maxLength: 8
description: 'Identifier for the developer that helped integrate a partner solution to CyberSource.
Send this value in all requests that are sent through the partner solutions built by that developer.
CyberSource assigns the ID to the developer.
**Note** When you see a developer ID of 999 in reports, the developer ID that was submitted is incorrect.
'
solutionId:
type: string
maxLength: 8
description: 'Identifier for the partner that is integrated to CyberSource.
Send this value in all requests that are sent through the partner solution. CyberSource assigns the ID to the partner.
**Note** When you see a solutionId of 999 in reports, the solutionId that was submitted is incorrect.
'
orderInformation:
type: object
properties:
billTo:
type: object
required:
- address1
- locality
- country
- postalCode
properties:
address1:
type: string
maxLength: 60
description: 'Payment card billing street address as it appears on the credit card issuer''s records.
#### SEPA
Required for Create Mandate and Import Mandate
#### Atos
This field must not contain colons (:).
#### CyberSource through VisaNet
**Important** When you populate orderInformation.billTo.address1 and orderInformation.billTo.address2,
CyberSource through VisaNet concatenates the two values. If the concatenated value exceeds 40 characters,
CyberSource through VisaNet truncates the value at 40 characters before sending it to Visa and the issuing bank.
Truncating this value affects AVS results and therefore might also affect risk decisions and chargebacks.
Credit card networks cannot process transactions that contain non-ASCII characters. CyberSource through VisaNet
accepts and stores non-ASCII characters correctly and displays them correctly in reports. However, the limitations
of the credit card networks prevent CyberSource through VisaNet from transmitting non-ASCII characters to the
credit card networks. Therefore, CyberSource through VisaNet replaces non-ASCII characters with meaningless
ASCII characters for transmission to the credit card networks.
#### FDMS Nashville
When the street name is numeric, it must be sent in numeric format. For example, if the address is _One First Street_,
it must be sent as _1 1st Street_.
Required if keyed; not used if swiped.
# --- truncated at 32 KB (126 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cybersource/refs/heads/main/openapi/cybersource-verification-api-openapi.yml