async def METHOD_NAME(app, session, mocker, request_type, business_number):
    """Test inform cra about new SP/GP registration."""
    message_id = str(uuid.uuid4())
    filing_id, business_id = create_registration_data('SP')
    if request_type == 'RESUBMIT_INFORM_CRA':
        request_tracker = RequestTracker(
            request_type=RequestTracker.RequestType.INFORM_CRA,
            retry_number=-1,
            service_name=RequestTracker.ServiceName.BN_HUB,
            business_id=business_id,
            is_admin=True,
            message_id=message_id,
            request_object='<SBNCreateProgramAccountRequest></SBNCreateProgramAccountRequest>'
        )
        request_tracker.save()
    def side_effect(input_xml):
        root = Et.fromstring(input_xml)
        if root.tag == 'SBNCreateProgramAccountRequest':
            return 200, acknowledgement_response
    mocker.patch('entity_bn.bn_processors.registration.request_bn_hub', side_effect=side_effect)
    mocker.patch('entity_bn.bn_processors.registration.publish_event')
    business_program_id = 'BC'
    program_account_ref_no = 1
    new_bn = '1234567'
    mocker.patch('entity_bn.bn_processors.registration._get_program_account', return_value=(200, {
        'business_no': business_number or new_bn,
        'business_program_id': business_program_id,
        'cross_reference_program_no': 'FM1234567',
        'program_account_ref_no': program_account_ref_no})
    )
    business = Business.find_by_internal_id(business_id)
    await process_event({
        'id': message_id,
        'type': 'bc.registry.admin.bn',
        'data': {
            'header': {
                'request': request_type,
                'businessNumber': business_number
            },
            'business': {'identifier': business.identifier}
        }
    }, app)
    request_trackers = RequestTracker.find_by(business_id,
                                              RequestTracker.ServiceName.BN_HUB,
                                              RequestTracker.RequestType.INFORM_CRA,
                                              message_id=message_id)
    assert request_trackers
    assert len(request_trackers) == 1
    assert request_trackers[0].is_processed
    assert request_trackers[0].retry_number == 0
    assert request_trackers[0].is_admin
    request_trackers = RequestTracker.find_by(business_id,
                                              RequestTracker.ServiceName.BN_HUB,
                                              RequestTracker.RequestType.GET_BN,
                                              message_id=message_id)
    assert request_trackers
    assert len(request_trackers) == 1
    assert request_trackers[0].is_processed
    assert request_trackers[0].retry_number == 0
    assert request_trackers[0].is_admin
    business = Business.find_by_internal_id(business_id)
    assert business.tax_id == f'{business_number or new_bn}{business_program_id}{str(program_account_ref_no).zfill(4)}'