# Visa Commercial Fraud Solutions

## Search API Reference

- [Getting Started](https://developer.visa.com/content/vdp-site/capabilities/visa-commercial-fraud-solutions/docs-getting-started)
- [Request & Response Codes](https://developer.visa.com/request_response_codes)
- API Reference
  - ACS Provider Outbound Events
    - EventPush biometric result
  - Account Administration - Deprecated
    - postGet Account Details
    - putUpdate Account
    - postCreate Account
    - delDelete Account
  - Account Management
    - postCreate Account
    - postGet Account
    - putUpdate Account
    - delDelete Account
  - Client Outbound Events
    - EventPush user-mapping response
    - EventPush authentication request
  - Commercial 3DS Authentication
    - postGet Authentication Method
    - postInitiate Authentication
    - postSubmit Validation Result
    - postSave Authentication Record
  - Commercial Directory
    - postCreate User Mapping
    - postGet User Mapping
    - putUpdate User Mapping
    - postDelete User Mapping
    - postGet Request Status
  - Company Management - Deprecated
    - postGet Company Details
    - putUpdate Company
    - postCreate Company
    - delDelete Company
  - Contact Management - Deprecated
    - postGet Contact Details
    - postCreate Contact
    - delDelete Contact
  - Control Management - Deprecated
    - postSet AccountControls
    - postGet AccountControls
    - delDelete AccountControls
  - Intelligent Payment Controls
    - postGet Rule Suggestions
    - postSet Suggested Modified Rules
  - Report Management
    - postGet Transaction History
    - postGet Notification History
  - Report Management - Deprecated
    - postGet Transaction History
    - postGet Notification History
  - Rules Management
    - postGet Rules
    - postSet Rules
    - delDelete Rules
    - postBlock Account
    - postDisable Enable Rules
  - Supplier Validation
    - postRegister-Supplier
    - putUpdate-Supplier
    - postRetrieve-Supplier
    - postUpdate Supplier
    - postRetrieve Supplier
    - postRegister Supplier

## Account Management

Users can leverage the Account Management APIs to create and manage their accounts within Visa B2B Payment Controls (VPC). The accounts need to be within the ranges specified during the onboarding of the Issuer or a Commercial Client. This service also allows users to add payment controls, manage account contacts, update company information, delete accounts, and access account details from the system.

### Create Account  v1 - Latest

Use this operation to register your existing cards with VPC, which is required before you can set any rules, other than the Block Rule (this will be available to add while creating the account). You can enroll both a physical or a Visa virtual card. While registering your card, you can specify phone numbers and email addresses to receive SMS and email transaction notifications.

#### Request

##### Request Body schema: application/json

|     |     |
| --- | --- |
| accountNumber<br>required | string^[4]{1}[0-9]{15}$<br>16 digit account number. |
| companyName<br>required | string^([A-Za-z0-9]{1}[A-Za-z0-9 .&!,-]{0,99})$<br>Alphanumeric string between 1 and 100 characters. <br>This is name of the company. |
| customerClientId<br>required | string<br>Alphanumeric value between 2 and 99 characters.<br>This is Company Id in the customer system. This Id will help identify the accounts that belong to same company. |
| customerCompanyId<br>required | string<br>Alphanumeric value between 2 and 99 characters <br>This is the ID of the company. |
| issuerBid<br>required | string<br>Bank identifier (Holding Bid) |
| isToken<br>required | boolean<br>Value must be either "true" or "false". <br>Indicates if the account is Visa pseudo account. |
| contacts | Array of objects |
| Array

|     |     |
| --- | --- |
| contact<br>required | stringPhone Regex: "^[0-9+]{5,20}$" Email Regex: ...Show pattern<br>Value can either be a phone number or an email. |
| languageCode<br>required | string<br>Must be ISO 639-1 standard. |
| notificationChannel<br>required | string<br>The channel for communication that the user would like to be communicated to through<br>Enum:"EMAIL""SMS""BOTH""NONE" |
| countryCode | string<br>Country code of country. Required if the contact value is phone number. |
| dialingCode | string^[0-9]{1,3}$<br>Must be a valid mobile dialing number code and must only contain digits, no '+' at the beginning. <br>Required if the contact value is phone number. |
| notificationFormat | string<br>Value is required unless notificationChannel is NONE. <br>The format that the user would like to be used in communications about their account | |
| firstName | string^([A-Za-z0-9]{1}[A-Za-z0-9.&!,-]{0,99})$<br>Alphanumeric string between 1 and 100 characters. <br>This is cardholder's first name. If not provided, will default to "FNU". |
| isBlock | boolean<br>Default: false<br>Value must be either "true" or "false".<br>Indicates if the account should be blocked from any transactions until rules are set. This will ensure no transactions are allowed on the account. |
| lastName | string^([A-Za-z0-9]{1}[A-Za-z0-9.&!,-]{0,99})$<br>Alphanumeric string between 1 and 100 characters.<br>This is cardholder's last name. If not provided, will default to "LNU". |
| tokenReferenceId | string^[0-9]{1,20}$<br>Alphanumeric and required if the account type is token.<br>This is internally used to associate Visa Virtual Accounts. Not applicable for integrating directly through VDP. |

#### Responses

**200**  
OK

##### Response Schema: application/json

|     |     |
| --- | --- |
| message<br>required | string<br>Message describing the request processing status. This message is mapped with the messageCode. |
| messageCode<br>required | string<br>Message code showing the status of the request (Application specific code). |
| requestId<br>required | string<br>Unique identifier sent in the request. |

**400**  
Bad Request

##### Response Schema: application/json

|     |     |
| --- | --- |
| errorCode<br>required | string<br>Error code indicating the status of the request (Application specific code). |
| errorMessage<br>required | string<br>Error message describing the request processing status. This message is mapped with the errorCode. |
| requestId<br>required | string<br>Unique identifier sent in the request. |

## Sample Request

```json
{"isToken": false,
  "lastName": "Smith",
  "firstName": "John",
  "isBlock": false,
  "customerCompanyId": "Visa_123",
  "issuerBid": "99999999",
  "companyName": "Visa",
  "accountNumber": "4000000014020025",
  "contacts": [{"notificationFormat": "HTML",
    "countryCode": "",
    "contact": "john@smith.com",
    "languageCode": "en-US",
    "notificationChannel": "EMAIL",
    "dialingCode": ""},
    {"notificationFormat": "TEXT",
    "countryCode": "840",
    "contact": "1111111111",
    "languageCode": "en-US",
    "notificationChannel": "SMS",
    "dialingCode": "1"}],
  "customerClientId": "customerClientId"
}
```

## Sample Response

**200**
```json
{"requestId": "123e4567-e89b-12d3-a456-426614174000",
  "messageCode": "VPC-AM-1001",
  "message": "Successfully Created Account"
}
```

**400**
```json
{"errorCode": "VPC-AM-2001",
  "errorMessage": "Invalid Account Number",
  "requestId": "123e4567-e89b-12d3-a456-426614174000"
}
```
