Amazon Pinpoint

2021/11/26 - Amazon Pinpoint - 2 new api methods

Changes  Added a One-Time Password (OTP) management feature. You can use the Amazon Pinpoint API to generate OTP codes and send them to your users as SMS messages. Your apps can then call the API to verify the OTP codes that your users input

SendOTPMessage (new) Link ¶

Send an OTP message

See also: AWS API Documentation

Request Syntax

client.send_otp_message(
    ApplicationId='string',
    SendOTPMessageRequestParameters={
        'AllowedAttempts': 123,
        'BrandName': 'string',
        'Channel': 'string',
        'CodeLength': 123,
        'DestinationIdentity': 'string',
        'EntityId': 'string',
        'Language': 'string',
        'OriginationIdentity': 'string',
        'ReferenceId': 'string',
        'TemplateId': 'string',
        'ValidityPeriod': 123
    }
)
type ApplicationId

string

param ApplicationId

[REQUIRED]

The unique ID of your Amazon Pinpoint application.

type SendOTPMessageRequestParameters

dict

param SendOTPMessageRequestParameters

[REQUIRED]

Send OTP message request parameters.

  • AllowedAttempts (integer) --

    The attempts allowed to validate an OTP.

  • BrandName (string) -- [REQUIRED]

    The brand name that will be substituted into the OTP message body. Should be owned by calling AWS account.

  • Channel (string) -- [REQUIRED]

    Channel type for the OTP message. Supported values: [SMS].

  • CodeLength (integer) --

    The number of characters in the generated OTP.

  • DestinationIdentity (string) -- [REQUIRED]

    The destination identity to send OTP to.

  • EntityId (string) --

    A unique Entity ID received from DLT after entity registration is approved.

  • Language (string) --

    The language to be used for the outgoing message body containing the OTP.

  • OriginationIdentity (string) -- [REQUIRED]

    The origination identity used to send OTP from.

  • ReferenceId (string) -- [REQUIRED]

    Developer-specified reference identifier. Required to match during OTP verification.

  • TemplateId (string) --

    A unique Template ID received from DLT after entity registration is approved.

  • ValidityPeriod (integer) --

    The time in minutes before the OTP is no longer valid.

rtype

dict

returns

Response Syntax

{
    'MessageResponse': {
        'ApplicationId': 'string',
        'EndpointResult': {
            'string': {
                'Address': 'string',
                'DeliveryStatus': 'SUCCESSFUL'|'THROTTLED'|'TEMPORARY_FAILURE'|'PERMANENT_FAILURE'|'UNKNOWN_FAILURE'|'OPT_OUT'|'DUPLICATE',
                'MessageId': 'string',
                'StatusCode': 123,
                'StatusMessage': 'string',
                'UpdatedToken': 'string'
            }
        },
        'RequestId': 'string',
        'Result': {
            'string': {
                'DeliveryStatus': 'SUCCESSFUL'|'THROTTLED'|'TEMPORARY_FAILURE'|'PERMANENT_FAILURE'|'UNKNOWN_FAILURE'|'OPT_OUT'|'DUPLICATE',
                'MessageId': 'string',
                'StatusCode': 123,
                'StatusMessage': 'string',
                'UpdatedToken': 'string'
            }
        }
    }
}

