@@ -33,6 +33,8 @@ const (
3333 maxCheckAttemptsCode = 60202
3434 // https://www.twilio.com/docs/api/errors/60203
3535 maxSendAttemptsCode = 60203
36+ // https://www.twilio.com/docs/api/errors/60220
37+ useCaseVettingCode = 60220
3638 // https://www.twilio.com/docs/api/errors/60410
3739 fraudDetectionCode = 60410
3840)
@@ -105,6 +107,7 @@ func (v *verifier) SendCode(ctx context.Context, phoneNumber string) (string, *p
105107 err = checkInvalidToParameterError (err , phone .ErrInvalidNumber )
106108 err = checkMaxSendAttemptsError (err , phone .ErrRateLimited )
107109 err = checkFraudDetectionError (err , phone .ErrRateLimited )
110+ err = checkUseCaseVettingError (err , phone .ErrRateLimited )
108111 tracer .OnError (err )
109112 return "" , nil , err
110113 }
@@ -321,6 +324,18 @@ func checkInvalidToParameterError(inError, outError error) error {
321324 return inError
322325}
323326
327+ func checkUseCaseVettingError (inError , outError error ) error {
328+ twilioError , ok := inError .(* client.TwilioRestError )
329+ if ! ok {
330+ return inError
331+ }
332+
333+ if twilioError .Code == useCaseVettingCode {
334+ return outError
335+ }
336+ return inError
337+ }
338+
324339func checkFraudDetectionError (inError , outError error ) error {
325340 twilioError , ok := inError .(* client.TwilioRestError )
326341 if ! ok {
0 commit comments