Initialize a withdrawal
POST/v1/baas/transactions/withdrawal
Starts the withdrawal process. This endpoint:
- Validates withdrawal details
- Creates a withdrawal record
- Returns withdrawal initial data
- Supports ACH_DOMESTIC, FEDWIRE_DOMESTIC, and SWIFT transfer types
Transfer Network Rules:
- ACH_DOMESTIC: Requires routingNumber, bicSwiftCode not allowed
- FEDWIRE_DOMESTIC: Requires routingNumber, bicSwiftCode not allowed
- SWIFT: Requires bicSwiftCode, routingNumber not allowed
Note: ACH_CROSSBORDER and FEDWIRE_CROSSBORDER are reserved for future use.
Request
- application/json
Body
required
Withdrawal initialization data
The ID of the wallet to withdraw from
The amount to withdraw
Name of the destination bank. Optional - will be auto-populated from routing number or SWIFT code validation if not provided.
Address of the destination bank. Optional - will be auto-populated from routing number or SWIFT code validation if not provided.
Beneficiary name
Possible values: [ACH_DOMESTIC, ACH_CROSSBORDER, FEDWIRE_DOMESTIC, FEDWIRE_CROSSBORDER, SWIFT]
Transfer network type: ACH_DOMESTIC, ACH_CROSSBORDER, FEDWIRE_DOMESTIC, FEDWIRE_CROSSBORDER, or SWIFT
Possible values: [P, L]
Person type: P (Private/Individual) or L (Legal/Business)
ABA routing number (9 digits). Required for ACH_DOMESTIC, ACH_CROSSBORDER, and FEDWIRE_DOMESTIC. Not allowed for SWIFT.
BIC/SWIFT code (8 or 11 characters). Required for SWIFT and FEDWIRE_CROSSBORDER. Not allowed for ACH or FEDWIRE_DOMESTIC.
Bank account number (BBAN format)
Street address line 1
Street address line 2 (optional)
City or county
State or region code
Possible values: [AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KR, KP, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW]
Country code in ISO 3166-1 alpha-2 format
ZIP or postal code
Possible values: [PASSPORT, ID_CARD, DRIVER_LICENCE, RESIDENCE_PERMIT, NATIONAL_IDENTIFICATION_NUMBER]
Type of identification document (optional, required if identificationValue is provided)
Identification document value/number (optional, required if identificationTypeCode is provided)
Asset type for the withdrawal. Defaults to USD in production and USD_TEST in non-production environments
Responses
- 201
- 400
- 403
- 404
The withdrawal process was started successfully.
- application/json
- Schema
- Example (from schema)
Schema
data
object
sourceWallet
object
required
destinationWallet
object
required
{
"traceId": "string",
"message": "string",
"data": {
"id": "string",
"endToEndId": "string",
"externalDestination": "string",
"externalSource": "string",
"type": "string",
"status": "string",
"amount": "string",
"currencyCode": "string",
"platform": "string",
"referenceNumber": "string",
"note": "string",
"sourceWallet": {
"accountNumber": "string",
"address": "string",
"nickname": "string",
"archived": true
},
"destinationWallet": {
"accountNumber": "string",
"address": "string",
"nickname": "string",
"archived": true
},
"asset": "string",
"createdAt": "2024-07-29T15:51:28.071Z"
}
}
Invalid request payload. This can happen if required fields are missing or have invalid formats.
- application/json
- Schema
- Example (from schema)
Schema
{
"traceId": "string",
"message": "string"
}
The API key is invalid or the client does not have sufficient permissions.
- application/json
- Schema
- Example (from schema)
Schema
{
"traceId": "string",
"message": "string"
}
One of the specified resources was not found. Does not apply for empty result set.
- application/json
- Schema
- Example (from schema)
Schema
{
"traceId": "string",
"message": "string"
}