Local Brand Identification
This article describe how to upload Proof of Address image that confirms your address of registration. For example, a utility bill.
Step-by-step process of upload Proof of Address image with API.
To upload there are a few steps:
- List all kyc-forms: Australian kyc-formID is 4d74e9c0-3f3b-4d5f-8983-b343ecac3986
- Get upload token: This action gets info to upload image to bucket.
- Upload proof of address image: This action submits image to bucket.
- Link Proof Of Address information: This action links Proof Of Address.
- Link Local Brand Identification: This action links Brand identification.
1- List all kyc-forms
GET
/kyc-forms
List KYC forms
Paramètres de requête
limit
integer
Limits the number of results to return.
reverse
boolean
Reverses the order in which the results are returned.
pageToken
string
The cursor that keeps track of the current position in the results.
countryCode
string
Filter KYC forms by target country.
scope
string
Filter KYC forms by scope.
Possible values: number, organization, channel
Corps de la réponse
nextPageToken
string
The token to fetch the next page of results. If empty, there are no more results to fetch.
results
array of object
obligatoire
Afficher les attributs enfants
results.conditions
object
results.countryCode
string
results.createdAt
string
obligatoire
results.defaultLocale
string
obligatoire
results.gracePeriodDays
integer
results.id
string
obligatoire
results.name
string
obligatoire
results.questions
array of object
obligatoire
Afficher les attributs enfants
results.questions.locale
string
obligatoire
results.questions.questions
array of object
obligatoire
Afficher les attributs enfants
results.questions.questions.conditions
array of object
Afficher les attributs enfants
results.questions.questions.conditions.key
string
results.questions.questions.conditions.value
string
results.questions.questions.description
string
results.questions.questions.displayName
string
obligatoire
results.questions.questions.format
string
obligatoire
Possible values: none
results.questions.questions.key
string
obligatoire
results.questions.questions.mapping
string
Map the answer to a contact attribute. If not set, the answer will not be mapped.
results.questions.questions.options
array of object
Afficher les attributs enfants
results.questions.questions.options.key
string
results.questions.questions.options.value
string
results.questions.questions.placeholder
string
results.questions.questions.required
boolean
results.questions.questions.timezone
string
results.questions.questions.type
string
obligatoire
Possible values: bool, boolArray, intArray, float, floatArray
results.questions.questions.formQuestionConfig
object
Afficher les attributs enfants
results.questions.questions.formQuestionConfig.stringDatetimeConfig
object
Afficher les attributs enfants
results.questions.questions.formQuestionConfig.stringDatetimeConfig.allowTimezoneSelectionByUser
boolean
results.questions.questions.formQuestionConfig.stringDatetimeConfig.datetimeRange
object
obligatoire
Afficher les attributs enfants
results.questions.questions.formQuestionConfig.stringDatetimeConfig.datetimeRange.type
string
Possible values: any, future, past
results.questions.questions.formQuestionConfig.stringDatetimeConfig.defaultTimezone
string
results.questions.questions.formQuestionConfig.stringDatetimeConfig.includeTime
boolean
results.questions.questions.formQuestionConfig.stringDatetimeConfig.localeOverride
string
results.questions.questions.formQuestionConfig.stringDatetimeConfig.timeFormat
string
Possible values: am-pm, 24h
results.questions.questions.formQuestionConfig.stringDatetimeConfig.timePlaceholder
string
results.questions.questions.formQuestionConfig.type
string
Possible values: stringDatetime
results.questions.questions.formQuestionConfig.stringMsisdnConfig
object
Afficher les attributs enfants
results.questions.questions.formQuestionConfig.stringMsisdnConfig.defaultCountryCode
string
obligatoire
results.questions.questions.formQuestionConfig.type
string
Possible values: stringMsisdn
results.questions.questions.formQuestionConfig.stringEmojiConfig
object
Afficher les attributs enfants
results.questions.questions.formQuestionConfig.stringEmojiConfig.options
array of object
obligatoire
Afficher les attributs enfants
results.questions.questions.formQuestionConfig.stringEmojiConfig.options.emoji
string
obligatoire
results.questions.questions.formQuestionConfig.stringEmojiConfig.options.text
string
obligatoire
results.questions.questions.formQuestionConfig.type
string
Possible values: stringEmoji
results.questions.questions.formQuestionConfig.stringEnumConfig
object
Afficher les attributs enfants
results.questions.questions.formQuestionConfig.stringEnumConfig.allowedValues
array of object
obligatoire
Afficher les attributs enfants
results.questions.questions.formQuestionConfig.stringEnumConfig.allowedValues.displayName
string
obligatoire
results.questions.questions.formQuestionConfig.stringEnumConfig.allowedValues.imageUrl
string
results.questions.questions.formQuestionConfig.stringEnumConfig.allowedValues.value
string
obligatoire
results.questions.questions.formQuestionConfig.stringEnumConfig.columns
integer
results.questions.questions.formQuestionConfig.stringEnumConfig.cornerRadius
string
Possible values: none, normal, full
results.questions.questions.formQuestionConfig.stringEnumConfig.optionSize
string
Possible values: small, medium, large
results.questions.questions.formQuestionConfig.stringEnumConfig.showLabels
boolean
results.questions.questions.formQuestionConfig.stringEnumConfig.singleSelect
boolean
results.questions.questions.formQuestionConfig.stringEnumConfig.withImages
boolean
results.questions.questions.formQuestionConfig.type
string
Possible values: stringEnum
results.questions.questions.formQuestionConfig.stringS3ObjectConfig
object
Afficher les attributs enfants
results.questions.questions.formQuestionConfig.stringS3ObjectConfig.allowedMimeType
string
obligatoire
Allowed type to upload. Supports wildcards.
results.questions.questions.formQuestionConfig.stringS3ObjectConfig.maxFileSize
integer
obligatoire
results.questions.questions.formQuestionConfig.stringS3ObjectConfig.templateFileUrl
string
URL to a template file that can be downloaded by the user and uploaded back.
results.questions.questions.formQuestionConfig.type
string
Possible values: stringS3Object
results.questions.questions.formQuestionConfig.stringCustomConfig
object
Afficher les attributs enfants
results.questions.questions.formQuestionConfig.stringCustomConfig.message
string
Validation message to show when validation fails.
results.questions.questions.formQuestionConfig.stringCustomConfig.regexp
string
obligatoire
Regular expression to validate the input against.
results.questions.questions.formQuestionConfig.stringCustomConfig.title
string
obligatoire
Validation title.
results.questions.questions.formQuestionConfig.type
string
Possible values: stringCustom
results.questions.questions.ui:type
string
hint the UI what form to show if type isn't sufficient
Possible values: shortText, longText, dropdown, radio, checkboxSelect
results.scope
string
obligatoire
Possible values: number, organization, channel
results.status
string
obligatoire
Possible values: draft, active, deactivated
results.updatedAt
string
obligatoire
Exemple de code
curl -X GET 'https://api.bird.com/kyc-forms' \
-H 'Authorization: AccessKey YOUR_ACCESS_KEY'2- Get upload token
POST
/organizations/{organizationId}/kyc-forms/{kycFormId}/files
Generate a pre-signed token that allows a user to upload a file in response to a question.
Corps de la requête
key
string
obligatoire
The question key to upload the file for.
Corps de la réponse
url
string
obligatoire
URL to post the image to
formData
object
obligatoire
expectedFields
array of string
Exemple de code
curl -X POST 'https://api.bird.com/organizations/{organizationId}/kyc-forms/{kycFormId}/files' \
-H 'Authorization: AccessKey YOUR_ACCESS_KEY'Example request
Exemple de code
POST https://api.bird.com/organizations/{organizationId}/kyc-forms/4d74e9c0-3f3b-4d5f-8983-b343ecac3986/files
Example body request
Exemple de code
{
"key":"proofOfAddress"
}3- Upload proof of Address image
Example request
Exemple de code
POST https://global--kyc-file-uploads--151603429280--use1.s3.us-east-1.amazonaws.com
Example body form-data request
acl text requiredbucket text requiredkey text requiredpolicy text requiredx-amz-algorithm text requiredx-amz-credential text requiredx-amz-date text requiredx-amz-security-token text requiredx-amz-signature text requiredContent-Type text requiredfile File required
4- Link Proof Of Address information
POST
/organizations/{organizationId}/kyc-forms/{kycFormId}/entries
Create KYC Form Entry
Corps de la requête
locale
string
obligatoire
answers
array of object
obligatoire
Afficher les paramètres enfants
answers.isDefault
boolean
answers.key
string
obligatoire
answers.valueString
string
obligatoire
answers.isDefault
boolean
answers.key
string
obligatoire
answers.valueStringArray
array of string
obligatoire
answers.isDefault
boolean
answers.key
string
obligatoire
answers.valueBoolean
boolean
obligatoire
answers.isDefault
boolean
answers.key
string
obligatoire
answers.valueBooleanArray
array of boolean
obligatoire
answers.isDefault
boolean
answers.key
string
obligatoire
answers.valueInteger
number
obligatoire
answers.isDefault
boolean
answers.key
string
obligatoire
answers.valueIntegerArray
array of number
obligatoire
answers.floatValue
number
answers.isDefault
boolean
answers.key
string
obligatoire
answers.floatValueArray
array of number
answers.isDefault
boolean
answers.key
string
obligatoire
status
string
The status of the form entry.
Possible values: draft, submitted, approved, rejected, expired
displayName
string
locale
string
obligatoire
businessProfileId
string
obligatoire
The ID of an existing Business Profile.
status
string
The status of the form entry.
Possible values: draft, submitted, approved, rejected, expired
displayName
string
Corps de la réponse
answers
array of object
obligatoire
Afficher les attributs enfants
answers.isDefault
boolean
answers.key
string
obligatoire
answers.valueString
string
obligatoire
answers.isDefault
boolean
answers.key
string
obligatoire
answers.valueStringArray
array of string
obligatoire
answers.isDefault
boolean
answers.key
string
obligatoire
answers.valueBoolean
boolean
obligatoire
answers.isDefault
boolean
answers.key
string
obligatoire
answers.valueBooleanArray
array of boolean
obligatoire
answers.isDefault
boolean
answers.key
string
obligatoire
answers.valueInteger
number
obligatoire
answers.isDefault
boolean
answers.key
string
obligatoire
answers.valueIntegerArray
array of number
obligatoire
answers.floatValue
number
answers.isDefault
boolean
answers.key
string
obligatoire
answers.floatValueArray
array of number
answers.isDefault
boolean
answers.key
string
obligatoire
businessProfileId
string
The ID of an existing Business Profile.
businessProfileVersion
integer
The version of the Business Profile.
createdAt
string
obligatoire
displayName
string
formId
string
obligatoire
id
string
obligatoire
locale
string
obligatoire
organizationId
string
obligatoire
reviewComment
string
status
string
obligatoire
The status of the form entry.
Possible values: draft, submitted, approved, rejected, expired
tags
array of object
Afficher les attributs enfants
tags.key
string
obligatoire
tags.value
string
obligatoire
updatedAt
string
obligatoire
Exemple de code
curl -X POST 'https://api.bird.com/organizations/{organizationId}/kyc-forms/{kycFormId}/entries' \
-H 'Authorization: AccessKey YOUR_ACCESS_KEY'Example request
organizationId string - uuid required
Exemple de code
POST https://api.bird.com/organizations/{organizationsId}/kyc-forms/4d74e9c0-3f3b-4d5f-8983-b343ecac3986/entries
Example body request
Path parameters
organizationId string - uuid required
proofOfAddress string - uuid required
Exemple de code
{
"locale": "en",
"answers": [
{
"key": "proofOfAddress",
"valueString": "https://global--kyc-file-uploads--151603429280--use1.s3.us-east-1.amazonaws.com/organization:{organizationId}/kycForm:4d74e9c0-3f3b-4d5f-8983-b343ecac3986/question:proofOfAddress/{proofOfAddressId}"
}
],
"status": "submitted"
}proofOfAddressId in (2- Get upload token) response
5- Link Local Brand identification
PUT
/workspaces/{workspaceId}/endpoints/{endpointId}/compliance-requirements/{requirementName}
Update a specific compliance requirement for an endpoint. An example of requirement name is use-case-sms, kyc-form, brand (general brand identification) and brand:nl (specific, country-level brand identification requirement).
Corps de la requête
formId
string
formEntryId
string
type
string
obligatoire
Possible values: kyc-form
useCaseId
string
type
string
obligatoire
Possible values: use-case
brandId
string
campaignId
string
type
string
obligatoire
Possible values: ten-dlc
Corps de la réponse
status
string
obligatoire
Possible values: satisfied, pending, unsatisfied
mutable
boolean
obligatoire
immutableReason
string
Possible values: managed, dependency, none
message
string
evaluatedAt
string
issues
array of string
userId
string
name
string
obligatoire
type
string
obligatoire
Possible values: kyc-form
capabilities
array of string
obligatoire
destinations
array of string
managedBy
string
appliesTo
string
Specifies whether this requirement applies to endpoint-level or destination-level evaluation. Empty means both.
Possible values: endpoint, destination
forms
array of object
Afficher les attributs enfants
forms.conditions
object
forms.countryCode
string
forms.createdAt
string
obligatoire
forms.defaultLocale
string
obligatoire
forms.gracePeriodDays
integer
forms.id
string
obligatoire
forms.name
string
obligatoire
forms.questions
array of object
obligatoire
Afficher les attributs enfants
forms.questions.locale
string
obligatoire
forms.questions.questions
array of object
obligatoire
Afficher les attributs enfants
forms.questions.questions.conditions
array of object
Afficher les attributs enfants
forms.questions.questions.conditions.key
string
forms.questions.questions.conditions.value
string
forms.questions.questions.description
string
forms.questions.questions.displayName
string
obligatoire
forms.questions.questions.format
string
obligatoire
Possible values: none
forms.questions.questions.key
string
obligatoire
forms.questions.questions.mapping
string
Map the answer to a contact attribute. If not set, the answer will not be mapped.
forms.questions.questions.options
array of object
Afficher les attributs enfants
forms.questions.questions.options.key
string
forms.questions.questions.options.value
string
forms.questions.questions.placeholder
string
forms.questions.questions.required
boolean
forms.questions.questions.timezone
string
forms.questions.questions.type
string
obligatoire
Possible values: bool, boolArray, intArray, float, floatArray
forms.questions.questions.formQuestionConfig
object
Afficher les attributs enfants
forms.questions.questions.formQuestionConfig.stringDatetimeConfig
object
Afficher les attributs enfants
forms.questions.questions.formQuestionConfig.stringDatetimeConfig.allowTimezoneSelectionByUser
boolean
forms.questions.questions.formQuestionConfig.stringDatetimeConfig.datetimeRange
object
obligatoire
Afficher les attributs enfants
forms.questions.questions.formQuestionConfig.stringDatetimeConfig.datetimeRange.type
string
Possible values: any, future, past
forms.questions.questions.formQuestionConfig.stringDatetimeConfig.defaultTimezone
string
forms.questions.questions.formQuestionConfig.stringDatetimeConfig.includeTime
boolean
forms.questions.questions.formQuestionConfig.stringDatetimeConfig.localeOverride
string
forms.questions.questions.formQuestionConfig.stringDatetimeConfig.timeFormat
string
Possible values: am-pm, 24h
forms.questions.questions.formQuestionConfig.stringDatetimeConfig.timePlaceholder
string
forms.questions.questions.formQuestionConfig.type
string
Possible values: stringDatetime
forms.questions.questions.formQuestionConfig.stringMsisdnConfig
object
Afficher les attributs enfants
forms.questions.questions.formQuestionConfig.stringMsisdnConfig.defaultCountryCode
string
obligatoire
forms.questions.questions.formQuestionConfig.type
string
Possible values: stringMsisdn
forms.questions.questions.formQuestionConfig.stringEmojiConfig
object
Afficher les attributs enfants
forms.questions.questions.formQuestionConfig.stringEmojiConfig.options
array of object
obligatoire
Afficher les attributs enfants
forms.questions.questions.formQuestionConfig.stringEmojiConfig.options.emoji
string
obligatoire
forms.questions.questions.formQuestionConfig.stringEmojiConfig.options.text
string
obligatoire
forms.questions.questions.formQuestionConfig.type
string
Possible values: stringEmoji
forms.questions.questions.formQuestionConfig.stringEnumConfig
object
Afficher les attributs enfants
forms.questions.questions.formQuestionConfig.stringEnumConfig.allowedValues
array of object
obligatoire
Afficher les attributs enfants
forms.questions.questions.formQuestionConfig.stringEnumConfig.allowedValues.displayName
string
obligatoire
forms.questions.questions.formQuestionConfig.stringEnumConfig.allowedValues.imageUrl
string
forms.questions.questions.formQuestionConfig.stringEnumConfig.allowedValues.value
string
obligatoire
forms.questions.questions.formQuestionConfig.stringEnumConfig.columns
integer
forms.questions.questions.formQuestionConfig.stringEnumConfig.cornerRadius
string
Possible values: none, normal, full
forms.questions.questions.formQuestionConfig.stringEnumConfig.optionSize
string
Possible values: small, medium, large
forms.questions.questions.formQuestionConfig.stringEnumConfig.showLabels
boolean
forms.questions.questions.formQuestionConfig.stringEnumConfig.singleSelect
boolean
forms.questions.questions.formQuestionConfig.stringEnumConfig.withImages
boolean
forms.questions.questions.formQuestionConfig.type
string
Possible values: stringEnum
forms.questions.questions.formQuestionConfig.stringS3ObjectConfig
object
Afficher les attributs enfants
forms.questions.questions.formQuestionConfig.stringS3ObjectConfig.allowedMimeType
string
obligatoire
Allowed type to upload. Supports wildcards.
forms.questions.questions.formQuestionConfig.stringS3ObjectConfig.maxFileSize
integer
obligatoire
forms.questions.questions.formQuestionConfig.stringS3ObjectConfig.templateFileUrl
string
URL to a template file that can be downloaded by the user and uploaded back.
forms.questions.questions.formQuestionConfig.type
string
Possible values: stringS3Object
forms.questions.questions.formQuestionConfig.stringCustomConfig
object
Afficher les attributs enfants
forms.questions.questions.formQuestionConfig.stringCustomConfig.message
string
Validation message to show when validation fails.
forms.questions.questions.formQuestionConfig.stringCustomConfig.regexp
string
obligatoire
Regular expression to validate the input against.
forms.questions.questions.formQuestionConfig.stringCustomConfig.title
string
obligatoire
Validation title.
forms.questions.questions.formQuestionConfig.type
string
Possible values: stringCustom
forms.questions.questions.ui:type
string
hint the UI what form to show if type isn't sufficient
Possible values: shortText, longText, dropdown, radio, checkboxSelect
forms.scope
string
obligatoire
Possible values: number, organization, channel
forms.status
string
obligatoire
Possible values: draft, active, deactivated
forms.updatedAt
string
obligatoire
formOptions
object
formId
string
formEntryId
string
formEntry
object
Afficher les attributs enfants
formEntry.answers
array of object
obligatoire
Afficher les attributs enfants
formEntry.answers.isDefault
boolean
formEntry.answers.key
string
obligatoire
formEntry.answers.valueString
string
obligatoire
formEntry.answers.isDefault
boolean
formEntry.answers.key
string
obligatoire
formEntry.answers.valueStringArray
array of string
obligatoire
formEntry.answers.isDefault
boolean
formEntry.answers.key
string
obligatoire
formEntry.answers.valueBoolean
boolean
obligatoire
formEntry.answers.isDefault
boolean
formEntry.answers.key
string
obligatoire
formEntry.answers.valueBooleanArray
array of boolean
obligatoire
formEntry.answers.isDefault
boolean
formEntry.answers.key
string
obligatoire
formEntry.answers.valueInteger
number
obligatoire
formEntry.answers.isDefault
boolean
formEntry.answers.key
string
obligatoire
formEntry.answers.valueIntegerArray
array of number
obligatoire
formEntry.answers.floatValue
number
formEntry.answers.isDefault
boolean
formEntry.answers.key
string
obligatoire
formEntry.answers.floatValueArray
array of number
formEntry.answers.isDefault
boolean
formEntry.answers.key
string
obligatoire
formEntry.businessProfileId
string
The ID of an existing Business Profile.
formEntry.businessProfileVersion
integer
The version of the Business Profile.
formEntry.createdAt
string
obligatoire
formEntry.displayName
string
formEntry.formId
string
obligatoire
formEntry.id
string
obligatoire
formEntry.locale
string
obligatoire
formEntry.organizationId
string
obligatoire
formEntry.reviewComment
string
formEntry.status
string
obligatoire
The status of the form entry.
Possible values: draft, submitted, approved, rejected, expired
formEntry.tags
array of object
Afficher les attributs enfants
formEntry.tags.key
string
obligatoire
formEntry.tags.value
string
obligatoire
formEntry.updatedAt
string
obligatoire
status
string
obligatoire
Possible values: satisfied, pending, unsatisfied
mutable
boolean
obligatoire
immutableReason
string
Possible values: managed, dependency, none
message
string
evaluatedAt
string
issues
array of string
userId
string
name
string
obligatoire
type
string
obligatoire
Possible values: use-case
capabilities
array of string
obligatoire
destinations
array of string
managedBy
string
appliesTo
string
Specifies whether this requirement applies to endpoint-level or destination-level evaluation. Empty means both.
Possible values: endpoint, destination
definition
object
obligatoire
Afficher les attributs enfants
definition.fallback
boolean
obligatoire
definition.id
string
obligatoire
definition.name
string
obligatoire
definition.schema
object
obligatoire
definition.selectors
object
obligatoire
Afficher les attributs enfants
definition.selectors.countryCodes
array of string
definition.selectors.numberTypes
array of string
definition.selectors.platforms
array of string
definition.uiSchema
object
obligatoire
definition.version
string
obligatoire
useCaseId
string
useCase
object
Afficher les attributs enfants
useCase.additionalFields
object
obligatoire
useCase.caseType
string
obligatoire
Possible values: default, tendlc, tfn-verification
useCase.createdAt
string
obligatoire
useCase.definitionDescription
string
obligatoire
useCase.definitionVersion
string
obligatoire
useCase.description
string
obligatoire
useCase.id
string
obligatoire
useCase.integrationState
object
obligatoire
Afficher les attributs enfants
useCase.integrationState.additionalFields
object
obligatoire
useCase.integrationState.externalId
string
obligatoire
useCase.integrationState.status
string
obligatoire
useCase.integrationState.updatedAt
string
obligatoire
useCase.name
string
obligatoire
useCase.status
string
obligatoire
Possible values: created, cancelled, error, deleted, declined, approved
useCase.tags
array of object
Afficher les attributs enfants
useCase.tags.key
string
obligatoire
useCase.tags.value
string
obligatoire
useCase.updatedAt
string
obligatoire
useCase.use
string
obligatoire
useCase.version
integer
obligatoire
status
string
obligatoire
Possible values: satisfied, pending, unsatisfied
mutable
boolean
obligatoire
immutableReason
string
Possible values: managed, dependency, none
message
string
evaluatedAt
string
issues
array of string
userId
string
name
string
obligatoire
type
string
obligatoire
Possible values: tfn-verification
capabilities
array of string
obligatoire
destinations
array of string
managedBy
string
appliesTo
string
Specifies whether this requirement applies to endpoint-level or destination-level evaluation. Empty means both.
Possible values: endpoint, destination
tfnVerification
object
Afficher les attributs enfants
tfnVerification.id
string
tfnVerification.organizationId
string
tfnVerification.workspaceId
string
tfnVerification.verificationRequestId
string
tfnVerification.longCodeNumberIds
array of string
tfnVerification.verificationRequestData
object
Afficher les attributs enfants
tfnVerification.verificationRequestData.phoneNumbers
array of string
tfnVerification.verificationRequestData.businessName
string
obligatoire
tfnVerification.verificationRequestData.businessRegistrationNumber
string
Optional business registration number (TaxID). Used for toll-free verification.
tfnVerification.verificationRequestData.businessRegistrationIssuingCountry
string
Country that issued the business registration (ISO 3166-1 alpha-2 code). Any valid country code is accepted.
Possible values: AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, XK, YE, YT, ZA, ZM, ZW
tfnVerification.verificationRequestData.businessRegistrationType
string
Type of business registration:
- EIN: Employer Identification Number (US)
- CBN: Canada Business Number (CA)
- NEQ: Quebec Enterprise Number (CA)
- PROVINCIAL_NUMBER: Provincial Business Number (CA)
- CRN: Company Registration Number (GB, HK)
- VAT: Value-added Tax Identification Number (GB, IE, BR, NL)
- ACN: Australian Company Number (AU)
- ABN: Australian Business Number (AU)
- BRN: Business Registration Number (HK)
- SIREN: INSEE identification number (FR)
- SIRET: Establishment identification number (FR)
- NZBN: New Zealand Business Number (NZ)
- UST_IDNR: Umsatzsteuer-Identifikationsnummer (DE)
- CIF: Código de Identificación Fiscal (ES)
- NIF: Número de Identificación Fiscal (ES)
- CNPJ: Cadastro Nacional Da Pessoa Jurídica (BR)
- UID: Unternehmens-Identifikationsnummer (CH)
- OTHER: Other registration types (covers additional countries including SE)
Possible values: EIN, CBN, NEQ, PROVINCIAL_NUMBER, CRN, VAT, ACN, ABN, BRN, SIREN, SIRET, NZBN, UST_IDNR, CIF, NIF, CNPJ, UID, OTHER
tfnVerification.verificationRequestData.entityType
string
Type of business entity. Required if businessRegistrationNumber is provided.
Possible values: SOLE_PROPRIETOR, PRIVATE_PROFIT, PUBLIC_PROFIT, NON_PROFIT, GOVERNMENT
tfnVerification.verificationRequestData.businessAddr1
string
obligatoire
tfnVerification.verificationRequestData.businessAddr2
string
tfnVerification.verificationRequestData.businessZip
string
obligatoire
tfnVerification.verificationRequestData.businessCity
string
obligatoire
tfnVerification.verificationRequestData.businessState
string
obligatoire
tfnVerification.verificationRequestData.businessCountry
string
obligatoire
tfnVerification.verificationRequestData.businessContactFirstName
string
obligatoire
tfnVerification.verificationRequestData.businessContactLastName
string
obligatoire
tfnVerification.verificationRequestData.businessContactEmail
string
obligatoire
tfnVerification.verificationRequestData.businessContactPhone
string
obligatoire
tfnVerification.verificationRequestData.corporateWebsite
string
obligatoire
tfnVerification.verificationRequestData.privacyPolicyUrl
string
URL of the business's privacy policy, as presented to consumers at opt-in.
tfnVerification.verificationRequestData.termsAndConditionUrl
string
URL of the business's terms and conditions, as presented to consumers at opt-in.
tfnVerification.verificationRequestData.messageVolume
string
obligatoire
Possible values: 10, 100, 1000, 10000, 100000, 250000, 500000, 750000, 1000000, 5000000, 10000000+
tfnVerification.verificationRequestData.useCase
string
obligatoire
tfnVerification.verificationRequestData.useCaseSummary
string
obligatoire
tfnVerification.verificationRequestData.productionMessageContent
string
obligatoire
tfnVerification.verificationRequestData.optInWorkflowDescription
string
obligatoire
tfnVerification.verificationRequestData.optInWorkflowImageUrLs
array of string
obligatoire
tfnVerification.verificationRequestData.additionalInformation
string
tfnVerification.verificationRequestData.isvReseller
string
tfnVerification.status
string
Possible values: submitted, in-progress, verified, rejected
tfnVerification.statusMessage
object
Afficher les attributs enfants
tfnVerification.statusMessage.statusCode
string
tfnVerification.statusMessage.declineReasonDescription
string
tfnVerification.statusMessage.resubmitAllowed
boolean
tfnVerification.testMode
boolean
tfnVerification.createdAt
string
tfnVerification.updatedAt
string
status
string
obligatoire
Possible values: satisfied, pending, unsatisfied
mutable
boolean
obligatoire
immutableReason
string
Possible values: managed, dependency, none
message
string
evaluatedAt
string
issues
array of string
userId
string
name
string
obligatoire
type
string
obligatoire
Possible values: ten-dlc
capabilities
array of string
obligatoire
destinations
array of string
managedBy
string
appliesTo
string
Specifies whether this requirement applies to endpoint-level or destination-level evaluation. Empty means both.
Possible values: endpoint, destination
brandId
string
campaignId
string
brand
object
Afficher les attributs enfants
brand.id
string
The ID of the number.
brand.tcrBrandId
string
The Campaign Registry brand ID.
brand.organizationId
string
brand.createdAt
string
Timestamp (UTC) when the brand was created.
brand.updatedAt
string
Timestamp (UTC) when the brand was last updated.
brand.status
string
Brand status
Possible values: FAILED, PENDING, REJECTED, APPROVED, DELETED, DRAFT
brand.authPlusStatus
string
Brand Auth+ status
Possible values: NOT_APPLICABLE, NEEDS_CHARGE, NEEDS_TRIGGER, DONE
brand.entityType
string
obligatoire
Legal entity type. It can't be updated when the brand is approved.
Possible values: PRIVATE_PROFIT, PUBLIC_PROFIT, NON_PROFIT, GOVERNMENT, ``
brand.firstName
string
First or given name. Applicable to entity type.
brand.lastName
string
Last or Surname. Applicable to entity type.
brand.displayName
string
obligatoire
Display or marketing name your brand.
brand.companyName
string
obligatoire
Legal company name. This should match the legal company name used to register your EIN/Tax ID.
brand.ein
string
obligatoire
Government assigned corporate tax ID. EIN is 9-digits in the U.S.
brand.einIssuingCountry
string
obligatoire
The 2 letter ISO country of registration submitted with your EIN / Tax ID registration.
brand.phone
string
obligatoire
Valid phone number in e.164 international format.
brand.street
string
obligatoire
Street number and name.
brand.city
string
obligatoire
City name
brand.state
string
obligatoire
State. Must be a 2 letter state code for US states.
brand.postalCode
string
obligatoire
Postal code. Must be a 5 digit zip code for the United States.
brand.country
string
obligatoire
ISO 2 character country code.
brand.email
string
obligatoire
Valid email address of brand support contact.
brand.stockSymbol
string
Stock symbol.
brand.stockExchange
string
Stock exchange. Required for entityType PUBLIC.
Possible values: NONE, NASDAQ, NYSE, AMEX, AMX, ASX, B3, BME, BSE, FRA, ICEX, JPX, JSE, KRX, LON, NSE, OMX, SEHK, SGX, SSE, STO, SWX, SZSE, TSX, TWSE, VSE, OTHER, ``
brand.website
string
obligatoire
Brand website URL.
brand.vertical
string
Vertical or industry segment of the brand.
brand.altBusinessId
string
Alternate business identifier.
brand.altBusinessIdType
string
Alternate business identifier type. Required if altBusinessId is provided.
Possible values: NONE, DUNS, GIIN, LEI, ``
brand.businessContactEmail
string
Business contact email.
brand.businessContactEmailVerifiedDate
string
Timestamp (UTC) when the brand businessContactEmail was verified.
brand.rejection
object
Rejection details
Afficher les attributs enfants
brand.rejection.description
string
obligatoire
Rejection description
brand.rejection.code
string
Rejection code
campaign
object
Afficher les attributs enfants
campaign.id
string
UUID of the campaign.
campaign.name
string
Campaign name
campaign.subscription
object
Describes status of Campaign Subscription
Afficher les attributs enfants
campaign.subscription.status
string
Possible values: active, inactive, canceling
campaign.subscription.subscribedAt
string
Timestamp (UTC) when the subscription became active.
campaign.subscription.updatedAt
string
Timestamp (UTC) when the subscription was last updated.
campaign.subscription.cancelledAt
string
Timestamp (UTC) when the subscription was cancelled.
campaign.status
string
Campaign status
Possible values: DRAFT, FAILED, PENDING, REJECTED, APPROVED, DECLINED, SUSPENDED, DELETED, EXPIRED
campaign.usecase
string
A use case that best matches the purpose of the campaign.
campaign.subUsecases
array of string
If use case is MIXED or LOW_VOLUME mixed an array of 2-5 use cases.
campaign.description
string
A detailed description of what the campaign is for.
campaign.embeddedLink
boolean
Whether messages will contain links. Provide at least one sample containing a link.
campaign.embeddedPhone
boolean
Whether messages will contain phone number. Provide at least one sample containing a phone number.
campaign.numberPool
boolean
Whether a campaign will be associated with more than 50 numbers e.g. customer service use case.
campaign.ageGated
boolean
Whether a campaign contains age-gated content based on carrier/ctia guidelines.
campaign.directLending
boolean
Whether a campaign includes content related to direct lending or loan arrangements.
campaign.subscriberOptin
boolean
Confirm customer opt in is collected and processed.
campaign.subscriberOptout
boolean
Confirm customer opt out is collected and processed.
campaign.subscriberHelp
boolean
Confirm an info message is returned if a customer sends "HELP".
campaign.samples
array of string
Between 1-5 sample messages, each up to 1024 characters (empty until the campaign is submitted). If directLending, embeddedPhone, embeddedLink is true provide relevant examples.
campaign.messageFlow
string
Provide details of how the customer will opt into this campaign. If you have a live web opt-in provide the URL and ensure the page has details on the T&Cs/data collection for opting in, and how to opt out.
campaign.helpMessage
string
Help message of the campaign. A help message shall state the name of the service, contact (email or call centre), OPT IN and OPT OUT keywords.
campaign.helpKeywords
string
A comma separated list of keywords. Support of the word HELP is the minimum requirement for requesting help/info.
campaign.optoutKeywords
string
A comma separated list of keywords. Support of the word STOP is the minimum requirement for OPT OUT.
campaign.optinKeywords
string
A comma separated list of keywords. Support of the word START is the minimum requirement for OPT OUT.
campaign.optinMessage
string
Provide an example of the message that will be sent after a customer has opted in.
campaign.optoutMessage
string
Provide an example of the message that will be sent after a customer has opted out.
campaign.termsAndConditions
boolean
Indicates the campaign follows CTIA messaging principles and best practices.
campaign.brandId
string
UUID of the brand associated with this campaign. The specified brand MUST be APPROVED.
campaign.resellerId
string
UUID of the reseller associated with this campaign. The specified reseller MUST be ACTIVE.
campaign.rejection
object
Rejection details
Afficher les attributs enfants
campaign.rejection.description
string
obligatoire
Rejection description
campaign.rejection.code
string
Rejection code
campaign.attachments
array of object
Attachments associated with this campaign.
Afficher les attributs enfants
campaign.attachments.id
string
obligatoire
The ID of the attachment.
campaign.attachments.status
string
obligatoire
Attachment status
Possible values: PENDING, ACTIVE, PENDING_DELETION, DELETED, FAILED, FAILED_DELETION
campaign.attachments.createdAt
string
obligatoire
Timestamp (UTC) when the attachment was created.
campaign.attachments.updatedAt
string
obligatoire
Timestamp (UTC) when the attachment was last updated.
campaign.attachments.filename
string
obligatoire
The original name of the file when it was uploaded.
campaign.attachments.mediaUrl
string
The URL to download the attachment.
campaign.attachments.contentType
string
obligatoire
The detected MIME type of the file.
campaign.createdAt
string
Timestamp (UTC) when the campaign was created.
campaign.updatedAt
string
Timestamp (UTC) when the campaign was last updated.
linkingStatus
string
Possible values: DEFAULT, INACTIVE, PENDING_ACTIVE, ACTIVE, PENDING_INACTIVE, LINK_FAILED, UNLINK_FAILED, ACTIVE_P2P
reseller
object
Afficher les attributs enfants
reseller.id
string
UUID of the reseller.
reseller.organizationId
string
reseller.status
string
Reseller status
Possible values: FAILED, PENDING, ACTIVE, DELETED
reseller.companyName
string
obligatoire
Legal company name. This should match the legal company name used to register your EIN/Tax ID.
reseller.phone
string
obligatoire
Valid phone number in e.164 international format.
reseller.email
string
obligatoire
Valid email address of support contact.
reseller.createdAt
string
Timestamp (UTC) when the reseller was created.
reseller.updatedAt
string
Timestamp (UTC) when the reseller was last updated.
status
string
obligatoire
Possible values: satisfied, pending, unsatisfied
mutable
boolean
obligatoire
immutableReason
string
Possible values: managed, dependency, none
message
string
evaluatedAt
string
issues
array of string
userId
string
name
string
obligatoire
type
string
obligatoire
Possible values: sms-originator
capabilities
array of string
obligatoire
destinations
array of string
managedBy
string
appliesTo
string
Specifies whether this requirement applies to endpoint-level or destination-level evaluation. Empty means both.
Possible values: endpoint, destination
brandStatus
string
Possible values: satisfied, pending, unsatisfied
destinationBrandStatus
string
Possible values: satisfied, pending, unsatisfied
useCaseStatus
string
Possible values: satisfied, pending, unsatisfied
smsOriginatorRequest
object
Afficher les attributs enfants
smsOriginatorRequest.id
string
obligatoire
smsOriginatorRequest.senderId
string
obligatoire
smsOriginatorRequest.destinationCountry
string
obligatoire
smsOriginatorRequest.destinationType
string
obligatoire
Possible values: international, local
smsOriginatorRequest.originatorRequestType
string
obligatoire
Possible values: short-code, alphanumeric, toll-free, mobile, local, national
smsOriginatorRequest.status
string
obligatoire
Possible values: pending, approved, rejected, canceled
smsOriginatorRequest.statusMessage
string
smsOriginatorRequest.contactEmail
string
smsOriginatorRequest.endpointReferenceKey
string
smsOriginatorRequest.createdAt
string
obligatoire
smsOriginatorRequest.updatedAt
string
obligatoire
smsOriginatorRequest.organizationId
string
obligatoire
smsOriginatorRequest.workspaceId
string
obligatoire
smsOriginatorRequest.endpointId
string
obligatoire
smsOriginatorRequest.smsOriginatorID
string
Exemple de code
curl -X PUT 'https://api.bird.com/workspaces/{workspaceId}/endpoints/{endpointId}/compliance-requirements/{requirementName}' \
-H 'Authorization: AccessKey YOUR_ACCESS_KEY'Example request
Get formEntryId from kyc-forms
Exemple de code
GET https://api.bird.com/organizations/{organizationId}/kyc-forms/4d74e9c0-3f3b-4d5f-8983-b343ecac3986/entries
organizationId string required
Example request to link Local Brand Identification
Exemple de code
PUT https://api.bird.com/workspaces/{workspaceId}/endpoints/{endpointId}/compliance-requirements/brand:au
workspaceId string required
endpointId string required
Exemple de code
{
"formEntryId":"{formEntryId}",
"formId":"4d74e9c0-3f3b-4d5f-8983-b343ecac3986",
"type":"kyc-form"
}