Create contact
Creates a contact with address and bank account. Validates ACH routing number against the Fed directory before persistence. Returns 400 VALIDATION_ERROR if the routing number is not found.
Body
required
application/json
- Type: objectbank
Account required - Type: stringemail
Pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$Format: emailrequired - Type: stringenumentity
Type requiredvalues- B
U S I N E S S - I
N D I V I D U A L
- Type: stringfirst
Name required - Type: stringlast
Name required - Type: objectlegal
Address required - Type: stringoriginator
Id Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Format: uuidrequired - Type: string | nullcompany
Name min length:1max length:100 - Type: string | nullphone
Number
Responses
- application/json
- application/json
- application/json
- application/json
- application/json
Request Example for post/v1/contacts/
curl https://staging.api.now.luqra.com/v1/contacts/ \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"bankAccount": {
"achAccountNumber": "",
"achRoutingNumber": "",
"subType": "CHECKING",
"swiftCode": null
},
"companyName": null,
"email": "",
"entityType": "BUSINESS",
"firstName": "",
"lastName": "",
"legalAddress": {
"addressLine1": "",
"addressLine2": null,
"city": "",
"countryCode": "",
"postalCode": "",
"state": ""
},
"originatorId": "",
"phoneNumber": null
}'
{
"data": {
"contactId": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2026-06-19T23:18:39.105Z"
},
"meta": {
"timestamp": "2026-06-19T23:18:39.105Z"
}
}