Symptoms

Domain renewal order failed:

Domain renewal failed.

The domain subscription only exists in PBA but not in POA.

How to recreate domain DNS subscription in POA?

Cause

Subscription could be removed in POA or was not provisioned initially in POA for some unknown reasons that must be investigated in each particular case.

Resolution

Recreate Subscription in POA using pem.addSubscription API call with the same subscription_id, account_id, subscription_name as in PBA-E, example is below:

<?xml version='1.0'?>
<methodCall>
    <methodName>pem.addSubscription</methodName>
    <params>
        <param>
            <value>
                <struct>
                    <member>
                        <name>account_id</name>
                        <value><i4>ID</i4></value>
                    </member>
                    <member>
                        <name>subscription_id</name>
                        <value><i4>ID</i4></value>
                    </member>
                    <member>
                        <name>subscription_name</name>
                        <value><string>domain_name</string></value>
                    </member>
                    <member>
                        <name>service_template_id</name>
                        <value><i4>ID</i4></value>
                    </member>
                </struct>
            </value>
        </param>
    </params>
</methodCall>

service_template_id - is ID of Default DNS template that can be found in

PBA-E > Settings > POA integration > NS Settings > click on "Default DNS Plan" > look at "Service Template"

If domain does not exist in POA, use pem.addDomain method to add it and assign DNS hosting from a subsription specified:

<?xml version='1.0'?>
<methodCall>
<methodName>pem.addDomain</methodName>
    <params>
        <param>
            <value>
                <struct>
                    <member>
                        <name>subscription_id</name>
                        <value><i4>ID</i4></value>
                    </member>
                    <member>
                        <name>domain_name</name>
                        <value><string>domain_name</string></value>
                    </member>
                </struct>
            </value>
        </param>
    </params>
</methodCall>

If domain exists in POA, just assign DNS hosting from the required subscription to this domain:

<?xml version='1.0'?>
<methodCall>
    <methodName>pem.bindServicesToDomain</methodName>
    <params>
        <param>
            <value>
                <struct>
                    <member>
                        <name>domain_id</name>
                        <value><i4>ID</i4></value>
                    </member>
                    <member>
                        <name>subscription_id</name>
                        <value><i4>ID</i4></value>
                    </member>
                </struct>
            </value>
        </param>
    </params>
</methodCall>

Verify from POA side that the subscription with domain are created and attached to the account.

After that resubmit the order.

Internal content