> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://developer.americanexpress.ferndocs.com/open-banking/confirmation-of-funds/api-reference/funds-confirmation/post-funds-confirmation/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.americanexpress.ferndocs.com/_mcp/server. # Confirmation of Funds POST https://api.qa.americanexpress.com /servicing/v1/card_member/funds/confirmations Content-Type: application/json Returns a data structure indicating the availability of funds for the Account. Reference: https://developer.americanexpress.ferndocs.com/open-banking/confirmation-of-funds/api-reference/funds-confirmation/post-funds-confirmation ## Servers - `https://api.qa.americanexpress.com /servicing/v1` (Qa, default) - `https://api2s.americanexpress.com/servicing/v1` (Production) ## Request ### Headers - `x-amex-api-key` (string, required) — The Client application key used to access the API.e.g., 46689c51-8337-4adc-a411-f8e82705913f - `Authorization` (string, required) — The data APIs MAC generation. - `x-amex-request-id` (string, optional) — The unique ID of the request.e.g., qweas11415879145 ### Body (application/json) This endpoint expects a CbpiiRequest. - `instructedAmount` (FundsConfirmationInstructedAmount, required) — The availability of funds to be verified based on the currency and the amount. ## Response ### 200 Successful response. - `data` (CbpiiResponseData, required) — The data dictionary section which provides details on the payload content. ## Errors ### 400 Bad Request Error Bad request. The input validation failed. The following error codes are related to invalid authorization (access token validation).CodeMessage154000Request MAC is not matching with generated MAC. - `code` (integer, required) — A numeric code associated with the error condition/scenario. - `message` (string, required) — A description of the error scenario. ### 401 Unauthorized Error Unauthorized. The developer application is not authorized to perform this operation.The Access Token Validation Error CodesCodeMessage154010[ERR_OAS_0001] The Access Token expired.154010[ERR_OAS_0002] The Access Token revoked by the user.154010[ERR_OAS_0007] The Access Token revoked by the Change Password Check.154010[ERR_OAS_0008] The Access Token not found. - `code` (integer, required) — A numeric code associated with the error condition/scenario. - `message` (string, required) — A description of the error scenario. ### 404 Not Found Error Resource not found. - `code` (integer, required) — A numeric code associated with the error condition/scenario. - `message` (string, required) — A description of the error scenario. ### 405 Method Not Allowed Error Method not allowed. - `code` (integer, required) — A numeric code associated with the error condition/scenario. - `message` (string, required) — A description of the error scenario. ### 429 Too Many Requests Error Too many requests. - `code` (integer, required) — A numeric code associated with the error condition/scenario. - `message` (string, required) — A description of the error scenario. ### 500 Internal Server Error Internal server error.The following error codes are related to authorization (access token validation).CodeMessage155000The authorization server is currently not available. - `code` (integer, required) — A numeric code associated with the error condition/scenario. - `message` (string, required) — A description of the error scenario. ### 502 Bad Gateway Error The server, while acting as a gateway or proxy, received an invalid response from the upstream server it accessed in attempting to fulfill the request. - `code` (integer, required) — A numeric code associated with the error condition/scenario. - `message` (string, required) — A description of the error scenario. ### 503 Service Unavailable Error Service unavailable. - `code` (integer, required) — A numeric code associated with the error condition/scenario. - `message` (string, required) — A description of the error scenario. ### 504 Gateway Timeout Error The service did not receive a timely response from the downstream system. - `code` (integer, required) — A numeric code associated with the error condition/scenario. - `message` (string, required) — A description of the error scenario. ## Types ### FundsConfirmationInstructedAmount The availability of funds to be verified based on the currency and the amount. - `amount` (double, required) — The availability of funds is to be verified based on the amount of the specified currency. - `currency` (string, required) — The ISO 4217 alphabetic currency code of the transaction. ### CbpiiResponseData The data dictionary section which provides details on the payload content. - `fundsAvailable` (boolean, required) — The flag indicating the results of a confirmation of funds check. ## Examples **Request** ```json { "instructedAmount": { "amount": 1.1, "currency": "string" } } ``` **Response** ```json { "data": { "fundsAvailable": true } } ``` **SDK Code** ```python import requests url = "https://api.example.com/card_member/funds/confirmations" payload = { "instructedAmount": { "amount": 1.1, "currency": "string" } } headers = { "Authorization": "Authorization", "x-amex-api-key": "x-amex-api-key", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.example.com/card_member/funds/confirmations'; const options = { method: 'POST', headers: { Authorization: 'Authorization', 'x-amex-api-key': 'x-amex-api-key', 'Content-Type': 'application/json' }, body: '{"instructedAmount":{"amount":1.1,"currency":"string"}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.example.com/card_member/funds/confirmations" payload := strings.NewReader("{\n \"instructedAmount\": {\n \"amount\": 1.1,\n \"currency\": \"string\"\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "Authorization") req.Header.Add("x-amex-api-key", "x-amex-api-key") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.example.com/card_member/funds/confirmations") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = 'Authorization' request["x-amex-api-key"] = 'x-amex-api-key' request["Content-Type"] = 'application/json' request.body = "{\n \"instructedAmount\": {\n \"amount\": 1.1,\n \"currency\": \"string\"\n }\n}" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.example.com/card_member/funds/confirmations") .header("Authorization", "Authorization") .header("x-amex-api-key", "x-amex-api-key") .header("Content-Type", "application/json") .body("{\n \"instructedAmount\": {\n \"amount\": 1.1,\n \"currency\": \"string\"\n }\n}") .asString(); ``` ```php request('POST', 'https://api.example.com/card_member/funds/confirmations', [ 'body' => '{ "instructedAmount": { "amount": 1.1, "currency": "string" } }', 'headers' => [ 'Authorization' => 'Authorization', 'Content-Type' => 'application/json', 'x-amex-api-key' => 'x-amex-api-key', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.example.com/card_member/funds/confirmations"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Authorization"); request.AddHeader("x-amex-api-key", "x-amex-api-key"); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"instructedAmount\": {\n \"amount\": 1.1,\n \"currency\": \"string\"\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "Authorization": "Authorization", "x-amex-api-key": "x-amex-api-key", "Content-Type": "application/json" ] let parameters = ["instructedAmount": [ "amount": 1.1, "currency": "string" ]] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.example.com/card_member/funds/confirmations")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```