The position of »nicht« in your sentence is correct, but you can improve style by replacing »bis« with »vor«.
You use »bis« for an action that needs a longer time and ends at a certain time:
I will work until half past seven.
Ich werde bis halb acht arbeiten.
But heimkommen (coming home; arriving home) is not an action that lasts many hours. Arriving home is a matter of a few seconds, maybe some minutes. So what you want to say is not, that coming home takes you so much time that you will finish the process of coming home at half past seven. You want to say, that you will come home at some moment before this time.
I’m not sure about this in English (I’m a German native speaker, English is a foreign language to me), but since you used »until« in you sentence, I guess this is correct. But maybe you can also replace it in this case with »before«?
I am (not) coming home until seven thirty. <-- Your sentence
I will (not) come home before half past seven. <-- Maybe also correct with same meaning?
Ich werde (nicht) vor halb acht heimkommen.
Ich komme (nicht) vor halb acht heim.
You can use present tense as well as future tense in this case. Both sentences are correct German sentences and mean exactly the same:
Without negation: You will come home at a moment that is before 7:30 (or 19:30).
With negation: You will arrive at home after this time.