Response Structure

  • (dict) --

    200 response

    • MessageResponse (dict) --

      Provides information about the results of a request to send a message to an endpoint address.

      • ApplicationId (string) --

        The unique identifier for the application that was used to send the message.

      • EndpointResult (dict) --

        A map that contains a multipart response for each address that the message was sent to. In the map, the endpoint ID is the key and the result is the value.

        • (string) --

          • (dict) --

            Provides information about the delivery status and results of sending a message directly to an endpoint.

            • Address (string) --

              The endpoint address that the message was delivered to.

            • DeliveryStatus (string) --

              The delivery status of the message. Possible values are:

              • DUPLICATE - The endpoint address is a duplicate of another endpoint address. Amazon Pinpoint won't attempt to send the message again.

              • OPT_OUT - The user who's associated with the endpoint has opted out of receiving messages from you. Amazon Pinpoint won't attempt to send the message again.

              • PERMANENT_FAILURE - An error occurred when delivering the message to the endpoint. Amazon Pinpoint won't attempt to send the message again.

              • SUCCESSFUL - The message was successfully delivered to the endpoint.

              • TEMPORARY_FAILURE - A temporary error occurred. Amazon Pinpoint won't attempt to send the message again.

              • THROTTLED - Amazon Pinpoint throttled the operation to send the message to the endpoint.

              • TIMEOUT - The message couldn't be sent within the timeout period.

              • UNKNOWN_FAILURE - An unknown error occurred.

            • MessageId (string) --

              The unique identifier for the message that was sent.

            • StatusCode (integer) --

              The downstream service status code for delivering the message.

            • StatusMessage (string) --

              The status message for delivering the message.

            • UpdatedToken (string) --

              For push notifications that are sent through the GCM channel, specifies whether the endpoint's device registration token was updated as part of delivering the message.

      • RequestId (string) --

        The identifier for the original request that the message was delivered for.

      • Result (dict) --

        A map that contains a multipart response for each address (email address, phone number, or push notification token) that the message was sent to. In the map, the address is the key and the result is the value.

        • (string) --

          • (dict) --

            Provides information about the results of sending a message directly to an endpoint address.

            • DeliveryStatus (string) --

              The delivery status of the message. Possible values are:

              • DUPLICATE - The endpoint address is a duplicate of another endpoint address. Amazon Pinpoint won't attempt to send the message again.

              • OPT_OUT - The user who's associated with the endpoint address has opted out of receiving messages from you. Amazon Pinpoint won't attempt to send the message again.

              • PERMANENT_FAILURE - An error occurred when delivering the message to the endpoint address. Amazon Pinpoint won't attempt to send the message again.

              • SUCCESSFUL - The message was successfully delivered to the endpoint address.

              • TEMPORARY_FAILURE - A temporary error occurred. Amazon Pinpoint won't attempt to send the message again.

              • THROTTLED - Amazon Pinpoint throttled the operation to send the message to the endpoint address.

              • TIMEOUT - The message couldn't be sent within the timeout period.

              • UNKNOWN_FAILURE - An unknown error occurred.

            • MessageId (string) --

              The unique identifier for the message that was sent.

            • StatusCode (integer) --

              The downstream service status code for delivering the message.

            • StatusMessage (string) --

              The status message for delivering the message.

            • UpdatedToken (string) --

              For push notifications that are sent through the GCM channel, specifies whether the endpoint's device registration token was updated as part of delivering the message.

VerifyOTPMessage (new) Link ¶

Verify an OTP

See also: AWS API Documentation

Request Syntax

client.verify_otp_message(
    ApplicationId='string',
    VerifyOTPMessageRequestParameters={
        'DestinationIdentity': 'string',
        'Otp': 'string',
        'ReferenceId': 'string'
    }
)
type ApplicationId

string

param ApplicationId

[REQUIRED]

The unique ID of your Amazon Pinpoint application.

type VerifyOTPMessageRequestParameters

dict

param VerifyOTPMessageRequestParameters

[REQUIRED]

Verify OTP message request.

  • DestinationIdentity (string) -- [REQUIRED]

    The destination identity to send OTP to.

  • Otp (string) -- [REQUIRED]

    The OTP the end user provided for verification.

  • ReferenceId (string) -- [REQUIRED]

    The reference identifier provided when the OTP was previously sent.

rtype

dict

returns

Response Syntax

{
    'VerificationResponse': {
        'Valid': True|False
    }
}

Response Structure

  • (dict) --

    200 response

    • VerificationResponse (dict) --

      Verify OTP Message Response.

      • Valid (boolean) --

        Specifies whether the OTP is valid or not.